/* Header menu motion (see menu.js). */
.elementor-location-header .serene-navlink a { position: relative; text-decoration: none !important; transition: color .25s ease; }

/* Desktop: a sage line grows from the middle of each link. */
.elementor-location-header nav .serene-navlink a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1.5px; border-radius: 2px;
  background: #3b5f45; transform: scaleX(0); transform-origin: center;
  transition: transform .32s cubic-bezier(.2, .7, .2, 1);
}
@media (hover: hover) {
  .elementor-location-header nav .serene-navlink a:hover { color: #3b5f45 !important; }
  .elementor-location-header nav .serene-navlink a:hover::after { transform: scaleX(1); }
}
.elementor-location-header nav .serene-navlink a:focus-visible::after,
.elementor-location-header nav .serene-navlink a.is-current::after { transform: scaleX(1); }
.elementor-location-header .serene-navlink a.is-current { color: #3b5f45 !important; }

/* First page of a visit: the links ease in one after another. */
.tmcb-nav-intro nav .serene-navlink { animation: tmcb-nav-in .55s cubic-bezier(.2, .7, .2, 1) both; }
.tmcb-nav-intro nav .serene-navlink:nth-child(1) { animation-delay: .06s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(2) { animation-delay: .1s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(3) { animation-delay: .14s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(4) { animation-delay: .18s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(5) { animation-delay: .22s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(6) { animation-delay: .26s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(7) { animation-delay: .3s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(8) { animation-delay: .34s; }
.tmcb-nav-intro nav .serene-navlink:nth-child(n+9) { animation-delay: .38s; }
@keyframes tmcb-nav-in { from { opacity: 0; transform: translateY(-6px); } }

/* A soft shadow once the page scrolls under the header. */
.elementor-location-header header { transition: box-shadow .35s ease, background-color .35s ease; }
.elementor-location-header.tmcb-scrolled header { box-shadow: 0 8px 28px rgba(36, 48, 42, .08); }

/* Mobile: the panel slides open, then the links follow. */
.elementor-location-header details[open] > summary ~ * { animation: tmcb-panel-in .34s cubic-bezier(.2, .7, .2, 1) both; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink { animation: tmcb-link-in .38s cubic-bezier(.2, .7, .2, 1) both; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(1) { animation-delay: .08s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(2) { animation-delay: .11s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(3) { animation-delay: .14s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(4) { animation-delay: .17s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(5) { animation-delay: .2s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(6) { animation-delay: .23s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(7) { animation-delay: .26s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(8) { animation-delay: .29s; }
.elementor-location-header details[open] > summary ~ * > .serene-navlink:nth-child(n+9) { animation-delay: .32s; }
.elementor-location-header details.is-closing > summary ~ * { animation: tmcb-panel-out .22s ease both; }
.elementor-location-header details.is-closing > summary ~ * > .serene-navlink { animation: none; }
@keyframes tmcb-panel-in { from { opacity: .3; clip-path: inset(0 0 100% 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes tmcb-panel-out { from { opacity: 1; clip-path: inset(0 0 0 0); } to { opacity: 0; clip-path: inset(0 0 100% 0); } }
@keyframes tmcb-link-in { from { opacity: 0; transform: translateX(-10px); } }

/* Three lines that turn into a cross. */
.tmcb-burger { display: inline-block; position: relative; width: 18px; height: 12px; margin-left: 4px; vertical-align: -1px; }
.tmcb-burger i { position: absolute; left: 0; right: 0; height: 1.6px; border-radius: 2px; background: currentColor; transition: transform .32s cubic-bezier(.2, .7, .2, 1), top .32s cubic-bezier(.2, .7, .2, 1), opacity .2s ease; }
.tmcb-burger i:nth-child(1) { top: 0; }
.tmcb-burger i:nth-child(2) { top: 5px; }
.tmcb-burger i:nth-child(3) { top: 10px; }
.tmcb-menu-open .tmcb-burger i:nth-child(1) { top: 5px; transform: rotate(45deg); }
.tmcb-menu-open .tmcb-burger i:nth-child(2) { opacity: 0; transform: scaleX(.2); }
.tmcb-menu-open .tmcb-burger i:nth-child(3) { top: 5px; transform: rotate(-45deg); }

/* The page behind dims while the menu is open. */
.tmcb-menu-scrim { position: fixed; left: 0; right: 0; bottom: 0; top: 73px; z-index: 49; background: rgba(36, 48, 42, .28); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.tmcb-menu-scrim.is-on { opacity: 1; pointer-events: auto; }

@media (prefers-reduced-motion: reduce) {
  .elementor-location-header *, .elementor-location-header *::after, .tmcb-menu-scrim { animation: none !important; transition: none !important; }
}
