/* CODE (11)-inspired full-screen navigation. Used on mobile/tablet AND on
   desktop (the header "Menu" trigger opens the same overlay), so the reveal
   styles apply at all widths; mobile-hamburger rules stay inert on desktop
   because .site-header__mobile is display:none there. */
@media all{
  .site-header__mobile .header-hamburger{
    position:relative;width:48px;height:48px;padding:0;border:1px solid rgba(244,239,227,.18);
    border-radius:50%;color:var(--gv-cream,#f4efe3);overflow:hidden;
  }
  .site-header__mobile .header-hamburger .hamburger__icon{opacity:0}
  .site-header__mobile .header-hamburger::before,
  .site-header__mobile .header-hamburger::after{
    content:"";position:absolute;left:14px;top:calc(50% - 3px);width:20px;height:1.5px;
    border-radius:2px;background:currentColor;transform-origin:center;
    transition:transform 1s cubic-bezier(.85,0,.15,1),top 1s cubic-bezier(.85,0,.15,1);
  }
  .site-header__mobile .header-hamburger::after{top:calc(50% + 3px)}
  body.mobile-menu-panel-opened .site-header__mobile .header-hamburger::before{
    top:50%;transform:rotate(45deg) scaleX(.76);
  }
  body.mobile-menu-panel-opened .site-header__mobile .header-hamburger::after{
    top:50%;transform:rotate(-45deg) scaleX(.76);
  }

  #mobile-menu-panel.gv-mobile-menu{
    --gv-menu-hop:cubic-bezier(.85,0,.15,1);
    display:block;top:0;right:0;bottom:0;left:0;width:100%;height:100vh;height:100dvh;
    z-index:1100;visibility:hidden;overflow:hidden;pointer-events:none;
  }
  #mobile-menu-panel.gv-mobile-menu.offscreen-panel--open{
    visibility:visible;pointer-events:auto;
  }
  #mobile-menu-panel.gv-mobile-menu.gv-mobile-menu--closing{
    visibility:visible;pointer-events:auto;
  }
  #mobile-menu-panel.gv-mobile-menu .panel__backdrop{display:none!important}
  #mobile-menu-panel.gv-mobile-menu .panel__container{
    --gz-panel-content-width:100%;left:0;right:0;top:0;width:100%;max-width:none;height:100vh;height:100dvh;
    transform:none!important;overflow:hidden;background:transparent;color:var(--gv-cream,#f4efe3);
    display:grid;grid-template-rows:auto minmax(0,1fr) auto;
    transition:none;
  }
  #mobile-menu-panel .gv-mobile-menu__background{
    position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;
    perspective:1200px;background:transparent;
  }
  #mobile-menu-panel .gv-mobile-menu__background-panel{
    position:absolute;top:0;right:0;bottom:0;left:0;display:block;
    background:
      radial-gradient(circle at 82% 12%,rgba(253,238,121,.1),transparent 24%),
      linear-gradient(145deg,var(--gv-green,#034638) 0%,var(--gv-green-deep,#022a22) 100%);
    transform:rotate(180deg) scale(2);transform-origin:100% 50%;backface-visibility:hidden;
    transition:transform 1s var(--gv-menu-hop);will-change:transform;
  }
  #mobile-menu-panel.offscreen-panel--open .gv-mobile-menu__background-panel{transform:rotate(0) scale(2)}

  #mobile-menu-panel .gv-mobile-menu__header{
    position:relative;z-index:4;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;
    align-items:center;min-height:76px;margin:0;padding:calc(14px + env(safe-area-inset-top)) 20px 12px;
    background:transparent!important;color:var(--gv-cream,#f4efe3);border:0;
  }
  #mobile-menu-panel .gv-mobile-menu__header::after{display:none}
  #mobile-menu-panel .gv-mobile-menu__logo{
    display:flex;justify-content:center;align-items:center;padding:10px;overflow:hidden;
    opacity:0;transform:translateY(22px);pointer-events:none;
    transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .35s ease;
    transition-delay:.7s;
  }
  #mobile-menu-panel.offscreen-panel--open .gv-mobile-menu__logo{
    opacity:1;transform:translateY(0);pointer-events:auto;
  }
  #mobile-menu-panel .gv-mobile-menu__logo img{display:block;width:min(44vw,176px);height:auto;max-height:36px}
  #mobile-menu-panel .gv-mobile-menu__close{
    position:relative;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(244,239,227,.18);
    border-radius:50%;background:rgba(255,255,255,.025);color:var(--gv-cream,#f4efe3);
    opacity:0;transform:translateY(-14px) scale(.82);pointer-events:none;
    transition:transform .55s var(--gv-menu-hop),opacity .3s ease,border-color .25s ease;
  }
  #mobile-menu-panel.offscreen-panel--open.gv-mobile-menu--close-ready .gv-mobile-menu__close{
    opacity:1;transform:translateY(0) scale(1);pointer-events:auto;
  }
  #mobile-menu-panel .gv-mobile-menu__close span{
    position:absolute;width:19px;height:1.5px;border-radius:2px;background:currentColor;
    transform:rotate(45deg);transition:transform 1s var(--gv-menu-hop);
  }
  #mobile-menu-panel .gv-mobile-menu__close span+span{transform:rotate(-45deg)}
  #mobile-menu-panel:not(.offscreen-panel--open) .gv-mobile-menu__close span:first-child{transform:rotate(180deg)}
  #mobile-menu-panel:not(.offscreen-panel--open) .gv-mobile-menu__close span+span{transform:rotate(-180deg)}
  #mobile-menu-panel .gv-mobile-menu__header-balance{width:48px;height:48px}

  #mobile-menu-panel .gv-mobile-menu__content{
    position:relative;z-index:3;min-height:0;padding:clamp(20px,5vh,48px) clamp(24px,7vw,54px) 20px;
    overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
  #mobile-menu-panel .gv-mobile-menu__eyebrow{
    margin:0 0 clamp(22px,5vh,42px);font:600 10px/1 var(--gv-sans,"Jost",sans-serif);
    letter-spacing:.28em;text-transform:uppercase;color:var(--gv-gold-light,#fdee79);
  }
  #mobile-menu-panel .gv-mobile-menu__primary nav,
  #mobile-menu-panel .gv-mobile-menu__primary ul,
  #mobile-menu-panel .gv-mobile-menu__primary li{margin:0;padding:0;list-style:none}
  #mobile-menu-panel .gv-mobile-menu__primary>nav>ul.menu{display:flex;flex-direction:column;gap:2px}
  #mobile-menu-panel .gv-mobile-menu__primary>nav>ul.menu>li{
    border:0;padding:0;line-height:1;overflow:hidden;
  }
  #mobile-menu-panel .gv-mobile-menu__primary>nav>ul.menu>li>a{
    display:flex;align-items:center;min-height:clamp(48px,8vh,68px);padding:0 32px 0 0;
    font:400 clamp(35px,10vw,58px)/.96 var(--gv-display,"GV Display",serif);
    font-size:clamp(30px,5vw,48px)!important;letter-spacing:-.02em!important;text-transform:none;
    color:var(--gv-cream,#f4efe3);text-decoration:none;
  }
  #mobile-menu-panel .gv-mobile-menu__primary>nav>ul.menu>li.menu-item-has-children>a::after{
    content:"";position:absolute;top:50%;right:5px;left:auto;inset-inline-end:5px;width:9px;height:9px;
    margin:0;border-top:1.5px solid var(--gv-gold,#c9a24a);border-right:1.5px solid var(--gv-gold,#c9a24a);
    background:transparent;-webkit-mask:none;mask:none;transform:translateY(-50%) rotate(45deg);
  }
  #mobile-menu-panel .gv-mobile-menu__secondary{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(18px,6vw,42px);
    margin-top:clamp(32px,7vh,62px);padding-top:22px;border-top:1px solid rgba(244,239,227,.14);
  }
  #mobile-menu-panel .gv-mobile-menu__secondary a{
    min-height:42px;display:flex;align-items:center;color:rgba(244,239,227,.82);text-decoration:none;
    font:500 12px/1.2 var(--gv-sans,"Jost",sans-serif);letter-spacing:.13em;text-transform:uppercase;
  }

  #mobile-menu-panel .gv-mobile-menu__footer{
    position:relative;z-index:4;display:flex!important;align-items:flex-end;justify-content:space-between;gap:18px;
    margin:0;padding:16px clamp(24px,7vw,54px) calc(18px + env(safe-area-inset-bottom));
    border:0;border-top:1px solid rgba(244,239,227,.12);background:transparent;color:rgba(244,239,227,.68);
  }
  #mobile-menu-panel .gv-mobile-menu__footer nav{display:flex;flex-wrap:wrap;gap:7px 18px}
  #mobile-menu-panel .gv-mobile-menu__footer a,
  #mobile-menu-panel .gv-mobile-menu__footer p{
    margin:0;color:inherit;text-decoration:none;font:500 9px/1.25 var(--gv-sans,"Jost",sans-serif);
    letter-spacing:.12em;text-transform:uppercase;
  }

  /* Masked-line rise: the same .6s cue and .1s stagger as the reference. */
  #mobile-menu-panel .gv-menu-mask{display:block;overflow:hidden;padding:.05em 0}
  #mobile-menu-panel .gv-menu-reveal{
    display:block;transform:translateY(112%);opacity:.01;
    transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .3s ease;
    transition-delay:var(--gv-menu-delay,.8s);will-change:transform;
  }
  #mobile-menu-panel.offscreen-panel--open .gv-menu-reveal{transform:translateY(0);opacity:1}
  #mobile-menu-panel.gv-mobile-menu--closing .gv-menu-reveal{
    transform:translateY(112%);opacity:.01;
    transition-delay:var(--gv-menu-close-delay,0s);
    transition-duration:.34s;
  }
  #mobile-menu-panel.gv-mobile-menu--closing .gv-mobile-menu__close{
    opacity:0;transform:translateY(-14px) scale(.82);pointer-events:none;
    transition-delay:0s;
  }
  #mobile-menu-panel.gv-mobile-menu--closing .gv-mobile-menu__logo{
    opacity:0;transform:translateY(22px);pointer-events:none;
    transition-delay:0s;
  }
  /* Snappier close: rotate the background out faster than the 1s open sweep. */
  #mobile-menu-panel.gv-mobile-menu--closing .gv-mobile-menu__background-panel{
    transition-duration:.5s;
  }
  /* Closing from a submenu: the opaque sub-panel had no exit of its own, so X
     looked frozen the whole close window. Fade the ENTIRE panel out as one unit -
     the sub-panel stays on top and covers the primary menu the whole way out, so
     there is no double-menu overlap flash. (The main-menu close keeps its item
     choreography; only the submenu path gets this flat fade, set from JS.) */
  #mobile-menu-panel.gv-mobile-menu--closing-flat .panel__container{
    animation:gvPanelClose .28s ease forwards;
  }
  @keyframes gvPanelClose{from{opacity:1}to{opacity:0}}
  /* Keep the backdrop in place during the flat close (don't rotate it out) so the
     whole panel - solid backdrop + text on top - fades as one opaque unit, instead
     of the backdrop leaving early and stranding the text over the page. */
  #mobile-menu-panel.gv-mobile-menu--closing-flat .gv-mobile-menu__background-panel{
    transform:rotate(0) scale(2)!important;transition:none!important;
  }

  #mobile-menu-panel .gv-mobile-menu__primary ul.sub-menu{
    top:0;left:0;right:0;width:100%;height:100%;padding:0 clamp(24px,7vw,54px) 30px;
    background:var(--gv-green-deep,#022a22);color:var(--gv-cream,#f4efe3);z-index:8;
  }
  #mobile-menu-panel .gv-mobile-menu__primary ul.sub-menu li{border-color:rgba(244,239,227,.12)}
  #mobile-menu-panel .gv-mobile-menu__primary ul.sub-menu li a:not(:hover):not(.gz-button){color:var(--gv-cream,#f4efe3)}
  #mobile-menu-panel .gv-mobile-menu__primary ul.sub-menu>li:not(.submenu-items--heading)>a{
    display:flex;align-items:center;min-height:58px;
    font:400 24px/1.1 var(--gv-display,"GV Display",serif);
  }
  #mobile-menu-panel .gv-mobile-menu__primary ul.sub-menu .submenu-items--heading{
    min-height:76px;margin:0 calc(0px - clamp(24px,7vw,54px)) 22px;padding:14px clamp(24px,7vw,54px);
    background:var(--gv-green-deep,#022a22);border-color:rgba(244,239,227,.12);color:var(--gv-cream,#f4efe3);
  }
  #mobile-menu-panel .submenu-items--title{
    display:flex;align-items:center;gap:14px;padding:12px 0;border:0;background:transparent;color:inherit;
  }
  #mobile-menu-panel .gv-mobile-menu__submenu-close{border:0;background:transparent}
  #mobile-menu-panel .gv-mobile-menu__submenu-close svg{width:16px;height:16px}

  #mobile-menu-panel a:focus-visible,
  #mobile-menu-panel button:focus-visible,
  .site-header__mobile .header-hamburger:focus-visible{
    outline:2px solid var(--gv-gold-light,#fdee79)!important;outline-offset:3px;
  }
}

