/* ---------- Base ---------- */
.mega-nav {
    position: relative;
    font-family: inherit;
    font-family: "DM Sans", Sans-serif;
}

.mega-menu-root {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 20px;
}

/* top-level links */
.mega-menu-root > li {
    position: relative;
}

.mega-menu-root > li > .menu-link {
    display: inline-block;
    padding: 14px 8px;
    text-decoration: none;
    color: #000;
    font-weight: 500;
}

/* ---------- Mega panel (default hidden) ----------
   Panels will be moved to <body> on open (desktop) and
   positioned absolutely in document coordinates by JS.
---------------------------------------------- */
.mega-panel {
  position: absolute; /* JS will set top/left/width when moved to body */
  left: 0;
  width: 100%;
  padding: 28px 0;
  background: #fff;
  box-shadow: 0 40px 34px #00000008;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
  z-index: 999;
  border-top: 1px solid #e0e0e0;
}

.mega-panel-inner {
  max-width: 1450px;
  margin: 0 auto;
}

/* show when open */
.mega-panel.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

/* default fallback styling if shortcode outputs lists */
.mega-panel-inner ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mega-panel-inner li { margin-bottom: 8px; }

/* ---------- Regular dropdown (non-mega) ---------- */
.sub-menu {
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 200px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(0,0,0,.08);
    padding: 8px 0;
    list-style: none;
    margin: 0;
    display: none;
    z-index: 90;
}

.menu-item-has-children:hover > .sub-menu,
.menu-item-has-children:focus-within > .sub-menu,
.menu-item-has-children.is-open > .sub-menu {
    display: block;
}

.sub-menu li a {
    display: block;
    padding: 10px 16px;
    text-decoration: none;
    color: #222;
}

.mega-chevron {
    transition: transform 0.2s ease;
}

.mega-menu-root > li.is-open > .menu-link .mega-chevron {
    transform: rotate(180deg);
}

/* ---------- Mobile (accordion behaviour) ---------- */
@media (max-width: 1024px) {
    .mega-menu-root { display: block; }

    .mega-menu-root > li {
        border-bottom: 1px solid rgba(0,0,0,.05);
    }

    .mega-menu-root > li > .menu-link {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding: 12px 16px;
    }

    /* panels in document flow on mobile */
    .mega-panel,
    .sub-menu {
        position: static !important;
        transform: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        padding: 0 16px 16px;
        box-shadow: none;
    }

    .mega-panel-inner {
        display: block;
        grid-template-columns: none;
        padding: 12px 0;
    }

    .mega-panel { padding: 12px 0; }
}

/* Gravity Forms */
.cw-fusion-form .gform-theme--foundation .gform_fields{
    row-gap: 10px;
}

.cw-fusion-form .gform_button.button{
    background-color: transparent;
    font-family: "Raleway", Sans-serif;
    font-weight: 600;
    background-image: linear-gradient(31deg, #FBA73C 0%, #fd4a09 49%);
    border-radius: 99px 99px 99px 99px!important;
    color: #fff;
    border: none!important;
}