/* One brand component for the shared header, footer and mobile navigation. */
.elementor .kf-logo-widget { width: auto !important; flex: 0 0 auto; }
.kf-brand { display: inline-flex; align-items: center; gap: 10px; color: #013424; text-decoration: none; font: 600 25px/1 'Instrument Sans', sans-serif; letter-spacing: -.06em; vertical-align: middle; }
.kf-brand:hover { color: #0b4834; }
.kf-brand__name { color: inherit; font: inherit; letter-spacing: inherit; }
.kf-brand img.kf-brand__mark { display: block; width: 32px; height: 32px; min-width: 32px; border-radius: 7px; object-fit: contain; }
.kf-brand--custom img { display: block; width: auto; height: 36px; max-width: 180px; object-fit: contain; }
.kf-site-footer .kf-brand, .kf-mobile-menu .kf-brand { color: #fff; }
.kf-site-footer .kf-brand--custom, .kf-mobile-menu .kf-brand--custom { padding: 6px 10px; background: #fafaf9; border-radius: 9px; }

html.kf-menu-is-open { overflow: hidden; }
.kf-mobile-menu { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #013424; color: #e9faf2; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.kf-mobile-menu::backdrop { background: #013424b3; }
.kf-mobile-menu::before { content: ''; position: fixed; inset: 20% -160px 0 25%; background: url(flow-lines.svg) right bottom / auto 90% no-repeat; opacity: .23; pointer-events: none; }
.kf-menu-panel { position: relative; display: flex; flex-direction: column; min-height: 100%; width: 100%; max-width: 720px; margin: auto; padding: max(22px, env(safe-area-inset-top)) 24px max(22px, env(safe-area-inset-bottom)); }
.kf-menu-top { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #013424; box-shadow: 0 10px 20px #013424; }
.kf-menu-close { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 11px 16px; border: 1px solid #4e7b66; border-radius: 30px; color: #e9faf2; background: transparent; font: 500 13px/1 'Instrument Sans', sans-serif; cursor: pointer; min-height: 44px; }
.kf-menu-close:hover, .kf-menu-close:focus-visible { background: #d0f1e1; color: #013424; border-color: #d0f1e1; }
.kf-menu-cross { position: relative; display: block; width: 13px; height: 13px; }
.kf-menu-cross::before, .kf-menu-cross::after { content: ''; position: absolute; left: 0; top: 6px; width: 14px; height: 1.5px; border-radius: 1px; background: currentColor; transform: rotate(45deg); }
.kf-menu-cross::after { transform: rotate(-45deg); }
.kf-menu-main { margin: clamp(28px, 6vh, 52px) 0 28px; }
.kf-menu-eyebrow { color: #addec7; font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .16em; margin: 0 0 12px; }
.kf-menu-links { display: flex; flex-direction: column; }
.kf-menu-link { display: flex; align-items: center; gap: 16px; padding: 17px 0; color: #fff; border-bottom: 1px solid #addec737; text-decoration: none; }
.kf-menu-link:hover, .kf-menu-link:focus-visible, .kf-menu-link[aria-current=page] { color: #addec7; }
.kf-menu-number { width: 18px; color: #91bba5; font-size: 10px; font-weight: 400; letter-spacing: 0; align-self: flex-start; padding-top: 8px; }
.kf-menu-link-title { font-size: clamp(35px, 8.5vw, 50px); line-height: 1.08; font-weight: 400; letter-spacing: -.045em; }
.kf-menu-arrow { margin-left: auto; font-size: 24px; font-weight: 400; transition: transform 250ms; }
.kf-menu-link:hover .kf-menu-arrow, .kf-menu-link:focus-visible .kf-menu-arrow { transform: translate(3px, -3px); }
.kf-menu-bottom { margin-top: auto; }
.kf-menu-tagline { font-size: 14px; line-height: 1.55; color: #addec7; margin: 0 0 20px; }
.kf-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kf-menu-cta { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; border: 1px solid #d0f1e1; border-radius: 9px; background: #d0f1e1; color: #013424; font-size: 13px; font-weight: 500; text-decoration: none; }
.kf-menu-cta:hover { background: #fff; color: #013424; border-color: #fff; }
.kf-menu-cta--outline { background: transparent; color: #fff; border-color: #729d86; }
.kf-menu-cta--outline:hover { background: #1b6047; color: #fff; border-color: #addec7; }
.kf-menu-legal { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 24px; padding-top: 18px; border-top: 1px solid #addec737; font-size: 10px; color: #91bba5; }
.kf-menu-legal span { margin-right: auto; }
.kf-menu-legal a { color: #addec7; text-decoration: none; padding-block: 4px; }
.kf-menu-legal a:hover { color: #fff; text-decoration: underline; }
.kf-mobile-menu :focus-visible { outline-color: #addec7; }

@keyframes kf-menu-open { from { opacity: 0; translate: 0 -16px; } to { opacity: 1; translate: 0 0; } }
@keyframes kf-menu-item { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
@keyframes kf-menu-close { from { opacity: 1; translate: 0 0; } to { opacity: 0; translate: 0 -12px; } }
.kf-mobile-menu[open] .kf-menu-top, .kf-mobile-menu[open] .kf-menu-eyebrow { animation: kf-menu-open 300ms cubic-bezier(.22,1,.36,1) both; }
.kf-mobile-menu[open] .kf-menu-link { animation: kf-menu-item 420ms cubic-bezier(.22,1,.36,1) calc(60ms + var(--kf-menu-order, 0) * 55ms) both; }
.kf-mobile-menu[open] .kf-menu-bottom { animation: kf-menu-item 440ms cubic-bezier(.22,1,.36,1) 180ms both; }
.kf-mobile-menu[open].is-closing { animation: kf-menu-close 220ms ease-out both; }

@media (max-width:767px) {
  .e-con.kf-header { justify-content: space-between; }
  .e-con.kf-header-actions { display: none; }
  .kf-brand { font-size: 25px; }
  .kf-menu-toggle button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; padding: 11px 15px; min-height: 44px; border: 1px solid #addec7; border-radius: 30px; background: #e9faf2; color: #013424; font: 500 13px/1 'Instrument Sans', sans-serif; }
  .kf-menu-icon { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 17px; height: 16px; }
  .kf-menu-icon span { display: block; width: 17px; height: 1.5px; background: currentColor; border-radius: 2px; }
  .kf-menu-icon span:last-child { width: 12px; align-self: flex-end; }
}
@media (max-height:700px) {
  .kf-menu-main { margin-block: 22px; }
  .kf-menu-link { padding-block: 12px; }
  .kf-menu-link-title { font-size: 34px; }
  .kf-menu-tagline { font-size: 12px; margin-bottom: 14px; }
  .kf-menu-legal { margin-top: 17px; padding-top: 14px; }
}
@media (max-width:350px) {
  .kf-menu-panel { padding-inline: 20px; }
  .kf-menu-cta { padding-inline: 12px; font-size: 12px; gap: 8px; }
}
@media (prefers-reduced-motion:reduce) {
  .kf-mobile-menu[open], .kf-mobile-menu[open] .kf-menu-top, .kf-mobile-menu[open] .kf-menu-eyebrow, .kf-mobile-menu[open] .kf-menu-link, .kf-mobile-menu[open] .kf-menu-bottom { animation: none !important; }
  .kf-menu-arrow { transition: none; }
}
