:root {
    --font-body-family: "Instrument Sans", sans-serif;
    --font-body-weight: 400;

    --type-medium: 500;
    --type-semi-bold: 600;
    --type-bold: 700;

    --font-heading-family: "big-caslon-fb";
    --font-heading-weight: 400;

    --type-desktop-h1: 54px;
    --type-desktop-h2: 48px;
    --type-desktop-h3: 32px;
    --type-desktop-h4: 24px;
    --type-desktop-h5: 18px;

    --type-desktop-body: 16px;


    --type-tablet-h1: 40px;
    --type-tablet-h2: 34px;
    --type-tablet-h3: 24px;
    --type-tablet-h4: 20px;
    --type-tablet-h5: 16px;


    --page-width: 1440px;

    --color-foreground: 40, 86, 17;
    --color-accent: 252, 219, 56;
    --color-secondary: 255, 243, 140;

    --color-white: 255, 255, 255;
    --color-button: var(--color-white);


    --color-beige: 243, 241, 231;
    --color-border: #336D16;
    --color-orange: #FCB231;
    --color-light-orange: #FCDB38;

    --color-error: 249, 54, 0;

    --color-medium-green: 51, 109, 22;
    --color-light-green: 221, 233, 156;
    --color-bright-green: 203, 221, 107;
    --color-cream-yellow: 255, 243, 140;

    --color-table-row-odd: #F3F1E7;
    --color-table-row-even: #FAF9F5;

    --bar-width: 18px;
    --bar-height: 2px;
    --bar-spacing: 6px;

    --swiper-scrollbar-drag-bg-color: rgb(var(--color-accent));
    --swiper-scrollbar-border-radius: 0;
    --swiper-scrollbar-size: 4px;
    /* --swiper-scrollbar-sides-offset: 0; */
    --swiper-scrollbar-top: auto;
    --swiper-scrollbar-bottom: 4px;
}

[lang="zh-HK"] {
    --font-heading-family: "Noto Serif TC", serif;
    --font-body-family:  "Noto Sans TC", sans-serif;
}

[lang="zh-CN"] {
    --font-heading-family: "Noto Serif SC", serif;
    --font-body-family:  "Noto Sans SC", sans-serif;
}

[lang="en-US"] {
    --font-body-family: "Instrument Sans", sans-serif;
    --font-heading-family: "big-caslon-fb";
}

