/* KFF — Elementor Nav Menu pixel match Homepage_v10 #primary-nav */

.elementor-nav-menu--main.elementor-nav-menu__container,
.elementor-nav-menu--main .elementor-nav-menu{
  --kff-teal:#10605A;
  --kff-charcoal:#3A3A3A;
  --kff-sage:#9FB7A7;
  --kff-gold:#C2A36B;
  --kff-warm-white:#F5F5F3;
  --kff-sage-wash:#EDF2ED;
  --kff-sans:'Alegreya Sans', 'Helvetica Neue', Arial, sans-serif;
  --kff-card-shadow:0 14px 32px rgba(58,58,58,0.10);
}

/* Layout: gap between top-level items */
.elementor-nav-menu--main .elementor-nav-menu{
  display:flex !important;
  align-items:center !important;
  gap:2.6rem !important;
  flex-wrap:nowrap !important;
}

/* Prevent header clipping dropdown */
.elementor-widget-nav-menu,
.elementor-widget-nav-menu > .elementor-widget-container,
.elementor-nav-menu--main.elementor-nav-menu__container,
.elementor-location-header,
.site-header,
#masthead,
.ast-primary-header-bar,
.ast-builder-grid-row{
  overflow:visible !important;
}

/* Kill Elementor pointer underline (we use prototype gold ::after) */
.elementor-nav-menu--main.e--pointer-underline .elementor-item:before,
.elementor-nav-menu--main.e--pointer-underline .elementor-item:after,
.elementor-nav-menu--main .elementor-item.elementor-item-anchor:before{
  display:none !important;
  content:none !important;
  opacity:0 !important;
  width:0 !important;
  height:0 !important;
}

/* Top-level links */
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > a.elementor-item{
  display:inline-flex !important;
  align-items:center !important;
  gap:.4rem !important;
  position:relative !important;
  padding:0 0 4px !important;
  margin:0 !important;
  font-family:var(--kff-sans) !important;
  font-size:.88rem !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
  line-height:1.4 !important;
  color:var(--kff-charcoal) !important;
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-decoration:none !important;
  text-transform:none !important;
  transition:color .3s ease !important;
}

/* Gold underline — prototype nav#primary-nav a::after */
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item::after,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > a.elementor-item::after{
  content:'' !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  height:1px !important;
  width:0 !important;
  background:var(--kff-gold) !important;
  transition:width .35s ease !important;
  pointer-events:none !important;
  opacity:1 !important;
  transform:none !important;
}

.elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item:hover::after,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > a.elementor-item:hover::after,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item.current-menu-item > .elementor-item::after,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item.current-menu-ancestor > .elementor-item::after,
.elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item.elementor-item-active::after{
  width:100% !important;
}

/* White links on hero (add class kff-hero-phase to header or body) */
.kff-hero-phase .elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item,
.kff-hero-phase .elementor-nav-menu--main .elementor-nav-menu > .menu-item > a.elementor-item,
header.hero-phase .elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item,
header.hero-phase .elementor-nav-menu--main .elementor-nav-menu > .menu-item > a.elementor-item{
  color:#fff !important;
}

/* Hide Astra duplicate toggle — keep Elementor sub-arrow */
.elementor-nav-menu--main .dropdown-menu-toggle,
.elementor-nav-menu--main .ast-header-navigation-arrow{
  display:none !important;
}

/* Chevron — prototype .chevron 8×8, rotate on hover */
.elementor-nav-menu--main .sub-arrow{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 0 0 .15rem !important;
  padding:0 !important;
  line-height:1 !important;
  transition:transform .3s ease !important;
}
.elementor-nav-menu--main .sub-arrow svg{
  width:8px !important;
  height:8px !important;
  display:block !important;
}
.elementor-nav-menu--main .menu-item-has-children:hover > .elementor-item .sub-arrow,
.elementor-nav-menu--main .menu-item-has-children:focus-within > .elementor-item .sub-arrow,
.elementor-nav-menu--main .menu-item-has-children.sm-hover > .elementor-item .sub-arrow{
  transform:rotate(180deg) !important;
}

/* Dropdown panel — prototype .dropdown-menu */
.elementor-nav-menu--main .menu-item-has-children{
  position:relative !important;
}

