.elementor-18565 .elementor-element.elementor-element-2ff7822{--display:flex;--z-index:9999;}.elementor-18565 .elementor-element.elementor-element-205378f{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Cormorant Garamond;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Cormorant Garamond;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-18565 .elementor-element.elementor-element-54dcd25 .elementor-menu-toggle{margin:0 auto;}.elementor-18565 .elementor-element.elementor-element-54dcd25 .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-accent-font-family ), Cormorant Garamond;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-18565 .elementor-element.elementor-element-54dcd25 .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-3a38a6c );fill:var( --e-global-color-3a38a6c );}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Cormorant Garamond;font-weight:var( --e-global-typography-text-font-weight );font-style:var( --e-global-typography-text-font-style );}.elementor-18565 .elementor-element.elementor-element-acba622.elementor-element{--align-self:center;--flex-grow:1;--flex-shrink:0;}.elementor-18565 .elementor-element.elementor-element-895720b .elementor-menu-toggle{margin:0 auto;}.elementor-18565 .elementor-element.elementor-element-895720b .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-accent-font-family ), Cormorant Garamond;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-18565 .elementor-element.elementor-element-21431b3{--display:flex;--z-index:9999;}.elementor-18565 .elementor-element.elementor-element-21431b3.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-18565 .elementor-element.elementor-element-58c769d{--spacer-size:50px;}.elementor-18565 .elementor-element.elementor-element-3d6ad4e.elementor-element{--align-self:center;--flex-grow:1;--flex-shrink:0;}.elementor-18565 .elementor-element.elementor-element-b96ac9d{--display:flex;}.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-item .wpml-ls-link, 
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-legacy-dropdown a{color:var( --e-global-color-text );}.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-legacy-dropdown a:hover,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-legacy-dropdown a:focus,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-legacy-dropdown .wpml-ls-current-language:hover>a,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-item .wpml-ls-link:hover,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-item .wpml-ls-link.wpml-ls-link__active,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-item .wpml-ls-link.highlighted,
					.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-item .wpml-ls-link:focus{color:var( --e-global-color-accent );}.elementor-widget-wpml-language-switcher .wpml-elementor-ls .wpml-ls-statics-post_translations{color:var( --e-global-color-text );}.elementor-18565 .elementor-element.elementor-element-676c011.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-18565 .elementor-element.elementor-element-676c011 .elementor-menu-toggle{margin:0 auto;}.elementor-18565{margin:-100px -100px -100px -100px;padding:0px 0px 0px 0px;}@media(max-width:1024px) and (min-width:768px){.elementor-18565 .elementor-element.elementor-element-b96ac9d{--width:83px;}}@media(max-width:1024px){.elementor-18565 .elementor-element.elementor-element-205378f{--grid-auto-flow:row;}.elementor-18565 .elementor-element.elementor-element-21431b3{--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-18565 .elementor-element.elementor-element-582f934{width:auto;max-width:auto;}.elementor-18565 .elementor-element.elementor-element-58c769d{width:var( --container-widget-width, 83px );max-width:83px;--container-widget-width:83px;--container-widget-flex-grow:0;}.elementor-18565 .elementor-element.elementor-element-b96ac9d{--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;}.elementor-18565 .elementor-element.elementor-element-c501062{width:auto;max-width:auto;}.elementor-18565 .elementor-element.elementor-element-676c011{width:auto;max-width:auto;}}@media(max-width:767px){.elementor-18565 .elementor-element.elementor-element-205378f{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-18565 .elementor-element.elementor-element-21431b3{--min-height:0px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-18565 .elementor-element.elementor-element-582f934{width:auto;max-width:auto;}.elementor-18565 .elementor-element.elementor-element-58c769d{width:var( --container-widget-width, 83px );max-width:83px;--container-widget-width:83px;--container-widget-flex-grow:0;}.elementor-18565 .elementor-element.elementor-element-3d6ad4e{width:auto;max-width:auto;}.elementor-18565 .elementor-element.elementor-element-b96ac9d{--width:83px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:7px 7px;--row-gap:7px;--column-gap:7px;--flex-wrap:nowrap;}.elementor-18565 .elementor-element.elementor-element-c501062{width:auto;max-width:auto;}.elementor-18565 .elementor-element.elementor-element-676c011{width:auto;max-width:auto;}}/* Start custom CSS for container, class: .elementor-element-2ff7822 *//**
 * Desktop header: layout, sticky state, page backgrounds and shared dropdowns.
 * Elementor -> Page Header -> Desktop Container (2ff7822)
 * -> Advanced -> Custom CSS. Replace the field with this complete file.
 */

/* Scrolled dimensions; the shared sticky surface is defined below. */
.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects {
    min-height: 70px;
    padding-top: 4px;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(30, 61, 32, 0.07);
}

/* Logo: the full logo crossfades to the compact icon once the header is
   sticky, matching the mobile header. The widget height drives the header
   height; both logo layers are centred inside it and animate only opacity
   and transform, so they never jump while the header resizes. Each state
   sets the timing for arriving in it: the outgoing layer fades quickly and
   the incoming one follows shortly after. */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo {
    position: relative;
    height: 110px;
    transition: height 0.4s ease;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo > a {
    position: absolute;
    inset: 0;
    display: block;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 210px;
    max-width: none;
    height: 110px;
    object-fit: contain;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    will-change: opacity, transform;
    transition:
        opacity 0.26s ease 0.08s,
        transform 0.4s ease;
}

/* Compact icon, preloaded behind the full logo at its final size. */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 36px;
    height: 50px;
    margin: -25px 0 0 -18px;
    background:
        url("/wp-content/uploads/2026/05/logo-icon-color_cutout.svg")
        center / contain no-repeat;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.8);
    will-change: opacity, transform;
    transition:
        opacity 0.16s ease,
        transform 0.3s ease;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-logo {
    height: 54px;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-logo img {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.5);
    transition:
        opacity 0.16s ease,
        transform 0.4s ease;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-logo::after {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.26s ease 0.08s,
        transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
    .elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo,
    .elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo img,
    .elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo::after {
        transition: none !important;
    }
}

/* Navigation link colours */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-menu .elementor-item {
    color: rgba(254, 250, 242, 0.9);
    transition: color 0.3s ease;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-menu .elementor-item {
    color: #1e3d20;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-menu .elementor-item:hover,
.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-menu .elementor-item:hover {
    color: #e06420;
}

/* CTA becomes slightly smaller */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-cta .elementor-button {
    transition:
        padding 0.4s ease,
        font-size 0.4s ease,
        box-shadow 0.3s ease;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-cta .elementor-button {
    padding: 10px 18px;
    font-size: 11px;
}

/* Tablet */
@media (max-width: 1024px) {
    .elementor-18565 .elementor-element.elementor-element-2ff7822 {
        min-height: 100px;
        padding: 10px 30px;
    }

    .elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects {
        min-height: 68px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-18565 .elementor-element.elementor-element-2ff7822,
    .elementor-18565 .elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects) {
        position: fixed;
        min-height: 72px;
        padding: 4px 16px;
        background: rgba(254, 250, 242, 0.94);
        box-shadow: 0 8px 24px rgba(28, 28, 24, 0.08);
       backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .elementor-18565 .elementor-element.elementor-element-2ff7822 .vd-nav-logo img,
    .elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects .vd-nav-logo img {
        width: 70px;
        max-height: 52px;
    }
}

.elementor-18565 .elementor-element.elementor-element-2ff7822 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: transparent;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--active {
    position: fixed !important;
    top: 0 !important;
}

.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects {
    background: rgba(254, 250, 242, 0.94);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 12px 35px rgba(28, 28, 24, 0.09);
}

/* Dark menu text after scrolling */
.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
    color: #1e3d20 !important;
}

/* Still orange on hover */
.elementor-18565 .elementor-element.elementor-element-2ff7822.elementor-sticky--effects
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item:hover {
    color: #e06420 !important;
}

/* Main menu typography */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main .elementor-item {
    font-family: "Be Vietnam Pro", sans-serif !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: color 0.3s ease;
}

/* White at the top */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
    color: rgba(255, 255, 255, 0.9) !important;
}

/* Orange on hover */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item:hover {
    color: #e06420 !important;
}

/* Remove Elementor pointer/underline */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main .elementor-item::before,
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main .elementor-item::after {
    display: none !important;
    opacity: 0 !important;
    transform: none !important;
}

/* Keep CTA text white */
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main .nav-cta > .elementor-item,
.elementor-18565 .elementor-element.elementor-element-2ff7822 .elementor-nav-menu--main .nav-cta > .elementor-item:hover {
    color: #ffffff !important;
}

/**
 * Responsive desktop header layout.
 *
 * The desktop header consists of a left WordPress menu, a centered image and
 * a right WordPress menu. Elementor's equal three-column grid leaves too
 * little room for the menus and allows their lists to wrap. Keep the logo in
 * a fixed center track and let both menu tracks share the remaining width.
 */

@media (min-width: 1201px) {
  .elementor-location-header
  .elementor-element.elementor-element-205378f {
    --e-con-grid-template-columns: minmax(0, 1fr) 210px minmax(0, 1fr);
    grid-template-columns: minmax(0, 1fr) 210px minmax(0, 1fr) !important;
    align-items: center;
  }

  .elementor-location-header
  .elementor-element.elementor-element-205378f
  .elementor-nav-menu--main > .elementor-nav-menu {
    flex-wrap: nowrap !important;
  }

  .elementor-location-header
  .elementor-element.elementor-element-205378f
  .elementor-nav-menu--main > .elementor-nav-menu > li {
    flex: 0 0 auto;
  }

  .elementor-location-header
  .elementor-element.elementor-element-205378f
  .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item {
    padding-right: clamp(8px, 0.7vw, 12px) !important;
    padding-left: clamp(8px, 0.7vw, 12px) !important;
    white-space: nowrap;
  }
}

/**
 * Global desktop header background policy.
 *
 * The header is light by default. Pages whose first section is a supported
 * dark hero remain transparent until Elementor applies its sticky effects.
 * This deliberately avoids WordPress page IDs so WPML translations inherit
 * the same behavior without copying an English-only .elementor-18565 .elementor-element.elementor-element-2ff7822.
 *
 * Dark-hero exceptions:
 * - WordPress front pages (`body.home`)
 * - Yên Retreat (`.hero#retreat`)
 * - Retreat Overview (`[data-vroh-hero]`)
 * - Private Retreat (`body.private-retreat-page`)
 * - Future dark heroes marked with `[data-vd-dark-hero]`
 */

/* Light initial state for normal pages. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects) {
  background: rgba(254, 250, 242, 0.96) !important;
  border-bottom: 1px solid rgba(30, 61, 32, 0.07);
  box-shadow: 0 12px 35px rgba(28, 28, 24, 0.09);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Dark, readable desktop navigation on the light initial header. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
  color: #1e3d20 !important;
}

/* Transparent initial state on pages that begin with a dark hero. */
body.home
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has(.hero#retreat)
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has([data-vroh-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body.private-retreat-page
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has([data-vd-dark-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects) {
  background: transparent !important;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Light desktop navigation over dark heroes before scrolling. */
body.home
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has(.hero#retreat)
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has([data-vroh-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body.private-retreat-page
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has([data-vd-dark-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Keep the existing orange hover treatment in every header state. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item:hover {
  color: #e06420 !important;
}


/*
 * Elementor currently shows the mobile header below 1200px, but does not hide
 * the desktop header until 1024px. Resolve that overlap and switch before the
 * desktop menus run out of horizontal space, matching the clickdummy.
 */
@media (min-width: 1025px) and (max-width: 1200px) {
  .elementor-location-header
  > .elementor-element.elementor-element-2ff7822 {
    display: none !important;
  }

  .elementor-location-header
  > .elementor-element.elementor-element-21431b3 {
    display: flex !important;
  }
}

/**
 * Shared desktop header dropdowns and dynamic retreat mobile styling.
 *
 * The PHP menu filter adds `.vd-dynamic-retreats` to the parent and
 * `.vd-dynamic-retreat-item` to each generated retreat link. Desktop styles
 * target the shared Elementor markup so Retreats, About and WPML language
 * submenus match. Elementor keeps control of opening, closing, keyboard focus
 * and mobile accordion behavior.
 */

@media (min-width: 1201px) {
  /* Elementor gives the submenu icon its own fill, so explicitly make every
     desktop arrow follow the parent menu link in transparent and sticky states. */
  .elementor-location-header
  .elementor-nav-menu--main
  .menu-item-has-children > .elementor-item > .sub-arrow,
  .elementor-location-header
  .elementor-nav-menu--main
  .menu-item-has-children > .elementor-item > .sub-arrow i {
    color: inherit !important;
    transition: color 0.3s ease;
  }

  .elementor-location-header
  .elementor-nav-menu--main
  .menu-item-has-children > .elementor-item > .sub-arrow svg,
  .elementor-location-header
  .elementor-nav-menu--main
  .menu-item-has-children > .elementor-item > .sub-arrow svg path {
    fill: currentColor !important;
  }

  .elementor-location-header
  .elementor-nav-menu--main > .elementor-nav-menu
  > .menu-item-has-children > .sub-menu {
    min-width: 220px !important;
    max-width: min(360px, calc(100vw - 32px));
    max-height: min(60vh, 520px);
    padding: 14px !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fefaf2 !important;
    border: 1px solid rgba(30, 61, 32, 0.12) !important;
    border-radius: 12px !important;
    box-shadow: 0 20px 45px rgba(28, 28, 24, 0.15) !important;
  }

  .elementor-location-header
  .elementor-nav-menu--main > .elementor-nav-menu
  > .menu-item-has-children > .sub-menu > .menu-item + .menu-item {
    margin-top: 6px;
  }

  .elementor-location-header
  .elementor-nav-menu--main > .elementor-nav-menu
  > .menu-item-has-children > .sub-menu > .menu-item > .elementor-sub-item {
    padding: 8px 10px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 8px;
    color: #1e3d20 !important;
    font-family: "Be Vietnam Pro", sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.45;
    text-transform: uppercase;
    white-space: normal;
  }

  .elementor-location-header
  .elementor-nav-menu--main > .elementor-nav-menu
  > .menu-item-has-children > .sub-menu > .menu-item > .elementor-sub-item:hover,
  .elementor-location-header
  .elementor-nav-menu--main > .elementor-nav-menu
  > .menu-item-has-children > .sub-menu > .menu-item > .elementor-sub-item:focus-visible {
    background: rgba(224, 100, 32, 0.1) !important;
    color: #1e3d20 !important;
    outline: none;
  }
}

@media (max-width: 1200px) {
  .elementor-location-header
  .vd-dynamic-retreats > a > .sub-arrow {
    margin-left: auto;
  }

  .elementor-location-header
  .vd-dynamic-retreats > .sub-menu {
    max-height: min(42dvh, 420px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .elementor-location-header
  .vd-dynamic-retreats > .sub-menu
  > .vd-dynamic-retreat-item > .elementor-sub-item {
    white-space: normal;
  }
}/* End custom CSS */
/* Start custom CSS for wpml-language-switcher, class: .elementor-element-c501062 */.elementor-18565 .elementor-element.elementor-element-c501062 {
  width: 38px !important;
  min-width: 38px;
  flex: 0 0 38px;
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-elementor-ls,
.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls,
.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-legacy-dropdown {
  width: 38px !important;
  max-width: 38px !important;
  padding: 0;
  margin: 0;
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-legacy-dropdown > ul {
  width: 38px;
  padding: 0;
  margin: 0;
  border: 0;
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-current-language > a.wpml-ls-item-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 38px;
  height: 38px;
  padding: 0 13px 0 7px;
  border: 1px solid rgba(30, 61, 32, 0.10);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #1e3d20;
  box-shadow: 0 5px 14px rgba(28, 28, 24, 0.05);
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-native,
.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-display {
  display: none !important;
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-flag {
  display: block;
  width: 19px;
  height: auto;
  margin: 0 !important;
}

/* Replace WPML's default arrow */
.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-item-toggle::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 6px;
  width: 5px;
  height: 5px;
  border: 0;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}

/* Dropdown containing the other languages */
.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-sub-menu {
  top: calc(100% + 5px);
  left: 0;
  width: 38px !important;
  padding: 5px;
  border: 1px solid rgba(30, 61, 32, 0.12);
  border-radius: 12px;
  background: rgba(254, 250, 242, 0.98);
  box-shadow: 0 10px 24px rgba(28, 28, 24, 0.14);
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-sub-menu a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 4px;
  border: 0;
  border-radius: 50%;
  background: transparent;
}

.elementor-18565 .elementor-element.elementor-element-c501062 .wpml-ls-sub-menu a:hover {
  background: rgba(224, 100, 32, 0.10);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-21431b3 *//**
 * Complete mobile header: container, logo, language controls and Nav Menu.
 * Elementor -> Page Header -> Mobile Container (21431b3)
 * -> Advanced -> Custom CSS. Replace the field with this complete file.
 * Clear the old custom CSS from the nested vd-mobile-menu widget (676c011).
 * `.elementor-18565 .elementor-element.elementor-element-21431b3` always refers to the mobile header container in this file.
 */

/* One offset controls the drawer's top edge and available viewport height. */
.elementor-18565 .elementor-element.elementor-element-21431b3 {
  --vd-mobile-header-height: 92px;
  --vd-mobile-toolbar-height: 0px;
  --vd-mobile-drawer-top: calc(var(--vd-mobile-header-height) + var(--vd-mobile-toolbar-height));
}

/* Hide mobile header on desktop */
@media (min-width: 1200px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 {
    display: none !important;
  }
}

@media (max-width: 1199px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 {
    display: flex !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    min-height: var(--vd-mobile-header-height);
    padding: 8px 12px;
    align-items: center;
    justify-content: flex-end;
    overflow: visible;
    z-index: 9999;

    background: rgba(254, 250, 242, 0.985);
    border-bottom: 1px solid rgba(30, 61, 32, 0.08);
    box-shadow: none;

    /* Avoid iOS Safari softening fixed-header contents during compositing. */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;

    transition:
      min-height 0.35s ease,
      padding 0.35s ease,
      box-shadow 0.3s ease;
  }

  /* Keep the logo in the true center. The box only sets the tap area and
     resizes instantly; both logo layers are centred inside it at fixed sizes
     and animate only opacity and transform. Animating the box width used to
     squeeze the full logo and scale the icon with it, which flickered. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo {
    --width: clamp(150px, 45vw, 190px);
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: clamp(150px, 45vw, 190px) !important;
    height: 76px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%);
    z-index: 1;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo > a {
    position: absolute;
    inset: 0;
    display: block;
  }

  /* Each state sets the timing for arriving in it: the outgoing layer fades
     quickly and the incoming one follows shortly after. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo img {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: auto !important;
    max-width: none !important;
    height: 76px !important;
    margin: 0;
    object-fit: contain;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    will-change: opacity, transform;
    transition:
      opacity 0.24s ease 0.08s,
      transform 0.35s ease;
  }

  /* Compact icon, preloaded behind the full logo at its final size. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 34px;
    height: 46px;
    margin: -23px 0 0 -17px;
    pointer-events: none;
    background:
      url("/wp-content/uploads/2026/05/logo-icon-color_cutout.svg")
      center / contain no-repeat;
    opacity: 0;
    transform: scale(0.8);
    will-change: opacity, transform;
    transition:
      opacity 0.16s ease,
      transform 0.3s ease;
  }

  /* Right-side controls */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions {
    --width: auto;
    position: relative;
    display: flex !important;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    width: auto !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    gap: 7px;
    z-index: 2;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions > .elementor-element {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }

  /* Hamburger circle */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-toggle {
    width: 38px !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-toggle .elementor-icon-wrapper {
    display: flex;
    line-height: 0;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-toggle .elementor-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 9px;
    border: 1px solid rgba(30, 61, 32, 0.10);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #1e3d20;
    box-shadow: 0 6px 14px rgba(28, 28, 24, 0.05);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-toggle svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
  }

  /* Compact WPML switcher */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .elementor-widget-container,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-elementor-ls {
    width: 51px !important;
    max-width: 51px !important;
  }

  /* Demo-style outer pill containing a separate flag chip and chevron. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-legacy-dropdown {
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    width: 51px !important;
    max-width: 51px !important;
    height: 36px !important;
    padding: 3px !important;
    border: 1px solid rgba(30, 61, 32, 0.10) !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: 0 5px 14px rgba(28, 28, 24, 0.05) !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-legacy-dropdown > ul {
    display: flex !important;
    align-items: center !important;
    width: 43px !important;
    max-width: 43px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-legacy-dropdown > ul > .wpml-ls-current-language {
    width: 43px !important;
    max-width: 43px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-item-toggle {
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    width: 43px !important;
    max-width: 43px !important;
    height: 26px !important;
    min-height: 26px !important;
    padding: 0 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #1e3d20 !important;
    box-shadow: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-item-toggle::after {
    content: "" !important;
    position: static !important;
    display: block !important;
    flex: 0 0 7px !important;
    box-sizing: border-box !important;
    width: 7px !important;
    height: 7px !important;
    margin: 0 0 0 6px !important;
    border: 0 !important;
    border-right: 1.5px solid #1e3d20 !important;
    border-bottom: 1.5px solid #1e3d20 !important;
    transform: rotate(45deg) translateY(-1px) !important;
    transform-origin: center !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-native,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-display {
    display: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-item-toggle > .wpml-ls-flag {
    display: block !important;
    flex: 0 0 26px !important;
    box-sizing: border-box !important;
    width: 26px !important;
    max-width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 4px 2px !important;
    border: 1px solid rgba(30, 61, 32, 0.14) !important;
    border-radius: 999px !important;
    background: rgba(254, 250, 242, 0.32) !important;
    object-fit: contain !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu {
    top: calc(100% + 8px);
    left: 50% !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: translateX(-50%) !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu > li,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu .wpml-ls-link {
    box-sizing: border-box !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
  }

  /* Nested language: use one clean circular button instead of a padded
     submenu card containing a second, undersized button. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu .wpml-ls-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: 1px solid rgba(30, 61, 32, 0.10) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.92) !important;
    color: #1e3d20 !important;
    box-shadow: 0 5px 14px rgba(28, 28, 24, 0.05) !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu .wpml-ls-flag {
    display: block !important;
    flex: 0 0 18px !important;
    width: 18px !important;
    max-width: 18px !important;
    height: 12px !important;
    margin: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu .wpml-ls-link:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-lang .wpml-ls-sub-menu .wpml-ls-link:focus {
    border-color: rgba(224, 100, 32, 0.35) !important;
    background: #fefaf2 !important;
    box-shadow: 0 7px 18px rgba(28, 28, 24, 0.12) !important;
  }
}

/* Smaller phones */
@media (max-width: 380px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo {
    --width: 140px;
    width: 140px !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo img {
    height: 68px !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions {
    gap: 4px;
  }
}

/* Logged-in WordPress toolbar */
@media (max-width: 782px) {
  body.admin-bar .elementor-18565 .elementor-element.elementor-element-21431b3 {
    --vd-mobile-toolbar-height: 46px;
    top: var(--vd-mobile-toolbar-height);
  }
}

@media (min-width: 783px) and (max-width: 1199px) {
  body.admin-bar .elementor-18565 .elementor-element.elementor-element-21431b3 {
    --vd-mobile-toolbar-height: 32px;
    top: var(--vd-mobile-toolbar-height);
  }
}
/*
 * Force the right controls into place across the entire
 * mobile/tablet header range, including 1025–1199px.
 */
@media (max-width: 1199px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 {
    position: fixed;
  }

  /* The mobile container is fixed manually and does not receive Elementor's
     sticky-effects class. Reuse the desktop header's existing scroll state so
     both responsive headers compact at the same threshold. */
  .elementor-18565 .elementor-element.elementor-element-21431b3.elementor-sticky--effects,
  .elementor-location-header > .elementor-element-2ff7822.elementor-sticky--effects:not(.elementor-sticky__spacer) ~ .elementor-element-21431b3:not(.elementor-sticky__spacer) {
    --vd-mobile-header-height: 60px;
    min-height: var(--vd-mobile-header-height) !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    box-shadow: 0 8px 24px rgba(28, 28, 24, 0.08);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3.elementor-sticky--effects .vd-mobile-logo,
  .elementor-location-header > .elementor-element-2ff7822.elementor-sticky--effects:not(.elementor-sticky__spacer) ~ .elementor-element-21431b3:not(.elementor-sticky__spacer) .vd-mobile-logo {
    --width: 34px;
    width: 34px !important;
    height: 46px !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3.elementor-sticky--effects .vd-mobile-logo img,
  .elementor-location-header > .elementor-element-2ff7822.elementor-sticky--effects:not(.elementor-sticky__spacer) ~ .elementor-element-21431b3:not(.elementor-sticky__spacer) .vd-mobile-logo img {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.6);
    transition:
      opacity 0.16s ease,
      transform 0.35s ease;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3.elementor-sticky--effects .vd-mobile-logo::after,
  .elementor-location-header > .elementor-element-2ff7822.elementor-sticky--effects:not(.elementor-sticky__spacer) ~ .elementor-element-21431b3:not(.elementor-sticky__spacer) .vd-mobile-logo::after {
    opacity: 1;
    transform: scale(1);
    transition:
      opacity 0.24s ease 0.08s,
      transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions {
    --width: auto;

    position: absolute !important;
    top: 0 !important;
    right: 12px !important;
    bottom: 0 !important;
    left: auto !important;

    display: flex !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;

    width: auto !important;
    min-width: 83px;
    height: 38px;
    min-height: 38px;

    margin: auto 0 !important;
    padding: 0 !important;
    gap: 7px !important;

    z-index: 10;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions .vd-mobile-lang {
    --width: 51px;

    flex: 0 0 51px !important;
    width: 51px !important;
    min-width: 51px !important;
    max-width: 51px !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions .vd-mobile-menu {
    --width: 38px;

    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  /* Keep the compact language dropdown above the fixed burger panel when
     both controls are open. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions .vd-mobile-lang {
    position: relative !important;
    z-index: 10001 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions .vd-mobile-lang .wpml-ls-sub-menu {
    z-index: 10002 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-actions .vd-mobile-menu {
    position: relative !important;
    z-index: 10000 !important;
  }

  /* Match the clickdummy footer area: normal navigation first, then a flat
     language pill and finally the full-width reservation button. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu nav.elementor-nav-menu--dropdown > ul.elementor-nav-menu {
    display: flex !important;
    flex-direction: column !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language {
    position: relative !important;
    order: 1 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    /* The final standard menu item already provides the divider line. */
    margin: 35px 0 0 !important;
    padding: 6px 10px !important;
    overflow: visible !important;
    border: 1px solid rgba(30, 61, 32, 0.10) !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: 0 5px 14px rgba(28, 28, 24, 0.05) !important;
  }

  /* Show WPML's nested languages inline instead of as an accordion. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > .sub-menu {
    display: contents !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > .sub-menu > .wpml-ls-menu-item {
    display: block !important;
    flex: 0 0 24px !important;
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > a.elementor-item,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > .sub-menu > .wpml-ls-menu-item > a.elementor-sub-item {
    display: flex !important;
    flex: 0 0 24px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: #1e3d20 !important;
    box-shadow: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > a.elementor-item {
    box-shadow:
      0 0 0 1px rgba(30, 61, 32, 0.20),
      0 6px 14px rgba(28, 28, 24, 0.18) !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > a .sub-arrow,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-menu-item > a::after {
    display: none !important;
    content: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-menu-item > a .wpml-ls-flag {
    display: block !important;
    flex: 0 0 18px !important;
    width: 18px !important;
    max-width: 18px !important;
    height: 12px !important;
    margin: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > .sub-menu > .wpml-ls-menu-item > a.elementor-sub-item:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .wpml-ls-current-language > .sub-menu > .wpml-ls-menu-item > a.elementor-sub-item:focus {
    background: rgba(30, 61, 32, 0.07) !important;
    box-shadow: 0 0 0 1px rgba(30, 61, 32, 0.18) !important;
  }

  /* Booking CTA follows the language row with the same proportions and
     ember treatment as the clickdummy. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .nav-mobile-cta {
    order: 2 !important;
    width: 100% !important;
    margin: 9px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .nav-mobile-cta > a.elementor-item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 50px !important;
    padding: 11px 20px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: #e06420 !important;
    color: #fefaf2 !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.8 !important;
    letter-spacing: 0.094em !important;
    text-align: center !important;
    text-transform: uppercase !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .nav-mobile-cta > a.elementor-item:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-menu .nav-mobile-cta > a.elementor-item:focus {
    background: #d85b19 !important;
    color: #fefaf2 !important;
  }
}

/* Nested Nav Menu: burger, drawer, submenu and booking CTA base.
   :where() targets the widget without adding .elementor-18565 .elementor-element.elementor-element-21431b3 specificity, preserving
   its existing priority relative to the container rules above. Keep this
   section after the container rules, matching Elementor's container/widget
   stylesheet order. */

@media (max-width: 1200px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) {
    position: static !important;
    width: 38px !important;
    min-width: 38px;
    flex: 0 0 38px;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-widget-container {
    position: static !important;
  }

  /* Burger button */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 9px;
    border: 1px solid rgba(30, 61, 32, 0.10);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #1e3d20;
    box-shadow: 0 6px 14px rgba(28, 28, 24, 0.05);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-menu-toggle svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
  }

  /* Fill the viewport below the current header and optional admin toolbar.
     Keep height and the open-state max-height synchronized with the top. */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    box-sizing: border-box;
    position: fixed !important;
    top: var(--vd-mobile-drawer-top) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;

    width: 100vw !important;
    height: calc(100dvh - var(--vd-mobile-drawer-top)) !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 26px 22px 30px;

    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;

    background:
      linear-gradient(
        180deg,
        #fdf8ef 0%,
        #f6ecdb 100%
      ) !important;

    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    opacity: 0;
    visibility: hidden;
    transform: scaleY(0) !important;
    transform-origin: top;
    transition:
      opacity 0.2s ease,
      transform 0.25s ease,
      visibility 0s linear 0.25s;

    z-index: 9998;
  }

  /* Open state */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
    .elementor-menu-toggle.elementor-active
    + .elementor-nav-menu__container {
    max-height: calc(100dvh - var(--vd-mobile-drawer-top)) !important;
    opacity: 1;
    visibility: visible;
    transform: scaleY(1) !important;
    transition-delay: 0s;
  }

  /* Constrain menu items */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown > ul,
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown .elementor-nav-menu {
    width: 100%;
    max-width: 440px;
    margin: 0 auto !important;
    padding: 0;
  }

  /* Main menu rows */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown .elementor-nav-menu > li {
    border-bottom: 1px solid rgba(30, 61, 32, 0.12);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
    .elementor-nav-menu--dropdown
    .elementor-nav-menu
    > li:last-child {
    border-bottom: 0;
  }

  /* Main menu links */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
    .elementor-nav-menu--dropdown
    .elementor-nav-menu
    > li
    > a {
    min-height: auto;
    padding: 13px 0 !important;

    background: transparent !important;
    color: #1e3d20 !important;

    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(19px, 5.6vw, 23px);
    font-weight: 300;
    letter-spacing: 0.018em;
    line-height: 1.24;
    text-align: left;
    text-transform: uppercase;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
    .elementor-nav-menu--dropdown
    .elementor-nav-menu
    > li
    > a:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
    .elementor-nav-menu--dropdown
    .elementor-nav-menu
    > li
    > a.elementor-item-active {
    background: transparent !important;
    color: #e06420 !important;
  }

  /* Submenu */
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown .sub-menu {
    position: static !important;
    width: 100% !important;
    margin: 0 0 10px !important;
    padding: 0 0 0 12px !important;

    background: transparent !important;
    border: 0 !important;
    border-left: 1px solid rgba(30, 61, 32, 0.22) !important;
    box-shadow: none !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown .elementor-sub-item {
    padding: 6px 0 !important;
    border: 0 !important;

    background: transparent !important;
    color: rgba(30, 61, 32, 0.82) !important;

    font-family: "Be Vietnam Pro", sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.45;
    text-transform: uppercase;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu) .elementor-nav-menu--dropdown .elementor-sub-item:hover {
    color: #e06420 !important;
  }
}

@media (max-width: 1200px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta {
    width: 100%;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid rgba(30, 61, 32, 0.12);
    border-bottom: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta
  > a.elementor-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    padding: 12px 20px !important;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #e06420 !important;
    color: #fefaf2 !important;
    font-family: "Be Vietnam Pro", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
    transition:
      background-color 0.24s ease,
      box-shadow 0.24s ease,
      transform 0.24s ease;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta
  > a.elementor-item:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta
  > a.elementor-item:focus-visible {
    background: #c43010 !important;
    color: #fefaf2 !important;
    box-shadow: 0 10px 22px rgba(196, 48, 16, 0.2);
    transform: translateY(-1px);
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta
  > a.elementor-item:focus-visible {
    outline: 3px solid rgba(224, 100, 32, 0.3);
    outline-offset: 3px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 :where(.vd-mobile-menu)
  .elementor-nav-menu--dropdown
  .elementor-nav-menu
  > li.nav-mobile-cta
  > a.elementor-item {
    transition: none;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo img,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo::after {
    transition: none !important;
  }
}

/* Booking button on the left edge of the header: HTML widget `vd-mobile-book`, a direct child
   of this container (source: Mobile-booking-button.html). The logo stays centred, with the
   language switcher and burger on the right. Tablets show the full label. */
@media (max-width: 1199px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book {
    position: absolute !important;
    top: 0;
    bottom: 0;
    left: 12px;
    z-index: 2;
    display: flex;
    align-items: center;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 8px;
    background: #e06420;
    color: #fefaf2;
    box-shadow: 0 6px 14px rgba(224, 100, 32, 0.18);
    font-family: "Be Vietnam Pro", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition:
      background-color 0.24s ease,
      box-shadow 0.24s ease;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link:hover,
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link:focus-visible {
    background: #c43010;
    color: #fefaf2;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link:focus-visible {
    outline: 3px solid rgba(224, 100, 32, 0.3);
    outline-offset: 2px;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__short {
    display: none;
  }
}

/* Phones: short label. */
@media (max-width: 767px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__full {
    display: none;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__short {
    display: inline;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link {
    padding: 0 12px;
  }
}

/* Very narrow phones: the Vietnamese label is longer, so the full logo is a little smaller. */
@media (max-width: 350px) {
  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-logo img {
    height: 60px !important;
  }

  .elementor-18565 .elementor-element.elementor-element-21431b3 .vd-mobile-book__link {
    padding: 0 9px;
    letter-spacing: 0.06em;
  }
}/* End custom CSS */
/* Start custom CSS *//**
 * Global desktop header background policy.
 *
 * The header is light by default. Pages whose first section is a supported
 * dark hero remain transparent until Elementor applies its sticky effects.
 * This deliberately avoids WordPress page IDs so WPML translations inherit
 * the same behavior without copying an English-only .elementor-18565.
 *
 * Dark-hero exceptions:
 * - WordPress front pages (`body.home`)
 * - Yên Retreat (`.hero#retreat`)
 * - Retreat Overview (`[data-vroh-hero]`)
 * - Future dark heroes marked with `[data-vd-dark-hero]`
 *   ELEMENTOR -> PAGE HEADER -> PAGE SETTING -> ADVANCED -> CUSTOM CSS
 */



/* Light initial state for normal pages. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects) {
  background: rgba(254, 250, 242, 0.96) !important;
  border-bottom: 1px solid rgba(30, 61, 32, 0.07);
  box-shadow: 0 12px 35px rgba(28, 28, 24, 0.09);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Dark, readable desktop navigation on the light initial header. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
  color: #1e3d20 !important;
}

/* Transparent initial state on pages that begin with a dark hero. */
body.home
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has(.hero#retreat)
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has([data-vroh-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects),
body:has([data-vd-dark-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects) {
  background: transparent !important;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Light desktop navigation over dark heroes before scrolling. */
body.home
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has(.hero#retreat)
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has([data-vroh-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item,
body:has([data-vd-dark-hero])
.elementor-location-header
.elementor-element.elementor-element-2ff7822:not(.elementor-sticky--effects)
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Keep the existing orange hover treatment in every header state. */
.elementor-location-header
.elementor-element.elementor-element-2ff7822
.elementor-nav-menu--main
.menu-item:not(.nav-cta) > .elementor-item:hover {
  color: #e06420 !important;
}

/* Custom page heroes already render the only visible page title. */
body:is(.retreat-page, .private-retreat-page, :has([data-vroh-hero]), :has(.vd-discovery-page)) main.site-main > .page-header {
  display: none !important;
}

/* Discovery Call already reserves desktop/tablet header space inside its own
   section. Reset negative margins at every width, including fractional viewport
   widths between media-query breakpoints. Mobile spacing is shared below. */
body:has(.vd-discovery-page) header.elementor-location-header {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 767px) {
  body:is(.retreat-page, .private-retreat-page, :has([data-vroh-hero]), :has(.vd-discovery-page)) {
    --mobile-header-height: 92px;
    --hero-header-gap: 24px;
  }

  /* Remove the existing negative-margin header compensation */
  body:is(.retreat-page, .private-retreat-page, :has([data-vroh-hero])) header.elementor-location-header {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Reserve the header once: default templates use main.site-main; Elementor
     Full Width (including Hoi) renders the wp-page directly under body instead.
     The direct-child .elementor-18565 avoids adding a second allowance inside main. */
  body:is(.retreat-page, .private-retreat-page, :has([data-vroh-hero]), :has(.vd-discovery-page)) main.site-main,
  body:is(.retreat-page, .private-retreat-page, :has([data-vroh-hero]), :has(.vd-discovery-page)) > [data-elementor-type="wp-page"] {
    padding-top: var(--mobile-header-height) !important;
  }

  /* Consistent space between navigation and hero content */
  body:is(.retreat-page, .private-retreat-page) .hero,
  body:has([data-vroh-hero]) [data-vroh-hero],
  body:has(.vd-discovery-page) .vd-discovery-page {
    padding-top: var(--hero-header-gap) !important;
  }
}/* End custom CSS */