:root{
  --dfx-bg: rgba(255,255,255,0.98);
  --dfx-toggle: #111;
  --dfx-label: #111;
  --dfx-link-l1: #111;
  --dfx-link-l2: #333;
  --dfx-blur: blur(6px);
  --dfx-toggle-font: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --dfx-toggle-size: 16px;
  --dfx-menu-font: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --dfx-font-min: 22px; --dfx-font-vw: 3.2vw; --dfx-font-max: 44px;
  --dfx-auto-z: 100000;
  --dfx-auto-top: 12px; --dfx-auto-right: 12px; --dfx-auto-bottom: 12px; --dfx-auto-left: 12px;
  --dfx-toggle-bg: rgba(255,255,255,0);
  --dfx-toggle-radius: 10px;
}

/* Auto wrapper */
.dfxom-auto-wrap{ position:fixed; z-index: var(--dfx-auto-z, 100000); }
.dfxom-auto-wrap[data-dfxom-pos="top_right"]{ top: var(--dfx-auto-top, 12px); right: var(--dfx-auto-right, 12px); }
.dfxom-auto-wrap[data-dfxom-pos="top_left"]{ top: var(--dfx-auto-top, 12px); left: var(--dfx-auto-left, 12px); }
.dfxom-auto-wrap[data-dfxom-pos="bottom_right"]{ bottom: var(--dfx-auto-bottom, 12px); right: var(--dfx-auto-right, 12px); }
.dfxom-auto-wrap[data-dfxom-pos="bottom_left"]{ bottom: var(--dfx-auto-bottom, 12px); left: var(--dfx-auto-left, 12px); }

/* Visibility */
.dfxom-auto-wrap[data-dfxom-show="mobile"]{ display:none; }
.dfxom-auto-wrap[data-dfxom-show="tablet"]{ display:none; }
.dfxom-auto-wrap[data-dfxom-show="mobile_tablet"]{ display:block; }
.dfxom-auto-wrap[data-dfxom-show="all"]{ display:block; }
@media (max-width: 767px){ .dfxom-auto-wrap[data-dfxom-show="mobile"]{ display:block; } .dfxom-auto-wrap[data-dfxom-show="tablet"]{ display:none; } }
@media (min-width: 768px) and (max-width: 980px){ .dfxom-auto-wrap[data-dfxom-show="mobile"]{ display:none; } .dfxom-auto-wrap[data-dfxom-show="tablet"]{ display:block; } }
@media (min-width: 981px){ .dfxom-auto-wrap[data-dfxom-show="mobile"], .dfxom-auto-wrap[data-dfxom-show="tablet"], .dfxom-auto-wrap[data-dfxom-show="mobile_tablet"]{ display:none; } }

/* Button */
.dfxom-toggle{
  display:inline-flex;align-items:center;gap:.5rem;
  background: var(--dfx-toggle-bg);
  border:0;cursor:pointer;
  font:600 var(--dfx-toggle-size)/1.2 var(--dfx-toggle-font);
  padding:.45rem .55rem;
  border-radius: var(--dfx-toggle-radius);
  -webkit-tap-highlight-color: transparent;
}

/* Stronger burger */
.dfxom-burger{ position:relative;width:26px;height:3px;background:var(--dfx-toggle);display:inline-block; }
.dfxom-burger::before,.dfxom-burger::after{
  content:"";position:absolute;left:0;width:26px;height:3px;background:var(--dfx-toggle);
  transition:transform .25s ease,opacity .25s ease;
}
.dfxom-burger::before{ top:-8px; } .dfxom-burger::after{ top:8px; }
.dfxom-toggle[aria-expanded="true"] .dfxom-burger{ background:transparent; }
.dfxom-toggle[aria-expanded="true"] .dfxom-burger::before{ transform:translateY(8px) rotate(45deg); }
.dfxom-toggle[aria-expanded="true"] .dfxom-burger::after{ transform:translateY(-8px) rotate(-45deg); }
.dfxom-label{ color:var(--dfx-label); }

@media (max-width: 767px){
  body.dfxom-hide-label-mobile .dfxom-label{ display:none; }
  body.dfxom-hide-label-mobile .dfxom-toggle{ gap:0; padding:.45rem; }
}

/* Overlay */
.dfxom-overlay{
  position:fixed;inset:0;background:var(--dfx-bg);z-index:999999;
  display:flex;align-items:center;justify-content:center;padding:48px 20px;
  backdrop-filter: var(--dfx-blur);
}
.dfxom-overlay[hidden]{ display:none !important; }
.dfxom-nav{ text-align:center; max-width: 92vw; }
.dfxom-menu{ list-style:none;margin:0;padding:0; }
.dfxom-menu > li{ margin:.45em 0; }
.dfxom-menu > li > a{
  display:inline-block;text-decoration:none;color:var(--dfx-link-l1);
  font-family: var(--dfx-menu-font);
  font-weight:800;
  font-size: clamp(var(--dfx-font-min), var(--dfx-font-vw), var(--dfx-font-max));
  line-height:1.2;
}
.dfxom-menu li ul{ list-style:none;margin:.4em 0 0;padding:0; }
.dfxom-menu li ul li a{
  display:inline-block;margin:.2em .6em;color:var(--dfx-link-l2);
  text-decoration:none;font-weight:600;font-family: var(--dfx-menu-font);
  font-size:clamp(14px,1.6vw,18px);
}
html.dfxom-lock, body.dfxom-lock{ overflow:hidden; }