/* Invisible bridge: keeps :hover alive across the 18px gap to the panel */
.elementor-nav-menu--main .menu-item-has-children::before{
  content:'' !important;
  position:absolute !important;
  left:-12px !important;
  right:-12px !important;
  top:100% !important;
  height:28px !important;
  background:transparent !important;
  pointer-events:auto !important;
  z-index:99 !important;
}

.elementor-nav-menu--main .menu-item-has-children > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children > .elementor-nav-menu--dropdown{
  position:absolute !important;
  top:calc(100% + 18px) !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) translateY(10px) !important;
  min-width:190px !important;
  width:auto !important;
  margin:0 !important;
  padding:.5rem 0 !important;
  background:var(--kff-warm-white) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:var(--kff-card-shadow) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  display:block !important;
  transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s !important;
  z-index:100 !important;
  list-style:none !important;
}

.elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children.sm-hover > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children:hover > .elementor-nav-menu--dropdown,
.elementor-nav-menu--main .menu-item-has-children:focus-within > .elementor-nav-menu--dropdown,
.elementor-nav-menu--main .menu-item-has-children.sm-hover > .elementor-nav-menu--dropdown,
.elementor-nav-menu--main .menu-item-has-children > .sub-menu:hover,
.elementor-nav-menu--main .menu-item-has-children > .elementor-nav-menu--dropdown:hover{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateX(-50%) translateY(0) !important;
  transition:opacity .35s ease, transform .35s ease, visibility 0s linear 0s !important;
}

/* Dropdown links — no gold underline */
.elementor-nav-menu--main .sub-menu .elementor-sub-item,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-sub-item{
  display:block !important;
  padding:.6rem 1.4rem !important;
  font-family:var(--kff-sans) !important;
  font-size:.85rem !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
  line-height:1.4 !important;
  color:var(--kff-charcoal) !important;
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-decoration:none !important;
  text-transform:none !important;
  white-space:nowrap !important;
  transition:background .3s ease, color .3s ease !important;
}
.elementor-nav-menu--main .sub-menu .elementor-sub-item::after,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-sub-item::after{
  display:none !important;
  content:none !important;
}
.elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.elementor-nav-menu--main .sub-menu .elementor-sub-item:focus,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-sub-item:hover,
.elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-sub-item:focus{
  background:var(--kff-sage-wash) !important;
  color:var(--kff-teal) !important;
}

/* —— KFF Mega Menu (Elementor templates, desktop only) —— */
.kff-mega-root{
  --kff-teal:#10605A;
  --kff-charcoal:#3A3A3A;
  --kff-sage:#9FB7A7;
  --kff-gold:#C2A36B;
  --kff-warm-white:#F5F5F3;
  --kff-sage-wash:#EDF2ED;
  --kff-sans:'Alegreya Sans', 'Helvetica Neue', Arial, sans-serif;
  --kff-serif:'Playfair Display', Georgia, serif;
  --kff-card-shadow:0 14px 32px rgba(58,58,58,0.10);
  display:none;
}

