/* Base navigation typography */
.main-navigation a,
.primary-navigation a {
  font-size: 18px;
  font-weight: 600;
}

/* Allow dropdowns to escape header */
.site-header,
.site-header .header-inner {
  overflow: visible !important;
}

.site-header nav,
.site-header .site-navigation,
.site-header .primary-navigation,
.site-header .main-navigation {
  overflow: visible !important;
  position: relative !important;
  z-index: 999999 !important;
}

/* =========================
   DESKTOP DROPDOWNS ONLY
   Keep the premium floating dropdown on desktop
   ========================= */
@media (min-width: 1025px) {

  /* Universal dropdown positioning */
  .site-header ul.sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 2147483647 !important;
  }

  /* PREMIUM DROPDOWN STYLING */
  .site-header nav ul ul.sub-menu,
  .site-header .primary-navigation ul ul.sub-menu,
  .site-header .main-navigation ul ul.sub-menu {
    min-width: 260px !important;
    padding: 10px !important;

    margin-top: 0 !important;
    transform: translateY(12px);

    border-radius: 16px !important;
    background: rgba(70, 74, 80, 0.82) !important;
    backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(202, 162, 77, 0.32) !important;
    box-shadow: 0 20px 55px rgba(0,0,0,0.45) !important;
  }

  /* FIX: create an invisible hover bridge so you can move the mouse down into the dropdown */
  .site-header .site-navigation ul.menu li.menu-item-has-children,
  .site-header nav ul.menu li.menu-item-has-children,
  .site-header .primary-navigation ul.menu li.menu-item-has-children,
  .site-header .main-navigation ul.menu li.menu-item-has-children{
    position: relative !important;
  }

  .site-header .site-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header nav ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header .primary-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header .main-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before{
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -14px !important;
    height: 14px !important;
    background: transparent !important;
  }

  /* FIX: keep submenu open on hover and keyboard focus */
  .site-header .site-navigation ul.menu li.menu-item-has-children:hover > ul.sub-menu,
  .site-header .site-navigation ul.menu li.menu-item-has-children:focus-within > ul.sub-menu,
  .site-header nav ul.menu li.menu-item-has-children:hover > ul.sub-menu,
  .site-header nav ul.menu li.menu-item-has-children:focus-within > ul.sub-menu,
  .site-header .primary-navigation ul.menu li.menu-item-has-children:hover > ul.sub-menu,
  .site-header .primary-navigation ul.menu li.menu-item-has-children:focus-within > ul.sub-menu,
  .site-header .main-navigation ul.menu li.menu-item-has-children:hover > ul.sub-menu,
  .site-header .main-navigation ul.menu li.menu-item-has-children:focus-within > ul.sub-menu{
    pointer-events: auto !important;
  }

  /* Dropdown item spacing */
  .site-header nav ul ul.sub-menu li + li {
    margin-top: 4px;
  }

  /* Dropdown link styling */
  .site-header nav ul ul.sub-menu a {
    display: block !important;
    padding: 10px 14px !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.92) !important;
    border-radius: 12px !important;
    letter-spacing: 0.01em;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
  }

  /* Hover and focus states */
  .site-header nav ul ul.sub-menu a:hover,
  .site-header nav ul ul.sub-menu a:focus {
    background: rgba(202,162,77,0.22) !important;
    color: rgba(255,255,255,0.98) !important;
    transform: translateY(-1px);
    outline: none;
  }

  /* Active submenu item */
  .site-header nav ul ul.sub-menu .current-menu-item > a {
    background: rgba(202,162,77,0.28) !important;
    color: rgba(255,255,255,0.98) !important;
  }
}

/* =========================
   MOBILE MENU FIX
   Stop desktop dropdown styles from breaking the drawer
   ========================= */
@media (max-width: 1024px) {

  /* Mobile submenus must be in flow, not floating */
  .site-header ul.sub-menu,
  .site-header nav ul ul.sub-menu,
  .site-header .primary-navigation ul ul.sub-menu,
  .site-header .main-navigation ul ul.sub-menu,
  .elementor-nav-menu__container ul.sub-menu,
  .elementor-nav-menu__container .sub-menu,
  .elementor-nav-menu__submenu,
  .elementor-nav-menu__submenu-container {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    backdrop-filter: none !important;
    min-width: 0 !important;
    width: 100% !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: auto !important;
  }

  /* Kill the desktop hover bridge on mobile */
  .site-header .site-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header nav ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header .primary-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before,
  .site-header .main-navigation ul.menu li.menu-item-has-children > ul.sub-menu::before{
    content: none !important;
    display: none !important;
  }

  /* Submenu link styling inside drawer */
  .site-header nav ul ul.sub-menu a,
  .elementor-nav-menu__container ul.sub-menu a,
  .elementor-nav-menu__container .sub-menu a {
    display: block !important;
    padding: 12px 14px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    border-radius: 0 !important;
    transform: none !important;
  }

  /* Do not animate submenu links in drawer */
  .site-header nav ul ul.sub-menu a:hover,
  .site-header nav ul ul.sub-menu a:focus {
    transform: none !important;
  }

  /* Keep Elementor mobile dropdown container positioned normally */
  .elementor-nav-menu--dropdown{
    position: absolute !important;
  }
}