@media all{body.gv-mobile-menu-closing{overflow:hidden!important}}

@media (max-width:359px){
  #mobile-menu-panel .gv-mobile-menu__content{padding-inline:20px}
  #mobile-menu-panel .gv-mobile-menu__primary>nav>ul.menu>li>a{font-size:32px!important;min-height:46px}
  #mobile-menu-panel .gv-mobile-menu__secondary{margin-top:24px}
  #mobile-menu-panel .gv-mobile-menu__footer nav{gap:5px 12px}
}

/* Elementor globally collapses transitions for Reduce Motion. Keep the menu's
   signature fan/text choreography intact without affecting other components. */
@media (prefers-reduced-motion:reduce){
  #mobile-menu-panel .gv-mobile-menu__background-panel,
  #mobile-menu-panel .gv-mobile-menu__logo,
  #mobile-menu-panel .gv-mobile-menu__close,
  .site-header__mobile .header-hamburger::before,
  .site-header__mobile .header-hamburger::after,
  #mobile-menu-panel .gv-mobile-menu__close span{
    transition-duration:1s!important;transition-timing-function:cubic-bezier(.85,0,.15,1)!important;
  }
  #mobile-menu-panel .gv-mobile-menu__logo{
    transition-duration:.55s,.35s!important;transition-delay:.7s!important;
  }
  #mobile-menu-panel .gv-mobile-menu__close{
    transition-duration:.55s,.3s,.25s!important;transition-delay:0s!important;
  }
  #mobile-menu-panel .gv-menu-reveal{
    transition-duration:.6s,.3s!important;
    transition-delay:var(--gv-menu-delay,.8s)!important;
  }
  #mobile-menu-panel.gv-mobile-menu--closing .gv-menu-reveal{
    transition-duration:.42s,.42s!important;
    transition-delay:var(--gv-menu-close-delay,0s)!important;
  }
  #mobile-menu-panel.gv-mobile-menu--closing .gv-mobile-menu__close{
    transition-delay:0s!important;
  }
  #mobile-menu-panel.gv-mobile-menu--closing .gv-mobile-menu__logo{
    transition-delay:.3s!important;
  }
}