@media (min-width:1025px){
  /* Hide native WP dropdown for mega-linked items */
  .elementor-nav-menu--main .menu-item.kff-has-mega > .sub-menu,
  .elementor-nav-menu--main .menu-item.kff-has-mega > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--main .menu-item[class*="kff-mega-"] > .sub-menu,
  .elementor-nav-menu--main .menu-item[class*="kff-mega-"] > .elementor-nav-menu--dropdown{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .elementor-nav-menu--main .menu-item.kff-has-mega::before,
  .elementor-nav-menu--main .menu-item[class*="kff-mega-"]::before{
    display:none !important;
  }

  .kff-mega-root{
    display:block;
    position:fixed;
    left:0;
    right:0;
    top:var(--kff-mega-top, 72px);
    width:100vw;
    max-width:100vw;
    z-index:10000;
    pointer-events:none;
  }

  .kff-mega-panel{
    display:none;
    width:100%;
    box-sizing:border-box;
    background:var(--kff-warm-white);
    color:var(--kff-charcoal);
    box-shadow:var(--kff-card-shadow);
    pointer-events:auto;
    opacity:0;
    transform:translateY(8px);
    transition:opacity .35s ease, transform .35s ease;
  }

  .kff-mega-root.is-open .kff-mega-panel.is-active{
    display:block;
    opacity:1;
    transform:translateY(0);
  }

  /* Optional layout helpers inside the Elementor template */
  .kff-mega-panel .kff-mega-grid{
    display:grid;
    grid-template-columns:minmax(220px,1.15fr) repeat(3, minmax(140px,1fr));
    gap:2.4rem 3rem;
    padding:2.4rem 6vw 2.8rem;
    align-items:start;
  }

  .kff-mega-panel .kff-mega-intro-title{
    font-family:var(--kff-sans);
    font-weight:700;
    font-size:clamp(1.6rem, 2vw, 2.2rem);
    line-height:1.15;
    color:var(--kff-charcoal);
    margin:0 0 .85rem;
  }

  .kff-mega-panel .kff-mega-intro-text{
    font-family:var(--kff-serif);
    font-size:1rem;
    line-height:1.55;
    color:var(--kff-charcoal);
    margin:0 0 1.2rem;
    max-width:28ch;
  }

  .kff-mega-panel .kff-mega-intro-cta,
  .kff-mega-panel .kff-mega-intro-cta a{
    font-family:var(--kff-sans);
    font-weight:700;
    font-size:.92rem;
    color:var(--kff-teal);
    text-decoration:underline;
    text-underline-offset:.2em;
  }

  .kff-mega-panel .kff-mega-col-title{
    font-family:var(--kff-sans);
    font-weight:700;
    font-size:.95rem;
    color:var(--kff-charcoal);
    margin:0 0 .9rem;
  }

  .kff-mega-panel .kff-mega-links,
  .kff-mega-panel .kff-mega-links ul{
    list-style:none;
    margin:0;
    padding:0;
  }

  .kff-mega-panel .kff-mega-links a{
    font-family:var(--kff-serif);
    font-size:.98rem;
    line-height:1.35;
    color:var(--kff-charcoal);
    text-decoration:none;
    display:inline-block;
    padding:.28rem 0;
    transition:color .25s ease;
  }

  .kff-mega-panel .kff-mega-links a:hover,
  .kff-mega-panel .kff-mega-links a:focus{
    color:var(--kff-teal);
  }
}

@media (max-width:1024px){
  .kff-mega-root{
    display:none !important;
  }
}

/* Contact CTA — add CSS class kff-nav-cta on menu item in WP/Elementor */
.elementor-nav-menu--main .menu-item.kff-nav-cta > .elementor-item,
.elementor-nav-menu--main .menu-item.kff-nav-cta > a.elementor-item,
.elementor-nav-menu--main .elementor-item.kff-nav-cta{
  background:var(--kff-sage) !important;
  color:var(--kff-charcoal) !important;
  padding:.6rem 1.3rem !important;
  font-size:.76rem !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  font-weight:500 !important;
  transition:background .3s ease, transform .3s ease, box-shadow .3s ease, color .3s ease !important;
}
.elementor-nav-menu--main .menu-item.kff-nav-cta > .elementor-item::after,
.elementor-nav-menu--main .menu-item.kff-nav-cta > a.elementor-item::after,
.elementor-nav-menu--main .elementor-item.kff-nav-cta::after{
  display:none !important;
}
.elementor-nav-menu--main .menu-item.kff-nav-cta > .elementor-item:hover,
.elementor-nav-menu--main .menu-item.kff-nav-cta > a.elementor-item:hover,
.elementor-nav-menu--main .elementor-item.kff-nav-cta:hover{
  background:var(--kff-gold) !important;
  color:var(--kff-charcoal) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 8px 18px rgba(58,58,58,0.16) !important;
}

@media (max-width:1024px){
  /* Elementor mobile menu — keep readable; full drawer is theme/Elementor setting */
  .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item:hover{
    background:var(--kff-sage-wash) !important;
    color:var(--kff-teal) !important;
  }
}

@media (prefers-reduced-motion: reduce){
  .elementor-nav-menu--main .elementor-item,
  .elementor-nav-menu--main .sub-arrow,
  .elementor-nav-menu--main .sub-menu,
  .elementor-nav-menu--main .menu-item.kff-nav-cta > .elementor-item{
    transition-duration:0.001ms !important;
  }
}