/* =========================
   AHW MENU UNCLIP PACK
   ========================= */

/* Prevent global clipping */
html, body,
#page, #content, #primary,
.site, .site-content,
.elementor, .elementor-location-header{
  overflow: visible !important;
}

/* Horizontal safety */
body{
  overflow-x: hidden;
  overflow-y: visible !important;
}

/* Elementor containers */
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.e-con,
.e-con-inner{
  overflow: visible !important;
}

/* Header always above */
.elementor-location-header,
header, #masthead, .site-header, .ast-site-header, .main-header-bar, .header-main{
  position: relative !important;
  z-index: 2147483647 !important;
  overflow: visible !important;
  transform: none !important;
  filter: none !important;
}

/* Sticky header states can reintroduce transforms or stacking */
.elementor-sticky--active,
.elementor-sticky--effects,
.ast-header-sticky-active,
.ast-sticky-active,
.sticky,
.is-sticky,
.header-sticky,
.site-header.sticky,
#masthead.sticky{
  overflow: visible !important;
  z-index: 2147483647 !important;
  transform: none !important;
  filter: none !important;
}

/* Common header wrappers that clip dropdowns */
.ast-main-header-wrap,
.ast-primary-header-bar,
.ast-builder-grid-row-container,
.ast-builder-menu,
.site-header .ast-container,
.site-header .container,
.header-main,
.main-header-bar-wrap,
.main-header-bar,
.elementor-location-header .elementor-container,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner{
  overflow: visible !important;
  transform: none !important;
  filter: none !important;
}

/* Dropdown layers */
.elementor-nav-menu__container,
.elementor-nav-menu--dropdown,
.elementor-nav-menu__submenu-container,
.elementor-nav-menu__submenu,
.elementor-nav-menu__container ul,
.elementor-nav-menu__container ul.sub-menu,
.elementor-nav-menu__container .sub-menu,
.sub-menu{
  overflow: visible !important;
  z-index: 2147483647 !important;
}

/* Hero sections must NOT trap dropdowns */
.hormHero,
.ahwHero,
.ascendnc .hero,
.ascendsc .hero{
  isolation: auto !important;
  overflow: visible !important;
  z-index: 0 !important;
}

/* ==================================================
   CARETS OFF ON DESKTOP ONLY
   CARETS ON FOR MOBILE TO ALLOW TAP OPEN
   ================================================== */
@media (min-width: 1025px){

  /* If the caret is drawn by pseudo elements on the LI */
  .site-navigation ul.menu li.menu-item-has-children::after,
  .site-navigation ul.menu li.menu-item-has-children::before,
  .site-header .site-navigation ul.menu li.menu-item-has-children::after,
  .site-header .site-navigation ul.menu li.menu-item-has-children::before{
    content: none !important;
    display: none !important;
    border: 0 !important;
    background: transparent !important;
  }

  /* If the caret is drawn by pseudo elements on the A */
  .site-navigation ul.menu li.menu-item-has-children > a::after,
  .site-navigation ul.menu li.menu-item-has-children > a::before,
  .site-header .site-navigation ul.menu li.menu-item-has-children > a::after,
  .site-header .site-navigation ul.menu li.menu-item-has-children > a::before{
    content: none !important;
    display: none !important;
    border: 0 !important;
    background: transparent !important;
  }

  /* Elementor Nav Menu widget caret element */
  .elementor-nav-menu--main .sub-arrow,
  .elementor-nav-menu--main .sub-arrow i,
  .elementor-nav-menu--main .sub-arrow svg,
  .elementor-widget-nav-menu .sub-arrow,
  .elementor-widget-nav-menu .sub-arrow i,
  .elementor-widget-nav-menu .sub-arrow svg{
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
  }

  /* Theme injected toggle button */
  .site-header .sub-menu-toggle,
  .site-header .dropdown-toggle,
  .site-header button.sub-menu-toggle,
  .site-header button.dropdown-toggle,
  .site-header .menu-toggle{
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
  }

  /* Remove any space reserved for the caret */
  .site-navigation ul.menu li.menu-item-has-children{
    padding-right: 0 !important;
    padding-inline-end: 0 !important;
  }
}