/* Close button (X) inside overlay */
.dfxom-close{
  position:fixed;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 1000001;
  -webkit-tap-highlight-color: transparent;
}
.dfxom-close::before,
.dfxom-close::after{
  content:"";
  position:absolute;
  left: 50%;
  top: 50%;
  width: 26px;
  height: 3px;
  background: var(--dfx-link-l1);
  transform-origin: center;
}
.dfxom-close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.dfxom-close::after{ transform: translate(-50%,-50%) rotate(-45deg); }


/* =========================
   FX: Split open/close (Style C)
   - Two panels slide in from left/right
   - Nav + items fade/slide with stagger
   ========================= */
.dfxom-overlay{
  opacity: 0;
  transition: opacity .35s ease;
  will-change: opacity;
}

/* Panels */
.dfxom-overlay::before,
.dfxom-overlay::after{
  content:"";
  position: fixed;
  top: 0;
  bottom: 0;
  width: 50vw;
  background: var(--dfx-bg);
  backdrop-filter: var(--dfx-blur);
  will-change: transform;
  transition: transform .55s cubic-bezier(.2,.95,.2,1);
  z-index: 0;
}
.dfxom-overlay::before{ left: 0; transform: translateX(-102%); }
.dfxom-overlay::after{ right: 0; transform: translateX(102%); }

/* Keep nav & close above panels */
.dfxom-overlay .dfxom-close{ z-index: 2; }
.dfxom-overlay .dfxom-nav{ position: relative; z-index: 1; }

/* Open/close states */
.dfxom-overlay.is-open{ opacity: 1; }
.dfxom-overlay.is-open::before{ transform: translateX(0); }
.dfxom-overlay.is-open::after{ transform: translateX(0); }

.dfxom-overlay.is-closing{ opacity: 0; }
.dfxom-overlay.is-closing::before{ transform: translateX(-102%); }
.dfxom-overlay.is-closing::after{ transform: translateX(102%); }

/* Nav entrance */
.dfxom-overlay .dfxom-nav{
  opacity: 0;
  transform: translateY(14px) scale(.985);
  transition: opacity .30s ease .20s, transform .40s cubic-bezier(.2,.9,.2,1) .20s;
  will-change: opacity, transform;
}
.dfxom-overlay.is-open .dfxom-nav{
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Menu items stagger (CSS-only, up to 12 items) */
.dfxom-overlay .dfxom-menu > li{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .35s ease, transform .35s ease;
  will-change: opacity, transform;
}
.dfxom-overlay.is-open .dfxom-menu > li{
  opacity: 1;
  transform: translateY(0);
}
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(1){ transition-delay:.22s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(2){ transition-delay:.26s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(3){ transition-delay:.30s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(4){ transition-delay:.34s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(5){ transition-delay:.38s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(6){ transition-delay:.42s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(7){ transition-delay:.46s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(8){ transition-delay:.50s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(9){ transition-delay:.54s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(10){ transition-delay:.58s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(11){ transition-delay:.62s; }
.dfxom-overlay.is-open .dfxom-menu > li:nth-child(12){ transition-delay:.66s; }

@media (prefers-reduced-motion: reduce){
  .dfxom-overlay,
  .dfxom-overlay::before,
  .dfxom-overlay::after,
  .dfxom-overlay .dfxom-nav,
  .dfxom-overlay .dfxom-menu > li{
    transition: none !important;
    transform: none !important;
  }
}


/* =========================
   FX Accordion Submenus v1.4.1
   ========================= */
.dfxom-menu .sub-menu{
  overflow:hidden;
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  transition:max-height .42s cubic-bezier(.2,.85,.2,1), opacity .25s ease, transform .25s ease;
  margin-top:0 !important;
  padding-top:0 !important;
}
.dfxom-menu li.dfxom-submenu-open > .sub-menu{
  max-height:700px;
  opacity:1;
  transform:translateY(0);
  margin-top:.35em !important;
}
.dfxom-menu li.menu-item-has-children > a,
.dfxom-menu li.menu-item-has-children > button.dfxom-parent-toggle{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:.45em;
  cursor:pointer;
}
.dfxom-menu button.dfxom-parent-toggle{
  border:0;
  background:transparent;
  color:var(--dfx-link-l1);
  font-family:var(--dfx-menu-font);
  font-weight:800;
  font-size:clamp(var(--dfx-font-min), var(--dfx-font-vw), var(--dfx-font-max));
  line-height:1.2;
  padding:0;
  text-align:center;
}
.dfxom-menu li.menu-item-has-children > a::after,
.dfxom-menu li.menu-item-has-children > button.dfxom-parent-toggle::after{
  content:"";
  width:.36em;
  height:.36em;
  border-right:.12em solid currentColor;
  border-bottom:.12em solid currentColor;
  transform:rotate(45deg) translateY(-.08em);
  transition:transform .25s ease;
  opacity:.9;
}
.dfxom-menu li.dfxom-submenu-open > a::after,
.dfxom-menu li.dfxom-submenu-open > button.dfxom-parent-toggle::after{
  transform:rotate(-135deg) translateY(-.02em);
}
.dfxom-menu .sub-menu li{ margin:.15em 0; }
.dfxom-menu .sub-menu li a{ opacity:.92; }
@media (max-width:767px){
  .dfxom-menu > li{ margin:.32em 0; }
  .dfxom-menu .sub-menu li a{ font-size:clamp(14px,3.7vw,17px); line-height:1.25; }
}
@media (prefers-reduced-motion:reduce){
  .dfxom-menu .sub-menu{ transition:none !important; transform:none !important; }
}