body {
    font-family: var(--font-body-family);
    font-size: 16px;

    background-color: #F3F1E7;
    color: #285611;
    line-height: 1.5;
    /*color: #2E5E16;*/

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.menu-open {
    max-height: 100vh;
    overflow: hidden;
}

body.menu-open .site-header,
body.menu-open .button--cta::before {
    background: rgb(var(--color-white)) !important;
}

@media screen and (min-width: 750px) {
    body {
        font-size: var(--type-desktop-body);
    }
}

@keyframes fadein {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }

@keyframes animateMenuOpen {
    0% {
        opacity: 0;
        transform: translateY(-16px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes animateMenuClose {
    0% {
        opacity: 1;
        transform: translateY(0);
    }

    100% {
        opacity: 0;
        transform: translateY(-16px);
    }
}

@keyframes animateCloseNotice {
    0% {
        opacity: 1;
        transform: translateY(0);
    }

    100% {
        opacity: 0;
        transform: translateY(-40px);
        display: none;
    }
}

@keyframes animateClosePopup {
    0% {
        opacity: 1;
        right: 0;
    }

    100% {
        opacity: 0;
        right: -100%;
    }
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
    font-family: var(--font-heading-family);
    font-weight: var(--font-heading-weight);
    line-height: 1.2;
}

h1 {
    font-size: 38px;
    line-height: 1.1;
}

@media screen and (min-width: 750px) {
    h1, .h1 {
        font-size: var(--type-tablet-h1);
    }
}

@media screen and (min-width: 1024px) {
    h1, .h1 {
        font-size: var(--type-desktop-h1);
    }
}

h2, .h2 {
    font-size: 34px;
    line-height: 1.1;
}


@media screen and (min-width: 750px) {
    h2, .h2 {
        font-size: var(--type-tablet-h2);
    }
}

@media screen and (min-width: 1024px) {
    h2, .h2 {
        font-size: var(--type-desktop-h2);
    }
}

h3, .h3 {
    font-size: 24px;
    line-height: 1.2;
}

@media screen and (min-width: 750px) {
    h3, .h3 {
        font-size: var(--type-tablet-h3);
    }
}

@media screen and (min-width: 1024px) {
    h3, .h3 {
        font-size: var(--type-desktop-h3);
    }
}

h4, .h4 {
    font-size: 20px;
}

@media screen and (min-width: 750px) {
    h4, .h4 {
        font-size: var(--type-tablet-h4);
    }
}

@media screen and (min-width: 1024px) {
    h4, .h4 {
        font-size: var(--type-desktop-h4);
    }
}


h5, .h5 {
    font-size: 16px;
}

@media screen and (min-width: 750px) {
    h5, .h5 {
        font-size: var(--type-tablet-h5);
    }
}

@media screen and (min-width: 1024px) {
    h5, .h5 {
        font-size: var(--type-desktop-h5);
    }
}

pre {
    background: none;
    font-size: 12px;
    text-transform: uppercase;
}

pre + * {
    margin-top: 8px !important;
}

#mc_signup_form .mc_var_label,
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    
    white-space: nowrap;
    clip-path: inset(100%);
    clip: rect(0 0 0 0);
    overflow: hidden;
}

.title {
    margin-bottom: 16px;
}

.full-unstyled-link {
    text-decoration: none;
    color: currentColor;
    display: block;
}

a:hover, a:focus, a:active {
    color: inherit;
}

.full-unstyled-link:visited {
    color: currentColor;
}

.center {
    text-align: center;
}

strong {
    font-weight: var(--type-bold);
}

.post, .page {
    margin-bottom: 0;
}

/* button-component */
.button {
    font-weight: var(--type-medium);
    text-decoration: none;
    display: inline-block;
    border-radius: 100px;
    position: relative;
}

.button::before, .button::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.button--medium,
.button--large {
    font-size: 16px;
    line-height: 1.3;
    padding: 16px 24px;
    height: max-content;
}


.button--primary.button--has-arrow {
    padding: 14px 54px 14px 16px;
}

.button--primary .arrow {
    background-color: rgb(var(--color-cream-yellow));
    background-image: url('../assets/arrow.svg');
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    top: 3px;
    right: 3px;
    bottom: 3px;
    width: 42.8px;
    border-radius: 100%;
    transition: 0.3s cubic-bezier(0.7, 0, 0.2, 1);
    background-size: 50%;
}

.button--primary.button--has-arrow:hover .arrow {
    transform: rotate(45deg);
}

@media screen and (min-width: 750px) {
    .button--medium {
        padding: 14px 36px;
        /* min-width: 240px; */
        text-align: center;
        border-width: 2px;
    }

    .button--large {
        font-size: 18px;
    }

    .button--primary.button--has-arrow {
        padding: 16px 68px 16px 24px;
    }

    .button--primary .arrow {
        width: 51px;
    }

}

.button--primary,
.button--primary:visited,
.button--secondary,
.button--secondary:visited {
    background: rgb(var(--color-medium-green));
    color: rgb(var(--color-button)) !important;
    overflow: hidden;
}

.button--primary span,
.button--secondary span{
    position: relative;
}

.button--secondary span {
    z-index: 1;
}

.button--primary::before {
    content: '';
    background: rgb(var(--color-foreground));
    transition: transform 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.button--secondary::before {
    content: '';
    background: rgb(var(--color-beige));
    transition: all 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.color-background-2 .button--secondary::before {
    background: rgb(var(--color-white));
}

.button--primary:hover::before,
.button--secondary:hover::before {
    transform: translate3d(100%, 0, 0);
}

.button--secondary:hover::before {
    background: rgb(var(--color-cream-yellow));
    transition: all 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.button--secondary {
    border: 1px solid rgb(var(--color-foreground));
}

.button--secondary::before {
    content: '';
    /* background: rgb(var(--color-white)); */
    transition: transform 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.button--secondary span {
    color: rgb(var(--color-foreground));
    /*mix-blend-mode: difference;*/
}

.button--secondary:hover span {
    color: rgb(var(--color-white));
}

.button--secondary:hover::before {
    transform: translate3d(100%, 0, 0);
}


/* Page basics */
.page-content,
.entry-content,
.entry-summary {
    margin-top: 0;
}

.page-template-page-about {
    background-image: url(../assets/about.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
}

.page-template-page-team {
    background-image: url(../assets/team.svg);
    background-size: 240%;
    background-repeat: no-repeat;
    background-position: -100px 0;
}

@media screen and (min-width: 750px) {
    .page-template-page-team {
        background-size: contain;
        background-position: top;
    }
}

.page-template-page-careers article header {
    background-image: url(../assets/cycling.svg);
    background-size: cover;
    background-position: 74% 50%;
    height: 662px;
    text-align: center;
}


.page-template-page-careers article header h1 {
    padding-top: 52px;
}

@media screen and (min-width: 750px) {
    .page-template-page-careers article header {
        background-repeat: no-repeat;
        background-position: top;
        height: 588px;
    }

    .page-template-page-careers article header > div {
       display: flex;
       align-items: center;
       min-height: 588px;
    }
}

.page-template-page-careers main {
    margin-top: -68px;
}

@media screen and (min-width: 960px) {
    .page-template-page-careers main {
        margin-top: -98px;
    }
}

.page-template-page-team .entry-content {
    padding-top: 64px;
}

.page-template-page-contact {
    background-image: url(../assets/contact-mobile.svg);
    background-repeat: no-repeat;
    background-position: top center;
}

.page-template-page-contact .wpcf7 h3 {
    font-size: 16px;
    text-transform: uppercase;
}

@media screen and (min-width: 750px) {
    .page-template-page-team .entry-content {
        padding-top: 112px;
    }

    .page-template-page-contact {
        background-image: url(../assets/contact.svg);
        background-position: center -40px;
    }

    .page-template-page-contact .wpcf7 h3 {
        font-size: 24px;
    }
}

.page-template-page-media {
    background-image: url(../assets/clouds.svg);
    background-repeat: no-repeat;
    background-position: center 120px;
}

.page-template-page-contact main {
    padding-top: 56px;
}

.page-template-page-media main,
.page-template-page-contact main {
    padding-bottom: 64px;
}

.clouds__header {
    padding-top: 84px;
}

select:not([multiple]) {
    background-image: url(../assets/icon-caret.svg);
    background-repeat: no-repeat;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-position-x: 95%;
    background-position-y: center;
}

select::-ms-expand {
    display: none;
}

/* Page width */
.page-width {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 16px;
}

@media screen and (min-width: 750px) {
    .page-width {
        padding: 0 40px;
    }
}

.page-width--narrow {
    max-width: 996px;
}

/* Colors */
.color-background-2 {
    background-color: #FFFFFF;
}

.color-accent-1 {
    background-color: rgb(var(--color-cream-yellow));
}

.color-accent-2 {
    background-color: rgb(var(--color-light-green));
}

.color-accent-3 {
    background-color: rgb(var(--color-bright-green));
}

/* Grid */
@media screen and (min-width: 750px) {
    .grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }

    .grid.grid--two-column {
        grid-template-columns: repeat(2, 1fr);
        gap: 72px;
    }
    
    .grid--4-column {
        grid-template-columns: repeat(4, 1fr);
    }
}

[hidden] {
    display: none !important;
}

/* announcement bar */
.announcement-bar {
    background-color: var(--color-light-orange);
    font-size: 12px;
    line-height: 1;
    text-align: center;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
}

.announcement-bar a {
    color: rgba(var(--color-foreground), 0.7);
}

.announcement-bar a {
    color: rgba(var(--color-foreground), 1);
}

.announcement-bar.hide {
    animation: animateCloseNotice 400ms ease-out;
    animation-fill-mode: forwards ;
}

.popup.hide {
    animation: animateClosePopup 800ms ease-in-out;
    animation-fill-mode: forwards ;
}

.icon-close {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 12px;
}


@media screen and (min-width: 750px) {
    .announcement-bar {
        font-size: 14px;
        height: 40px;
    }
}

/* Header */
/* site-header */
.site-header {
    position: sticky;
    top: 0;
    transition: background 400ms ease-out;
    z-index: 1000;
}

@media screen and (min-width: 601px) {
    .logged-in.admin-bar .site-header {
        top: 46px;
    }
}

@media screen and (min-width: 783px) {
    .logged-in.admin-bar .site-header {
        top: 32px;
    }    
}

@media screen and (min-width: 1024px) {
    .site-header:hover {
        background-color: rgb(var(--color-white));
    }    

    .site-header:hover .button--secondary:not(:hover)::before {
        transition: background 400ms ease-out;
    }
    
    .site-header:hover .button--secondary::before {
        background-color: rgb(var(--color-white));   
    }    
}

.header {
    display: grid;
    grid-template-columns: 1fr auto;
    padding: 16px 0;
}

.header .site-branding {
    display: flex;
    align-items: center;
}

.custom-logo-link > img {
    max-width: 88px;
}

.button--cta {
    display: none;
}

/* hamburger */
/* Hamburger icon */
.menu-toggle {
    height: 44px;
    padding-left: 12px;
    padding-right: 0;
    background: none;
    border: none;
}

@media screen and (max-width: 959px) {
    .menu-toggle {
        display: block;
    }

    #site-navigation {
        display: flex;
        align-items: center;
    }

    .button--cta {
        font-size: 12px;
        display: block;
        padding: 8px 16px;
    }
}

.toggle-nav {
    width: var(--bar-width);
    height: calc(var(--bar-height) + (var(--bar-spacing) * 2));
    cursor: pointer;
}

.hamburger {
    display: block;
    margin-top: -8px;
}

.hamburger,
.hamburger:after,
.hamburger:before {
    width: var(--bar-width);
    height: var(--bar-height);
    background: rgb(var(--color-foreground));
    transition: background 0.5s;
}

.hamburger {
    position: relative;
    transform: translateY(var(--bar-spacing));
    transition: bottom 0ms 300ms, top 0ms 300ms, transform 0ms 300ms;
}

.hamburger:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: var(--bar-spacing);
    transition: bottom 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.hamburger:after {
    content: "";
    position: absolute;
    left: 0;
    top: var(--bar-spacing);
    transition: top 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.hamburger.animate {
    background: rgba(237, 231, 220, 0);
}

.hamburger.animate:before {
    bottom: 0;
    transform: rotate(-45deg);
    transition: bottom 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1);;
}

.hamburger.animate:after {
    top: 0;
    transform: rotate(45deg);
    transition: top 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

/* main-navigation */
details summary::-webkit-details-marker {
    display: none;
}

.header__menu--inner-wrapper {
    animation: animateMenuClose 400ms ease-out;
    animation-fill-mode: forwards;
    /* z-index: 1; */
    /* pointer-events: none; */
    /* transition: all 280ms cubic-bezier(0, 0, 0.58, 1); */
}

.show-mega-menu + .header__menu--inner-wrapper,
.header__menu--inner-wrapper.show-language {
    animation: animateMenuOpen 400ms ease-out;
    animation-fill-mode: forwards;
    /* transition: all 280ms cubic-bezier(0, 0, 0.58, 1); */
}

.dropdown-toggle {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.has-mega-menu .header__menu--inner-wrapper {
    box-shadow: none;
    /* max-width: var(--page-width); */
    margin: 0 auto;
    background-color: rgb(var(--color-white));
    z-index: 100;
}

.header__menu {
    background: rgb(var(--color-white));
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
}

.header__menu a,
.header__menu a:visited {
    text-decoration: none;
    color: rgb(var(--color-foreground), 0.8);
    transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
}

.header__menu a:hover {
    color: rgb(var(--color-foreground), 1);
}

.header__menu--level-1 .dropdown-toggle img {
    transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
}

.header__menu--level-1 .show-mega-menu .icon-caret {
    transform: rotate(-180deg);
}

@media screen and (max-width: 959px) {
    .header {
        padding: 12px 0;
        height: 68px;
    }
    .custom-logo-link > img {
        max-width: 56px;
    }

    .header__menu:not(.header__menu--mobile) {
        display: none;
    }

    .header__menu--mobile {
        
        overflow: hidden;
        top: 0;
        opacity: 0;
        transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
        z-index: -1;
        max-height: 0;
    }

    .toggled .header__menu--mobile {
        height: 100vh;
        max-height: calc(100vh - 68px - 32px);
        max-width: 100vw;
        top: 100%;
        opacity: 1;
        z-index: 1;
        overflow: hidden scroll;
    }

    .header__menu--mobile details.header__menu--level-1[open] {
        z-index: 100;
    }

    .header__menu--mobile details.header__menu--level-1[open] {
        position: static;
    }

    details:not(.header__menu--level-2)[open] > div {
        animation: animateMenuOpen 400ms ease-out;
        animation-fill-mode: forwards;
        z-index: 100;
        transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
    }

    .header__menu--level-2 > div {
        position: absolute;
        top: 0;
        background-color: rgb(var(--color-white));
        bottom: 0;
        z-index: 1000;
        right: 0;
        left: 0;
        padding: 16px;
        transform: translateX(100%);
        transition: all 400ms cubic-bezier(0, 0, 0.58, 1);
    }

    .header__menu--level-2 > div.show {
        transform: none;
        overflow: scroll;
        height: max-content;
        padding-bottom: 56px;
    }

    .header__menu--level-2 .back {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 24px;
    }

    .back .icon-caret {
        transform: rotate(90deg);
    }

    details .dropdown-toggle img {
        transform: rotate(-90deg);
        transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
    }

    .header__menu > .button--secondary::before {
        background-color: rgb(var(--color-white));
    }

    .show-dropdown + .header__menu--dropdown,
    .header__menu--dropdown h4 {
        padding-top: 24px;
        border-top: 1px solid rgb(var(--color-beige));
    }

    .header__menu--dropdown {
        opacity: 0;
        max-height: 0;
        overflow: hidden;
    }

    .show-dropdown + .header__menu--dropdown {
        opacity: 1;
        max-height: none;
        overflow: visible;
    }

    .header__menu--dropdown h4 {
        margin-bottom: 24px;
    }

    a.header__menu--level-2,
    .open-submenu {
        background-image: url(../assets/navigation-flower.svg);
        background-repeat: no-repeat;
        background-position: left center;
        vertical-align: middle;
        display: flex;
        align-items: center;
        padding: 14px 0 14px 48px;
    }

    .mega-menu__subcategories {
        /* position: fixed; */
        width: 100%;
        right: 0;
        background: white;
        z-index: 100000000000000000000000;
        top: 8px;
    }

    .dropdown-toggle {
        display: flex;
        justify-content: space-between;
    }

    .has-dropdown-menu.show-dropdown {
        margin-bottom: 16px;
    }

    .show-dropdown,
    .header__menu--level-2 h3 {
        font-family: var(--font-body-family);
        font-weight: var(--type-medium);
        font-size: 20px;
        padding-left: 30px;
        background-image: url("../assets/menu.svg");
        background-size: 16px 19px;
        background-position: center left;
        background-repeat: no-repeat;
        margin-bottom: 16px;
    }
    
    details[open] .dropdown-toggle img {
        transform: rotate(0);
    }
    
    .header__menu {
        padding: 32px 16px;
    }
    
    .header__menu--submenu {
        padding-left: 0;
        padding-right: 0;
    }

    .header__menu > a:not(.button),
    .header__menu--level-1 .has-dropdown-menu {
        font-size: 20px;
        font-weight: var(--type-medium);
        color: rgb(var(--color-foreground));
    }

    .header__menu > * + * {
        margin-top: 24px;
        display: block;
    }
}

@media screen and (min-width: 960px) {
    .header__menu {
        background: none;
        position: static;
        display: flex;
        height: 100%;
        align-items: center;
        gap: 24px;
    }

    .header__menu--mobile {
        display: none !important;
    }

    .has-mega-menu .header__menu--submenu {
        position: relative;
        display: grid;
        grid-template-columns: 295px 1fr;
        box-sizing: border-box;
    }

    .language-switcher .mega-menu__subcategories {
        display: none;
    }

    .language-switcher .header__menu--submenu {
        padding: 0 0;
    }

    .has-mega-menu .header__menu--inner-wrapper {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        padding-top: 24px;
        padding-bottom: 24px;
        opacity: 0;
        pointer-events: none;
    }

    .show-mega-menu + .header__menu--inner-wrapper {
        min-height: 328px;
        pointer-events: auto;
    }

    .header__menu > * {
        display: flex;
        align-items: center;
    }    

    .header__menu--level-2 + .header__menu--level-2 {
        margin-top: 24px;
    }
    
}

a.header__menu--level-2,
.header__menu--level-2 .open-submenu {
    font-family: var(--font-heading-family);
    font-size: 16px;
    font-weight: var(--type-medium);
    text-decoration: none;
    color: rgb(var(--color-foreground));
    width: 100%;
    display: block;
    width: max-content;
}



@media screen and (min-width: 750px) {
    a.header__menu--level-2,
    .header__menu--level-2 summary {
        width: 100%;
        font-size: 24px;
        color: rgba(var(--color-foreground), 0.8);
        display: block;
        width: max-content;
    }

    a.header__menu--level-2:hover,
    .header__menu--level-2 summary:hover,
    a.header__menu--level-2.active {
        color: rgb(var(--color-foreground));
        padding-left: 24px;
        background-image: url("../assets/menu.svg");
        background-size: 16px 19px;
        background-position: left;
        background-repeat: no-repeat;
    }
}


/* menu - services */
.header__subcategories {
    max-height: 0;
    overflow: hidden;
    display: grid;
    gap: 24px;
    opacity: 0;
    transition: opacity 400ms ease-in-out;
}

.mega-menu__articles,
.seasonal-workshop {
    opacity: 0;
    transition: opacity 400ms ease-in-out;
    max-height: 0;
    overflow: hidden;
}


.mega-menu__articles.show,
.header__subcategories.show {
    opacity: 1;
    max-height: none;
    min-height: 328px;
    align-content: flex-start;
}

.header__articles .card__heading {
    font-size: 18px;
}

.header__articles .card-information {
    display: none;
}

@media screen and (min-width: 750px) {
    .header__subcategories {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px 36px;
    } 

    .mega-menu__subcategories {
        padding-left: 56px;
        border-left: 1px solid rgb(var(--color-beige));
        /* min-height: 328px; */
        height: max-content;
    }

    .mega-menu__articles.show,
    .seasonal-workshop.show {
        max-height: none;
        opacity: 1;
    }

    .seasonal-workshop__image {
        max-width: 400px;
        border-radius: 10px;
        overflow: hidden;
    }

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

    .seasonal-workshop {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 48px;
        max-width: 800px;
    }

    .seasonal-workshop__description {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        max-width: 360px;
    }

    .seasonal-workshop__description > * + * {
        margin-top: 8px;
    }

    .seasonal-workshop__description a {
        margin-top: 16px;
    }

    .mega-menu__articles > h3 {
        margin-bottom: 12px;
    }

    .header__articles {
        grid-template-columns: repeat(3, 1fr);
        max-width: 880px;
    }

    .header__articles .card-wrapper {
        padding: 0 0;
    }

    .mega-menu__articles .button {
        margin-top: 40px;
    }
}

.header__menu--level-3,
.header__subcategories a {
    font-family: var(--font-body-family);
    text-decoration: none;
    color: rgba(var(--color-foreground), 0.8);
    padding-left: 56px;
    background-image: url(../assets/navigation-flower.svg);
    background-repeat: no-repeat;
    background-position: left center;
    vertical-align: middle;
    min-height: 48px;
    display: flex;
    align-items: center;
}

.header__menu--level-3,
.header__subcategories a:hover {
    color: rgba(var(--color-foreground), 1);
}

.header__menu--mobile .header__menu--level-3 + .header__menu--level-3 {
    margin-top: 24px;
}

/* language switcher */
.language-switcher .header__menu--inner-wrapper {
    position: absolute;
    background: rgb(var(--color-beige));
    padding: 24px;
    border: 1px solid rgb(var(--color-foreground));
    border-radius: 12px;
    margin-left: 0;
    right: 0;
    top: 100%;
    display: block;
    pointer-events: none;
}

.language-switcher .header__menu--inner-wrapper a {
    font-family: var(--font-body-family);
    font-size: 14px;
    text-transform: uppercase;
    white-space: nowrap;
}
/* 
.language-switcher .header__menu--inner-wrapper.show-language-switcher {
    opacity: 1 !important;
    z-index: 1000;
} */

.language-switcher .header__menu--inner-wrapper.color-background-2.show-language {
    pointer-events: all;
    z-index: 1000;
}

.language-switcher .header__menu--submenu a + a {
    margin-top: 8px;
}

.language-switcher .header__menu--submenu a:hover {
    background: none;
    padding-left: 0;
}

.language-switcher {
    position: relative;
    z-index: 100;
}

/* hero */
.main-hero__image {
    display: block;
    width: 100%;
    opacity: 0;
}

/* assessment, services submenu */
@media screen and (min-width: 750px) {
    .main-navigation ul ul li:hover > ul,
    .main-navigation ul ul li.focus > ul {
        left: 280px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        padding: 32px 56px;
        /* border-left: 1px solid #F3F1E7; */
        box-shadow: none;
        /* height: 100%; */
        grid-template-rows: repeat(4, 1fr);
        margin-left: 40px;
    }

    .main-navigation ul ul li:hover > ul::after,
    .main-navigation ul ul li.focus > ul::after {
        content: "";
        position: absolute;
        left: 0;
        width: 1px;
        background-color: #F3F1E7;
        top: 24px;
        bottom: 24px;
    }

    .main-navigation .nav-menu > li > a {
        padding-top: 32px;
        padding-bottom: 32px;
        color: rgba(var(--color-foreground), 0.7);
    }

    .main-navigation .nav-menu > li > a:hover,
    .main-navigation .nav-menu > li > a:focus {
        color: rgba(var(--color-foreground), 1);
    }

    .nav-menu {
        gap: 24px;
    }
}

.main-navigation > div > ul > li:hover > ul.sub-menu,
.main-navigation > div > ul > li.focus > ul.sub-menu {
    height: 328px;
    padding: 24px 40px;
    left: 0;
    right: 0;
    box-shadow: none;
    max-width: var(--page-width);
    margin: 0 auto;
}

.main-navigation > div > ul > li > ul.sub-menu::before {
    content: "";
    background: rgb(var(--color-white));
    width: 200vw;
    position: absolute;
    height: 100%;
    top: 0;
    left: -100vw;
    right: 0;
    z-index: -1;
}

.main-navigation > div > ul > li > ul.sub-menu > li > a {
    font-size: 24px;
    opacity: 0.7;
}

.main-navigation > div > ul > li:hover > ul.sub-menu > li:hover > a {
    /*font-size: 24px;*/
    padding-left: 24px;
    background-image: url("../assets/menu.svg");
    background-size: 16px 19px;
    background-position: left;
    background-repeat: no-repeat;
    opacity: 1;
}

/* Rte */
.rte-width {
    max-width: 820px;
    margin: 0 auto 20px;
}

.rte-width--narrow {
    max-width: 566px;
    margin: 0 auto 20px;
}

.rte > * + * {
    margin-top: 16px;
}

@media screen and (min-width: 750px) {
    .rte > p + p {
        margin-top: 32px;
    }

    .card-wrapper .rte > p + p {
        margin-top: 16px;
    }
}

.rte > * + .button {
    margin-top: 32px;
    display: inline-block;
}

.rte:after {
    clear: both;
    content: '';
    display: block;
}

.rte > *:first-child {
    margin-top: 0;
}

.rte > *:last-child {
    margin-bottom: 0;
}

.rte table {
    table-layout: fixed;
}

@media screen and (min-width: 750px) {
    .rte table td {
        padding-left: 1.2rem;
        padding-right: 1.2rem;
    }
}

.rte img {
    height: auto;
    max-width: 100%;
    border: var(--media-border-width) solid rgba(var(--color-foreground), var(--media-border-opacity));
    border-radius: var(--media-radius);
    box-shadow: var(--media-shadow-horizontal-offset) var(--media-shadow-vertical-offset) var(--media-shadow-blur-radius)
    rgba(var(--color-shadow), var(--media-shadow-opacity));
    margin-bottom: var(--media-shadow-vertical-offset);
}

.rte ul,
.rte ol {
    padding-left: 32px;
}

.rte ol {
    list-style: num;
}

.rte ul {
    list-style: disc;
}

.rte li {
    list-style: inherit;
}

.rte li:last-child {
    margin-bottom: 0;
}

.rte a {
    color: rgba(var(--color-link), var(--alpha-link));
    text-underline-offset: 0.3rem;
    text-decoration-thickness: 0.1rem;
    transition: text-decoration-thickness var(--duration-short) ease;
}

.rte a:hover {
    color: rgb(var(--color-link));
    text-decoration-thickness: 0.2rem;
}

.rte blockquote {
    display: inline-flex;
}

.rte blockquote > * {
    margin: -0.5rem 0 -0.5rem 0;
}


/* component-media */
.media {
    display: block;
    /*background-color: rgba(var(--color-foreground), 0.1);*/
    position: relative;
    overflow: hidden;
}

.media--adapt {
    background-color: transparent;
}

.media--adapt img {
    position: static !important;
}

.media--transparent {
    background-color: transparent;
}

.media > *:not(.zoom):not(.deferred-media__poster-button),
.media model-viewer {
    display: block;
    max-width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

.media > img {
    object-fit: cover;
    object-position: center center;
    transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.media--square {
    padding-bottom: 100%;
}

.media--portrait-short {
    padding-bottom: 115%;
}

.media--portrait {
    padding-bottom: 125%;
    height: 0;
}

.media--landscape {
    padding-bottom: 64%;
}

.media--cropped {
    padding-bottom: 56%;
}

.media--featured {
    padding-bottom: 73%;
    border-radius: 20px;
}

@media screen and (min-width: 960px) {
    .media--featured {
        padding-bottom: 42%;
    }
}

.media--16-9 {
    padding-bottom: 56.25%;
}

.media--circle {
    padding-bottom: 100%;
    border-radius: 50%;
}

.global-media-border {
    border-radius: 20px;
}

.media.media--hover-effect > img + img {
    opacity: 0;
}

@media screen and (min-width: 990px) {
    .media--cropped {
        padding-bottom: 63%;
    }
}

/* component-card */
.card-wrapper {
    color: inherit;
    /* height: 100%; */
    position: relative;
    text-decoration: none;
}

.card a.post-thumbnail img {
    object-fit: cover;
    position: absolute;
    width: 100%;
    height: 100%;
    object-position: center;
}

@media screen and (min-width: 1024px) {
    .card-wrapper {
        padding: 20px;
    }
}

.card {
    text-decoration: none;
    /*text-align: center;*/
}

.card.card--horizontal {
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    text-align: left;
}

.card.card--horizontal .card-information {
    text-align: left;
}

.card__heading {
    margin-bottom: 8px;
}

.card__heading a:after {
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

.card.card--horizontal .card__media {
    border-radius: 10px;
    overflow: hidden;
}

.card__information {
    padding-top: 16px;
}

.card-information {
    font-size: 16px;
}

.card img,
.card-wrapper img {
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.card__category-links {
    font-size: 14px;
    line-height: 1.3;
    margin-bottom: 8px;
}

.card__category-links .post-categories {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
}

.card__category-links .post-categories li + li {
    position: relative;
}

.card__category-links .post-categories li + li::before {
    content: " ";
    background-color: rgb(var(--color-white));
    width: 3px;
    height: 3px;
    transform: rotate(45deg);
    border-right: 0.5px;
    display: block;
    position: absolute;
    top: calc(50% - 1.5px);
    left: -6.5px;
}

.card__category-links .post-categories a {
    text-decoration: none;
    color: inherit;
}

@media screen and (min-width: 990px) {
    .card:hover img,
    .card-wrapper:hover img {
        transform: scale(1.1);
    }

}

/* Blog */
/* .blog__image {
    background-image: url(../assets/article-hero.svg);
    background-size: cover;
    background-position: center;
    height: 240px;
} */

.blog {
    background-image: url(../assets/article-hero.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.blog__image {
    display: flex;
}

.blog__image img {
    width: 100%;
}

.blog-header {
    position: relative;


    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 80px;
}

/* .blog-header h1 {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    bottom: 24px;
} */

.blog-header img {
    width: 100%;
    display: block;
    pointer-events: none;
}

.blog li + li {
    margin-top: 32px;
}

@media screen and (min-width: 750px) {
    .blog li + li {
        margin-top: 0;
    }
}

/* Blog */
nav.navigation.pagination {
    position: relative;
}

nav.navigation.pagination .nav-links {
    font-family: var(--font-heading-family);
    font-size: 16px;
    margin-top: 56px;
    padding-bottom: 48px;
    display: flex;
    justify-content: center;
    gap: 32px;
}

a.prev.page-numbers {
    position: absolute;
    left: 0;
}

a.next.page-numbers {
    position: absolute;
    right: 0;
}

nav.navigation.pagination .nav-links a {
    color: rgb(var(--color-foreground), 0.7);
    text-transform: uppercase;
    text-decoration: none;
}

nav.navigation.pagination .nav-links a:hover {
    color: rgb(var(--color-foreground), 1);
}

span.page-numbers.current {
    color: var(--color-orange);
}

@media screen and (min-width: 750px) {
    nav.navigation.pagination .nav-links {
        font-size: 24px;
    }
}

/* Article */
.main-article {
    padding-top: 24px;
}

.main-article .entry-footer {
    padding-top: 24px;
    border-top: 1px solid var(--color-light-orange);
    margin-top: 48px;
}

.main-article .entry-footer > p + .button {
    margin-top: 24px;
}

.article-template__info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 32px;
    margin-bottom: 48px;
    position: relative;
    gap: 40px;
    align-items: center;
    max-width: 440px;
}

.single .author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.single .author img {
    height: 54px;
    width: 54px;
    border-radius: 100%;
    object-fit: cover;
}

.single .author .date {
    display: flex;
    align-items: center;
    position: relative;
    font-size: 14px;
}

.date::before {
    content: "";
    background-color: #FCDB38;
    position: absolute;
    width: 1px;
    height: 100%;
    transform: translateX(-20px);
}

.author dt {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
}

.author dt::after {
    content: none;
}

.author dd {
    font-weight: var(--type-medium);
}

@media screen and (max-width: 749px) {
    .media--featured {
        margin-bottom: 20px;
    }

    .article-template__title {
        font-size: 32px;
    }    
}

@media screen and (min-width: 680px) {
    .article-template {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        padding-top: 78px;
    }

    .article-template header,
    .article-template__content {
        grid-column: span 4;
    }

    .main-article {
        padding-top: 32px;
    }    
}

@media screen and (min-width: 960px) {
    .article-template {
        grid-template-columns: repeat(12, 1fr);
        gap: 40px;
    }

    .article-template header {
        grid-column: span 5;
        height: max-content;
        position: sticky;
        top: 56px
    }

    .article-template__content {
        grid-column: span 7;
        max-width: 640px;
        margin-left: 0;
    }

    .article-template__title {
        font-size: 48px;
        line-height: 1.2;
    }
}

.article__category-links {
    margin-bottom: 24px;
}

.card__category-links > a,
.article__category-links > a {
    font-weight: var(--type-medium);
    text-decoration: none;
    line-height: 1.2;
    color: currentColor;
    text-wrap-mode: nowrap;
}

.card__category-links a {
    font-size: 12px;
}

span.dot {
    background-color: #EBD424;
    width: 4px;
    height: 4px;
    transform: rotate(45deg);
    display: block;
}

main .card__category-links span.dot {
    background-color: rgb(var(--color-white));
}

.card__category-links,
.article__category-links,
.team__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 14px;
}

.card__category-links {
    gap: 4px 8px;
}

.team__filters > span:last-of-type,
.card__category-links > span:last-of-type,
.article__category-links > span:last-of-type {
    display: none;
}


/* Practitioner */
.practitioner__about {
    padding-bottom: 96px;
}

.practitioner__about aside .media {
    margin-bottom: 40px;
}

.practitioner__about .media {
    border-radius: 20px;
}


.practitioner__qualifications {
    padding-top: 48px;
    padding-bottom: 64px;
    position: relative;
}

.qualifications__details,
.education__details {
    margin-top: 24px;
} 

.practitioner__qualifications .crayon-border-mobile {
    position: absolute;
    width: 100%;
    pointer-events: none;
    z-index: -1;
}

.practitioner__qualifications .crayon-border-mobile:first-of-type {
    top: 0;
    transform: translateY(-50%);
}

.practitioner__qualifications .crayon-border-mobile:last-of-type {
    bottom: 0;
    transform: translateY(50%);
}

dt {
    font-weight: var(--type-medium);
}

dt::after {
    content: ": ";
}

dl {
    display: block;
}

dl > div {
    display: flex;
}

dl > div + div {
    margin-top: 8px;
}

.practitioner__about dt {
    min-width: 154px;
    margin-right: 24px;
}

.practitioner__qualifications .crayon-border-desktop {
    display: none;
}

.qualifications + .education {
    margin-top: 40px;
}

dl + p {
    margin-top: 40px;
}

.rte > dl + p {
    margin-top: 40px;
}

@media screen and (min-width: 750px) {
    .practitioner__qualifications .crayon-border-mobile {
        display: none;
    }

    .qualifications,
    .education {
        display: flex;
        gap: 80px;
        position: relative;
        z-index: 2;
    }

    .qualifications + .education {
        margin-top: 72px;
    }

    .qualifications h2,
    .education h2 {
        min-width: 192px;
    }

    .qualifications__details,
    .education__details {
        max-width: 714px;
        margin-top: 0;
    } 

    .practitioner__qualifications .crayon-border-desktop {
        display: block;
        position: absolute;
        width: 100%;
        pointer-events: none;
    }
    
    .practitioner__qualifications .crayon-border-desktop:nth-of-type(2) {
        top: 0;
        transform: translateY(-50%);
    }
    
    .practitioner__qualifications .crayon-border-desktop:not(:nth-of-type(2)) {
        bottom: 0;
        transform: translateY(50%);
    }

    .practitioner__qualifications {
        padding-bottom: 96px;
    }

    .practitioner__about {
        display: grid;
        grid-template-columns: 300px auto;
        gap: 32px;
        padding-top: 64px;
        padding-bottom: 112px;
    }
}

@media screen and (min-width: 1024px) {
    .practitioner__about {
        grid-template-columns: 463px auto;
        gap: 56px;
        padding-top: 80px;
        padding-bottom: 112px;
    }

    .qualifications,
    .education {
        gap: 120px;
    }

    .qualifications h2,
    .education h2 {
        min-width: 272px;
    }
}

.practitioner__services {
    display: flex;
    flex-direction: column;
    gap: 32px;
}


.licenses li + li {
    margin-top: 20px;
}

.practitioner__services {
    padding-top: 112px;
    padding-bottom: 64px;
}

.practitioner__about + .practitioner__services {
    padding-top: 0;
}

@media screen and (min-width: 1024px) {
    .practitioner__services {
        padding-bottom: 112px;
    }
}

.practitioner__services h3 {
    font-size: 24px;
    background: rgb(var(--color-accent));
    padding: 16px 20px;
    border-radius: 100px;
}


.practitioner__services ul {
    background: rgb(var(--color-white));
    padding: 28px 20px;
    border-radius: 20px;
}

.practitioner__services ul li {
    display: flex;
    align-items: center;
}

@media screen and (min-width: 750px) {
    .practitioner__services.two-column {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }

    .practitioner__services h3 {
        padding: 18px 40px;
    }

    .practitioner__services ul {
        background: rgb(var(--color-white));
        padding: 40px;
        border-radius: 36px;
        height: 100%;
        box-sizing: border-box;
    }
}

.practitioner__services--evaluations,
.practitioner__services--therapies {
    display: flex;
    flex-direction: column;
}

.practitioner__services ul li::before {
    content: "";
    height: 32px;
    width: 32px;
    flex: 0 0 32px;

    background-image: url(../assets/flower.svg);
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    vertical-align: middle;
    margin-right: 20px;
}

.practitioner__services ul li + li {
    margin-top: 16px;
}

.practitioner__services ul li a {
    font-weight: var(--type-medium);
    color: currentColor;
    text-decoration: none;
}

.practitioner__services ul li a:hover {
    text-decoration: underline;
}

/* Policy pages */
.page__policy header {
    position: relative;
    padding-top: 80px;
    padding-bottom: 64px;
}

.page__policy .crayon-border {
    background-image: url("../assets/crayon-border-desktop.svg");
    height: 100px;
}

.page__policy .crayon-border:first-of-type {
    transform: translate(0, 50%);
}

.page__policy .crayon-border:last-of-type {
    transform: translate(0, -50%);
}


.page__policy header {
    background-image: url("../assets/leaves.svg");
    background-repeat: no-repeat;
    background-position: center;
}

.page__policy .entry-content {
    padding-top: 64px;
    padding-bottom: 112px;
    position: relative;
}

/* Block editor styles */
.wp-block-embed iframe {
    width: 100%;
}

* + .wp-block-embed {
    margin-top: 48px;
}

.wp-block-embed + * {
    margin-top: 16px;
}

@media screen and (min-width: 996px) {
    .wp-block-embed iframe {
        height: 515px;
    }
}

.wp-block-button__link {
    font-size: inherit;
}

.wp-block-button__link.wp-element-button {
    font-weight: var(--type-medium);
    /*background: rgb(var(--color-white));*/
}

.wp-block-quote {
    font-family: var(--font-heading-family);
    padding-left: 24px;
    padding-top: 8px;
    padding-bottom: 8px;
    border-left: 3px solid rgb(var(--color-foreground));
    margin-top: 24px;
}

.wp-element-button {

}

@media screen and (min-width: 750px) {
    .wp-block-quote {
        font-size: 24px;
        line-height: 1.3;
        padding-left: 40px;
        border-left: 4px solid rgb(var(--color-foreground));
    }
}

/* contact-form-7 */
@media screen and (min-width: 750px) {
    .contact article {
        display: grid;
        grid-template-columns: 550px auto;
        gap: 68px;
    }

    .contact__header {
        text-align: center;
        padding-top: 96px;
        margin-bottom: 52px;
    }
}

.contact p.note {
    margin-top: 4px;
    opacity: 67%;
}

.contact p.note + p {
    margin-top: 12px;
}

.contact .post-thumbnail {
    display: none;
}

@media screen and (min-width: 750px) {
    .contact .post-thumbnail {
        display: block;
        border-radius: 20px;
        overflow: hidden;
        max-height: max-content;
        position: sticky;
        top: 64px;
        height: 0;
        padding-bottom: 100%;
    }
}

.contact img.attachment-post-thumbnail.size-post-thumbnail.wp-post-image {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
    left: 0;
    right: 0;
    height: 100%;
    object-fit: cover;
}

.wpcf7-form > * + *,
.input-group > * + * {
    margin-top: 12px;
}

.wpcf7-submit {
    margin-top: 28px;
}

@media screen and (min-width: 750px) {
    .wpcf7-form > * + * {
        margin-top: 32px;
    }

    .input-group > * + * {
        margin-top: 0;
    }

    .wpcf7-submit {
        margin-top: 8px;
    }
}

.wpcf7-form > h3:first-of-type {
    margin-top: 0;
}

.wpcf7 label,
.wpcf7 legend {
    font-family: var(--font-heading-family);
    font-size: 18px;
}

.wpcf7-list-item.first {
    margin: 0 0;
}

.wpcf7-form-control-wrap,
.wpcf7-radio {
    display: block;
    margin-top: 12px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="number"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 select:not([multiple]) {
    padding: 16px 24px;
    border-radius: 50px;
    color: rgb(var(--color-foreground));
    border: none;
    width: 100%;
}

select[multiple] {
    color: rgb(var(--color-foreground));
    padding: 16px 0;
    border: none;
    border-radius: 20px;
    width: 100%;
    height: 216px;
}

select[multiple] option {
    padding: 8px 24px;
}

.wpcf7 textarea {
    padding: 16px 24px;
    border-radius: 20px;
    border: none;
    resize: none;
}

.wpcf7 fieldset label {
    cursor: pointer;
}

.wpcf7 input[type="radio"] {
    /* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility */
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px 1px 1px 1px);
    /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
}

.wpcf7 input[type="radio"] + span {
    font-family: var(--font-body-family);
    font-size: 16px;
    padding: 16px 24px;
    background-color: rgb(var(--color-white));
    border-radius: 50px;
    display: block;
}

.wpcf7 input[type="radio"]:checked + span {
    background-color: rgb(var(--color-medium-green));
    color: rgb(var(--color-white));
}

.wpcf7-not-valid-tip {
    font-family: var(--font-body-family);
    font-size: 14px;
    color: rgb(var(--color-error));
    display: block;
    margin-top: 12px;
}

@media screen and (min-width: 750px) {
    .input-group {
        display: flex;
        align-items: flex-start;
        gap: 32px;
    }
    
    .input-group > * {
        flex: 0 0 calc(50% - 16px);
    }

    .is-sticky {
        height: max-content;
        position: sticky;
        top: 64px;
    }
}

:where(.wp-block-columns.is-layout-flex) {
    gap: 64px;
}

/* tables */
.wp-block-table thead {
    border-bottom: none;
}

.wp-block-table.is-style-stripes {
    background-color: initial;
    border-bottom: 1px solid #f0f0f0;
    border-collapse: inherit;
    border-spacing: 0;
    border-radius: 24px;
    overflow: hidden;
}

@media screen and (max-width: 749px) {
    .wp-block-table td, .wp-block-table th {
        padding: 16px;
    }

    .wp-block-table .has-fixed-layout {
        width: 720px;
    }

    .wp-block-table.is-style-stripes {
        overflow: scroll;
    }
}

.wp-block-table.is-style-stripes th,
.wp-block-table.is-style-stripes td {
    vertical-align: middle;
}

.wp-block-table.is-style-stripes thead th {
    font-family: var(--font-heading-family);
    font-size: 18px;
}

.wp-block-table.is-style-stripes thead tr th,
.wp-block-table.is-style-stripes tbody tr:nth-child(even) {
    background-color: var(--color-table-row-odd);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
    background-color: var(--color-table-row-even);
}


.wp-block-table.is-style-stripes td,
.wp-block-table.is-style-stripes th {
    border-color: #0000
}

.contact-information dt, 
.contact-information dd {
    display: inline;
}

address,
.opening-hours,
.contact-information {
    margin-top: 12px;
}

.site-footer .menu a {
    text-decoration: none;
    color: inherit;
    display: block;
}

.footer__newsletter > p {
    margin-top: 24px;
    margin-bottom: 16px;
}

.footer__newsletter img {
    width: 163px;
}

.footer__menu h3 {
    margin-bottom: 12px;
}

.footer__menu li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer__menu a {
    text-decoration: none;
    color: rgb(var(--color-foreground), 1);
}
.footer__menu li a:hover {
    color: rgb(var(--color-foreground), 1);
}

.footer__menu li + li {
    margin-top: 12px;
}

.site-info {
    font-size: 12px;
    padding-top: 16px;
    padding-bottom: 16px;
}

.footer__top {
    font-size: 14px;
    position: relative;
    padding-top: 40px;
    padding-bottom: 180px;
}

.footer-house {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: -1;
    pointer-events: none;
}

.footer__wong-chuk-hang {
    margin: 32px 0;
}

#footer-menu {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

@media screen and (min-width: 750px) {
    .footer__top {
        display: grid;
        gap: 48px;
        grid-template-columns: 1fr 1fr auto;
        padding-top: 48px;
        padding-bottom: 240px;
    }

    .footer__newsletter {
        grid-column: span 3;
    }

    .footer__wong-chuk-hang {
        margin: 0 0;
    }

    #footer-menu {
        justify-content: flex-end;
        gap: 36px;
        margin-top: 0;
    }

    #footer-menu a {
        font-size: 14px;
        margin-bottom: 0;
    }

    .site-info {
        font-size: 16px;
        padding-top: 16px;
        padding-bottom: 16px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
}

@media screen and (min-width: 1024px) {
    .footer__newsletter {
        grid-column: span 1;
    }

    .footer__top {
        grid-template-columns: 1.5fr 1fr 1fr auto;
    }
}

@media screen and (min-width: 2199px) {
    .site-footer {
        background-size: cover;
    }
}

/*  swiper */
.swiper-button-prev,
.swiper-button-next {
    transition: all 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
    background-color: rgb(var(--color-cream-yellow));
    
}

/* mailchimp */
.mc_form_inside {
    display: flex;
    flex-wrap: wrap;
}

.wp-block-mailchimp-mailchimp-form-field:first-of-type {
    width: calc(100% - 56px);
}

.mc_custom_border_hdr {
    font-family: var(--font-body-family);
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 20px;
}

#mc_mv_EMAIL {
    width: 324px;
    max-width: calc(100vw - 56px - 32px);
    height: 54px;
    background: rgb(var(--color-cream-yellow));
    color: 1px solid rgb(var(--color-foreground));
    font-weight: var(--type-medium);
    padding: 16px 32px;
    border: 1px solid rgb(var(--color-foreground));
    border-radius: 72px;
}

#mc_signup_submit {
    font-size: 0;
    width: 56px !important;
    height: 56px;
    border-radius: 100%;
    background: rgb(var(--color-foreground));
    color: rgb(var(--color-cream-yellow));
    background-image: url('../assets/arrow-yellow.svg');
    background-position: center;
    background-repeat: no-repeat;
    cursor: pointer;
    transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
    transform: rotate(-45deg);
}

#mc_signup_submit:hover {
    transform: none;
}

/* collage */
.collage__header--house {
    padding-top: 124px;
    background-image: url(house.svg);
    background-position: center top;
    background-repeat: no-repeat;
    margin-bottom: 40px;
}

.collage__images--mobile {
    width: calc(100vw + 80px);
    margin-left: -56px;
    margin-bottom: 16px;
}

.collage__images--desktop {
    display: none;
}

.collage__additional-text {
    text-align: left;
}

@media screen and (min-width: 834px) {
    .collage__additional-text {
        text-align: center;
    }

    .collage__images--desktop {
        width: 100%;
        display: block;
        margin-bottom: 40px;
    }

    .collage__images--mobile {
        display: none;
    }
}


.home .collage__wrapper {
    background-image: url(../assets/leaves.svg);
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
}

@media screen and (min-width: 1024px) {
    .home .collage__wrapper {
        background-size: auto;
    }
}

.swiper-wrapper {
    height: auto !important;
}

/* article */
.blog .wp-singular .post {
    margin-top: 32px;
}

/* whatsapp */
.whatsapp {
    display: block;
    position: fixed;
    width: 48px;
    height: 48px;
    right: 16px;
    bottom: 90px;
    z-index: 99;
}

@media screen and (min-width: 750px) {
    .whatsapp {
        width: 60px;
        height: 60px;
    }
}

/* swiper */
.swiper-button-prev,
.swiper-button-next {
    background-repeat: no-repeat;
    background-position: center;
}

.swiper-button-prev::after,
.swiper-button-next::after {
    content: none !important;
}

.swiper-button-prev {
    background-image: url("data:image/svg+xml,%3Csvg width='42' height='42' viewBox='0 0 42 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_734_69819)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M21.9974 32.0638C22.6149 32.6813 22.6149 33.6834 21.9974 34.3009C21.3799 34.9184 20.3778 34.9184 19.7603 34.3009L7.08385 21.6244C6.46635 21.0069 6.46635 20.0048 7.08385 19.3873L19.7603 6.71085C20.3778 6.09335 21.3799 6.09335 21.9974 6.71085C22.6149 7.32834 22.6149 8.33038 21.9974 8.94788L12.021 18.9243L33.5554 18.9243C34.4292 18.9243 35.137 19.6321 35.137 20.5059C35.137 21.3798 34.4292 22.0876 33.5554 22.0876L12.021 22.0876L21.9974 32.0638Z' fill='%23285611'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_734_69819'%3E%3Crect width='29' height='29' fill='white' transform='translate(20.5059 41.0117) rotate(-135)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
}

.swiper-button-next {
    background-image: url("data:image/svg+xml,%3Csvg width='42' height='42' viewBox='0 0 42 42' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_734_69816)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.0143 8.94788C18.3969 8.33038 18.3969 7.32834 19.0143 6.71085C19.6318 6.09336 20.6339 6.09336 21.2514 6.71085L33.9279 19.3873C34.5454 20.0048 34.5454 21.0069 33.9279 21.6244L21.2514 34.3009C20.6339 34.9184 19.6318 34.9184 19.0143 34.3009C18.3969 33.6834 18.3969 32.6813 19.0143 32.0638L28.9907 22.0874L7.45637 22.0874C6.58251 22.0874 5.87471 21.3796 5.87471 20.5058C5.87471 19.6319 6.58251 18.9241 7.45637 18.9241L28.9907 18.9241L19.0143 8.94788Z' fill='%23285611'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_734_69816'%3E%3Crect width='29' height='29' fill='white' transform='translate(20.5059) rotate(45)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
}

.swiper-button-prev,
.swiper-button-next {
    position: static !important;
    width: 64px !important;
    height: 64px !important;;
    border: 2px solid var(--color-border);
    border-radius: 100%;
    margin-top: 0;
    background-color: rgb(var(--color-beige));
}

.isolate {
    position: relative;
}

.swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal {
    position: static !important;
    overflow: hidden;
}

/* pop-up */
.popup {
    background: var(--color-light-orange);
    max-width: 480px;
    padding: 20px;
    border-radius: 16px 0 0 16px;
    position: fixed;
    right: 0;
    z-index: 100;
    top: 47vh;
    max-width: 340px;

    display: flex;
    gap: 20px;
    align-items: center;
    font-size: 12px;
}
@media screen and (min-width: 750px) {
    .popup {
        max-width: 480px;
        padding: 32px;
        border-radius: 20px 0 0 20px;
        font-size: 13px;
    }
}

.popup__image {
    width: 135px;
    height: 170px;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 0 135px;
    position: relative;
}

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

.popup .rte > * + * {
    margin-top: 8px;
}

.popup a.button {
    font-size: 14px;
    font-weight: var(--type-medium);
    padding: 6px 24px;
    /* border-width: 2px; */
    margin-top: 16px;
}

.popup .button--secondary::before {
    content: '';
    background: var(--color-light-orange);
    transition: all 0.4s cubic-bezier(0, 0, 0.58, 1);
}

.icon-close-popup {
    top: 20px;
    right: 8px;
}

.popup .rte {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

/* ACF BLOCKS */
/* ACF HERO FOR MAIN */
.main-hero {
    text-align: center;
    position: relative;
}

.main-hero::after {
    content: "";
    background: linear-gradient(180deg,rgba(203, 221, 107, 0) 0%, rgba(203, 221, 107, 1) 100%);
    height: 130px;
    width: 100%;
    position: absolute;
    bottom: 0;
    z-index: 9;
    left: 0;
}


@media screen and (min-width: 750px) {
    .main-hero::after {
        height: 180px;
    }
}

@media screen and (min-width: 1024px) {
    .main-hero::after {
        height: 360px;
    }
}
.main-hero__button {
    margin-top: 32px;
}

.main-hero--inner-wrapper {
    position: relative;
    padding-top: 44.7vw;
}

.main-hero__image {
    border-radius: 10px;
    overflow: hidden;
    position: absolute;
}

.main-hero__image--1 {
    width: 27vw;
    height: 31vw;
    left: 36px;
    top: 36px;
}

.main-hero__image--2 {
    width: 26.7vw;
    height: 31vw;
    top: 28px;
    right: 32px;
}

.main-hero__image--3 {
    width: 35vw;
    height: 24.4vw;
    top: 480px;
    left: 32px;
}

.main-hero__image--4 {
    width: 24vw;
    height: 27vw;
    top: 442px;
    right: 20px;
}

/* .main-hero__image--2 {
    width: 177px;
    height: 206px;
    top: 80px;
    right: 106px;
}

.main-hero__image--3 {
    width: 212px;
    height: 148px;
    top: 529px;
    left: 308px;
}

.main-hero__image--4 {
    width: 140px;
    height: 160px;
    top: 352px;
    right: 276px;
} */


@media screen and (min-width: 750px) {
    .main-hero__content {
        max-width: 48vw;
    }
    
    .main-hero--inner-wrapper  {
        padding-top: 11vw;
    }

    .main-hero__image--1 {
        width: 13vw;
        height: 15.5vw;
        left: 12vw;
        top: 3.6vw;
    }

    .main-hero__image--2 {
        width: 13.5vw;
        height: 15.6vw;
        top: 3vw;
        right: 10vw;
    }

    .main-hero__image--3 {
        width: 17.3vw;
        height: 12vw;
        top: 30vw;
        left: 17.6vw;
    }

    .main-hero__image--4 {
        width: 11.3vw;
        height: 12.6vw;
        top: 26vw;
        right: 12vw;
    }
}

@media screen and (min-width: 1440px) {
    .main-hero__content {
        max-width: 768px;
    }
    
    .main-hero--inner-wrapper  {
        padding-top: 160px;
    }

    .main-hero__image {
        border-radius: 20px;
    }    

    .main-hero__image--1 {
        width: 175px;
        height: 200px;
        left: 146px;
        top: 32px;
    }

    .main-hero__image--2 {
        width: 177px;
        height: 206px;
        top: 80px;
        right: 106px;
    }

    .main-hero__image--3 {
        width: 212px;
        height: 148px;
        top: 440px;
        left: 308px;
    }

    .main-hero__image--4 {
        width: 140px;
        height: 160px;
        top: 352px;
        right: 276px;
    }
}

.main-hero__image > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


.main-hero__illustration {
    width: 100%;
    display: block;
}

/* ACF HERO FOR SERVICES */
.hero__grid {
    display: flex;
    flex-direction: column-reverse;
    gap: 24px;
}

@media screen and (min-width: 750px) {
    .hero__grid {
        flex-direction: row;
    }
    
    .hero__grid--reverse {
        flex-direction: row-reverse;
    }
}

.hero__content {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: center;
    position: relative;
    z-index: 1;
}


.hero__media-item img {
    border-radius: 20px;
}

.hero__content,
.hero__media-item {
    opacity: 0;
}

@media screen and (min-width: 750px) {
    
    .hero__media-item,
    .hero__text-item {
        flex: 0 0 calc(50% - 24px);
        min-height: 100%;
        overflow: visible;
    }

    .hero__content {
        padding: 0 40px 0 0;
        height: 100%;
    }

    .hero__grid--reverse .hero__content {
        margin-left: auto;
    }

    .hero__content--bottom {
        justify-content: flex-end;
        align-self: flex-end;
    }

    .hero__content--top {
        justify-content: flex-start;
        align-self: flex-start;
    }

    .hero__content--desktop-right > * {
        align-self: flex-end;
        text-align: right;
    }

    .hero__content--desktop-left > * {
        align-self: flex-start;
        text-align: left;
    }

    .hero__content--desktop-center > * {
        align-self: center;
        text-align: center;
    }
}

.hero {
    background-repeat: no-repeat;
    background-size: 100%;
}

.hero--assessment {
    background-image: url("assessment.svg");
}

.hero--assessment-overview {
    background-image: url("assessment-overview.svg");
    background-position: bottom;
    background-size: cover;
}

.hero--therapy {
    background-image: url("therapy.svg");
    background-position: left bottom;
}

.hero--school-support {
    background-image: url("school-support.svg");
    background-position: center bottom;
}

/* ACF BLOCK RICH TEXT */
.rich-text .rte ul {
    list-style: none;
    padding-left: 0;
    margin-top: 32px;
}

.rich-text .rte ul li {
    display: flex;
    align-items: center;
    font-weight: var(--type-medium);
}

.rich-text .rte ul li + li {
    margin-top: 16px;
}

.rich-text ul li::before {
    content: "";
    height: 32px;
    width: 32px;
    background-image: url(../assets/flower.svg);
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    vertical-align: middle;
    margin-right: 20px;
    flex: 0 0 32px;
}

/* ACF BLOCK FOR TYPES OF SERVICE */
.services-card__image-wrapper {
    width: 75%;
    margin: 0 auto;
}

.services-card__image-wrapper .media--adapt {
    height: fit-content;
}

.services-list,
.services-list li + li {
    margin-top: 24px;
}

.services-card {
    border: 2px solid rgb(var(--color-medium-green));
    border-radius: 20px;
    padding: 32px;
    height: 100%;
    position: relative;
    transition: all 280ms cubic-bezier(0, 0, 0.58, 1);
}

.services-card:hover {
    background: #E3E0CF;
}

.services-card__info {
    max-width: 324px;
    margin: 20px auto 0;
}

.services-card__info h3 {
    margin-bottom: 16px;
}

@media screen and (min-width: 750px) {
    .services-list {
        margin-top: 56px;
    }

    .services-list li + li {
        margin-top: 0;
    }

    .services-card__info {
        font-size: 14px;
    }

    .services-card  {
        padding: 24px;
    }
}

@media screen and (min-width: 1024px) {
    .services-list {
        margin-top: 56px;
    }

    .services-card__info {
        font-size: 16px;
    }

    .services-card  {
        padding: 40px 32px;
    }
}

.services-card__info a {
    font-size: 0;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    content: "";
}

/* ACF BLOCK FOR TYPES OF THERAPIES + SCHOOL SUPPORT */
@media screen and (max-width: 749px) {
    .school-support .card + .card,
    .therapies .card + .card  {
        margin-top: 40px;
    }
}

.school-support .title,
.therapies .title  {
    margin-bottom: 40px;
}


/* ACF BLOCK IMAGE WITH TEXT */
.image-with-text__media-item .media {
    border-radius: 20px;
    overflow: hidden;
}

.image-with-text__media-item {
    margin-bottom: 20px;
}

@media screen and (max-width: 479px) {
    /* .image-with-text__media-item {
        display: none;
    } */
    
    .image-with-text .button--primary.button--has-arrow {
        font-size: 12px;
    }
}

@media screen and (max-width: 749px) {
    .image-with-text__wrapper.page-width {
        margin-left: 16px;
        margin-right: 16px;
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media screen and (min-width: 750px) {
    .image-with-text__wrapper.page-width {
        margin-left: 40px;
        margin-right: 40px;
    }

    .image-with-text__grid {
        display: flex;
    }

    .image-with-text__wrapper .page-width .image-with-text__grid {
        gap: 48px;
    }

    .image-with-text__grid--reverse {
        flex-direction: row-reverse;
    }

    .image-with-text__wrapper.page-width .image-with-text__media-item {
        margin-right: 48px;
    }

    .image-with-text__wrapper.page-width .image-with-text__text-item {
        padding-right: 24px;
    }

    .image-with-text__wrapper.page-width .image-with-text__grid--reverse .image-with-text__text-item {
        padding-left: 24px;
        padding-right: 0;
    }

    .image-with-text__wrapper.page-width .image-with-text__grid--reverse .image-with-text__media-item {
        margin-left: 48px;
        margin-right: 0;
    }

    .image-with-text__media-item {
        flex: 0 0 calc(45% - 24px);
        min-height: 100%;
    }

    .image-with-text__text-item {
        flex: 0 0 calc(55% - 24px);
        
    }

    .image-with-text__media-item .media {
        border-radius: 20px;
    }

    .image-with-text__media-item {
        margin-bottom: 20px;
    }
}

@media screen and (min-width: 1024px) {
    .image-with-text__media-item {
        margin-bottom: 0;
    }

    .image-with-text__wrapper .page-width .image-with-text__grid {
        gap: 72px;
    }

    .image-with-text__media-item,
    .image-with-text__text-item {
        flex: 0 0 calc(50% - 36px);
        min-height: 100%;
        overflow: visible;
    }
}

@media screen and (min-width: 1400px) {
    .image-with-text__wrapper.page-width {
        margin-left: auto;
        margin-right: auto;
    }
}

/*.image-with-text__media--small {*/
/*    height: 19.4rem;*/
/*}*/

/*.image-with-text__media--medium {*/
/*    height: 29.6rem;*/
/*}*/

/*.image-with-text__media--large {*/
/*    height: 43.5rem;*/
/*}*/

.image-with-text__content {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    align-self: center;
    position: relative;
    z-index: 1;
}

.image-with-text__wrapper.page-width {
    border-radius: 32px;
    padding-top: 48px;
    padding-bottom: 40px;
}

ul.image-with-text__stats {
    text-align: center;
    list-style: none;
    padding-left: 10px;
    padding-right: 10px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 32px;
}

.image-with-text__stats .number {
    font-size: 36px;
    font-weight: var(--type-semi-bold);
    display: block;
}


@media screen and (min-width: 750px) {
    .image-with-text__wrapper.page-width {
        border-radius: 56px;
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .image-with-text__grid--reverse .image-with-text__content {
        margin-left: auto;
    }

    .image-with-text__content--bottom {
        justify-content: flex-end;
        align-self: flex-end;
    }

    .image-with-text__content--top {
        justify-content: flex-start;
        align-self: flex-start;
    }

    .image-with-text__content--desktop-right > * {
        align-self: flex-end;
        text-align: right;
    }

    .image-with-text__content--desktop-left > * {
        align-self: flex-start;
        text-align: left;
    }

    .image-with-text__content--desktop-center > * {
        align-self: center;
        text-align: center;
    }


    ul.image-with-text__stats {
        text-align: left;
        padding-left: 0;
        padding-right: 0;
        row-gap: 48px;
    }

}


/* MISC */
.grecaptcha-badge {
    z-index: 10;
}

main .page-width .page-width {
    padding: 0 0;
}