@media (max-width: 1024px){

  /* Re enable Elementor Nav Menu caret element */
  .elementor-nav-menu--main .sub-arrow,
  .elementor-widget-nav-menu .sub-arrow{
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 0 10px !important;
    padding: 6px 10px !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .elementor-nav-menu--main .sub-arrow i,
  .elementor-nav-menu--main .sub-arrow svg,
  .elementor-widget-nav-menu .sub-arrow i,
  .elementor-widget-nav-menu .sub-arrow svg{
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 14px !important;
    height: 14px !important;
    pointer-events: none !important;
  }

  /* Re enable theme injected toggle buttons if your menu uses them */
  .site-header .sub-menu-toggle,
  .site-header .dropdown-toggle,
  .site-header button.sub-menu-toggle,
  .site-header button.dropdown-toggle{
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    margin-left: 10px !important;
    padding: 6px 10px !important;
    pointer-events: auto !important;
    background: transparent !important;
    border: 0 !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Make the top level items layout correctly with a toggle on the right */
  .site-navigation ul.menu li.menu-item-has-children > a,
  .site-header nav ul.menu li.menu-item-has-children > a{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
}

/* =========================
   MENU FONT MATCH + PREMIUM HOVER
   ========================= */

.site-header .site-navigation,
.site-header .site-navigation a,
.site-header .primary-navigation a,
.site-header .main-navigation a{
  font-family: inherit !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.site-header .site-navigation a{
  font-family: inherit !important;
  font-weight: 600 !important;
}

/* Remove underline hard */
.site-header .site-navigation a,
.site-header .site-navigation a:visited,
.site-header .site-navigation a:hover,
.site-header .site-navigation a:active,
.site-header .site-navigation a:focus{
  text-decoration: none !important;
}

/* Subtle hover animation */
.site-header .site-navigation ul.menu > li > a{
  position: relative !important;
  border-radius: 999px !important;
  padding: 10px 14px !important;
  transition: transform 170ms ease, box-shadow 170ms ease, background 170ms ease, opacity 170ms ease, filter 170ms ease;
  will-change: transform;
}

.site-header .site-navigation ul.menu > li > a:hover,
.site-header .site-navigation ul.menu > li > a:focus{
  transform: translateY(-2px);
  background: rgba(203,187,163,0.14) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,0.18) !important;
  filter: brightness(1.02);
  outline: none !important;
}

/* Micro sheen sweep */
.site-header .site-navigation ul.menu > li > a::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: linear-gradient(120deg, rgba(255,255,255,0), rgba(255,255,255,0.12), rgba(255,255,255,0));
  transform: translateX(-120%);
  opacity: 0;
  pointer-events: none;
}

.site-header .site-navigation ul.menu > li > a:hover::before,
.site-header .site-navigation ul.menu > li > a:focus::before{
  opacity: 1;
  transform: translateX(120%);
  transition: transform 520ms ease, opacity 220ms ease;
}
/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .site-header .site-navigation ul.menu > li > a,
  .site-header .site-navigation ul.menu > li > a:hover,
  .site-header .site-navigation ul.menu > li > a:focus{
    transition: none !important;
    transform: none !important;
    filter: none !important;
  }
  .site-header .site-navigation ul.menu > li > a::before{
    display: none !important;
  }
}

/* Mobile submenu open state used by the footer script */
@media (max-width: 1024px){
  .elementor-nav-menu--dropdown li.menu-item-has-children > ul.sub-menu,
  .site-header li.menu-item-has-children > ul.sub-menu,
  .site-navigation li.menu-item-has-children > ul.sub-menu{
    display: none !important;
  }

  .elementor-nav-menu--dropdown li.menu-item-has-children.ahw-open > ul.sub-menu,
  .site-header li.menu-item-has-children.ahw-open > ul.sub-menu,
  .site-navigation li.menu-item-has-children.ahw-open > ul.sub-menu{
    display: block !important;
  }
}

/* Mobile header logo fit and no clipping */
@media (max-width: 768px){

  html, body{
    overflow-x: hidden !important;
  }

  .elementor-location-header,
  .site-header,
  #masthead{
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  .elementor-location-header .elementor-container,
  .elementor-location-header .e-con,
  .elementor-location-header .e-con-inner{
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

  .site-branding,
  .custom-logo-link,
  .site-logo,
  .elementor-widget-theme-site-logo,
  .elementor-widget-site-logo,
  .elementor-site-logo{
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow: visible !important;
  }

  .custom-logo-link img,
  .site-logo img,
  .custom-logo,
  .elementor-site-logo img,
  .elementor-widget-theme-site-logo img,
  .elementor-widget-site-logo img,
  .elementor-location-header .elementor-widget-image img{
    max-width: 92vw !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
  }
/* GLOBAL LINK COLOR FIX */
a,
a:visited {
  color: inherit;
  text-decoration-color: currentColor;
}

/* REMOVE RED UNDERLINE CAUSED BY THEME */
a:hover,
a:focus {
  text-decoration-color: currentColor;
}

/* ELEMENTOR FORM TEXT COLOR FIX */
.elementor-form input,
.elementor-form textarea,
.elementor-form select {
  color: #111111 !important;
}

/* PLACEHOLDER TEXT */
.elementor-form input::placeholder,
.elementor-form textarea::placeholder {
  color: #777777;
}

/* FOCUS STATES */
.elementor-form input:focus,
.elementor-form textarea:focus,
.elementor-form select:focus {
  color: #111111;
  border-color: #b4a386;
  outline: none;
}

/* FORM LABELS */
.elementor-form label {
  color: #111111;
}

/* BUTTON TEXT */
.elementor-form button,
.elementor-form button span {
  color: #ffffff;
}