/* ModFarm navigation: native menus with optional images and mobile panels. */
.wp-block-modfarm-navigation-menu { position:relative; z-index:20; overflow:visible; }
.mfs-nav { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; width:100%; margin-inline:auto; padding:1.25rem 2rem; box-sizing:border-box; gap:1rem; background:var(--mf-nav-bg); color:var(--mf-nav-color); font-family:var(--mf-nav-font,var(--mf-body-font,inherit)); font-size:var(--mf-nav-font-size,16px); overflow:visible; position:relative; }
.mfs-nav *, .mfs-nav-overlay * { box-sizing:border-box; }
.mfs-nav-footer { justify-content:center; padding:1rem 2rem; }
.mfs-nav-split { flex-wrap:wrap; }
.mfs-nav-left,.mfs-nav-right { flex:1 1 0; max-width:45%; min-width:0; display:flex; flex-wrap:wrap; }
.mfs-nav-right { justify-content:flex-end; }
.mfs-nav-center { position:absolute; left:50%; transform:translateX(-50%); width:max-content; display:flex; align-items:center; justify-content:center; }
.mfs-brand { display:inline-flex; align-items:center; }
.mfs-brand__link { display:inline-flex; align-items:center; gap:var(--mfs-brand-gap,8px); color:inherit; text-decoration:none; }
.mfs-brand img,.mfs-brand .custom-logo { display:block; height:auto!important; width:auto!important; max-width:var(--mfs-brand-maxw,none); max-height:var(--mfs-brand-maxh,80px); }
.mfs-brand__text { font-weight:700; font-size:18px; line-height:1.1; }
.mfs-nav-simple .mfs-brand { margin-right:auto; }
.mfs-nav-simple.align-left { justify-content:flex-start; }
.mfs-nav-simple.align-center { justify-content:center; }
.mfs-nav-simple.align-right { justify-content:flex-end; }
.mfs-nav-menu,.mfs-nav-menu .sub-menu,.mfs-nav-menu-vertical,.mfs-nav-menu-vertical .sub-menu { list-style:none; margin:0; padding:0; }
.mfs-nav-menu { display:flex; flex-wrap:wrap; gap:.5rem; }
.mfs-nav-menu li { position:relative; }
.mfs-nav-menu a { display:flex; align-items:center; gap:var(--mfs-menu-image-gap,16px); padding:.5rem; color:inherit; text-decoration:none; font-weight:600; line-height:1.35; }
.mfs-nav-menu a:hover,.mfs-nav-menu a:focus-visible,.mfs-nav-menu-vertical a:hover { color:var(--mf-nav-hover-color,currentColor); }
.mfs-menu-copy { display:block; min-width:0; overflow-wrap:anywhere; }
.mfs-menu-label { display:block; }
.mfs-menu-description { display:block; margin-top:.25rem; font-size:.85em; font-weight:400; line-height:1.45; }
.mfs-nav .mfs-menu-image { display:block; flex:none; width:var(--mfs-menu-cover-width,56px); max-width:100%; height:auto; object-fit:contain; }
.mfs-nav .menu-icon > a > .mfs-menu-image,.mfs-nav-overlay .menu-icon > a > .mfs-menu-image { width:var(--mfs-menu-icon-size,24px); height:var(--mfs-menu-icon-size,24px); object-fit:contain; flex:none; }
.mfs-submenu-toggle { display:none; }
.mfs-nav[data-mfs-ready] .mfs-submenu-toggle { display:inline-flex; }
.mfs-nav-menu .menu-item-has-children > a { padding-right:44px; }
.mfs-submenu-toggle { position:absolute; top:0; right:0; width:44px; min-height:44px; padding:0; align-items:center; justify-content:center; border:0; border-radius:0; background:transparent; color:inherit; cursor:pointer; font:inherit; }
.mfs-submenu-toggle span { width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .15s ease; }
.mfs-submenu-toggle[aria-expanded=true] span { transform:rotate(225deg); }
.mfs-nav a:focus-visible,.mfs-nav button:focus-visible,.mfs-nav-overlay a:focus-visible,.mfs-nav-overlay button:focus-visible { outline:2px solid currentColor; outline-offset:-2px; }
.mfs-nav-menu .sub-menu { display:none; position:absolute; top:100%; left:0; width:var(--mfs-menu-dropdown-width,320px); max-width:calc(100vw - 32px); background:var(--submenu-bg,#fff); color:var(--submenu-color,#222); box-shadow:0 4px 14px #0002; z-index:1001; padding:.4rem 0; }
.mfs-nav-menu .sub-menu .sub-menu { top:0; left:100%; }
.mfs-nav-menu .sub-menu a { padding:.65rem 1rem; white-space:normal; }
.mfs-nav-menu .sub-menu .menu-item-has-children > a { padding-right:44px; }
.mfs-nav-menu li.open > .sub-menu { display:block; }
.mfs-nav:not([data-mfs-ready]) .mfs-nav-menu li:hover > .sub-menu,.mfs-nav:not([data-mfs-ready]) .mfs-nav-menu li:focus-within > .sub-menu { display:block; }
.mfs-nav-menu > li.submenu-align-right > .sub-menu { left:auto; right:0; }
.mfs-nav-menu .sub-menu li.submenu-align-right > .sub-menu { left:auto; right:100%; }
.nav-padding-compact { padding:.5rem 1rem; }
.nav-padding-regular { padding:1.25rem 2rem; }
.nav-padding-spacious { padding:2rem 3rem; }
.nav-transparent { background:transparent!important; border:0; }
.mfs-nav-toggle { display:none; }
.mfs-nav-toggle-label { font-size:1rem; margin-left:.5rem; }
/* Panels share row styling regardless of their presentation. */
.mfs-nav-overlay { display:none; position:fixed; inset:0; z-index:100000; background:#0006; color:var(--mfs-mobile-color,var(--submenu-color,#222)); font-family:var(--mf-nav-font,inherit); font-size:var(--mf-nav-font-size,16px); }
.mfs-nav-overlay[hidden] { display:none!important; }
.mfs-nav-overlay.active { display:flex; justify-content:flex-end; }
.mfs-nav-panel { width:100%; height:100%; overflow-y:auto; overscroll-behavior:contain; background:var(--mfs-mobile-bg,var(--submenu-bg,#fff)); color:var(--mfs-mobile-color,var(--submenu-color,#222)); padding:1rem 1.25rem; }
.admin-bar .mfs-nav-overlay:not([hidden]) { top:var(--wp-admin--admin-bar--height,32px); }
.mfs-nav-panel-header { display:flex; align-items:center; justify-content:space-between; min-height:48px; margin-bottom:.75rem; font-weight:700; }
.mfs-nav-close { position:static; display:inline-flex; justify-content:center; align-items:center; width:44px; height:44px; padding:0; border:0; background:none; color:inherit; font-size:2rem; cursor:pointer; }
.mfs-nav-menu-vertical { display:block; width:100%; }
.mfs-nav-menu-vertical + .mfs-nav-menu-vertical { border-top:1px solid currentColor; margin-top:.75rem; padding-top:.75rem; }
.mfs-nav-menu-vertical li { position:relative; width:100%; text-align:left; }
.mfs-nav-menu-vertical a { display:flex; align-items:center; justify-content:flex-start; gap:var(--mfs-menu-image-gap,16px); min-height:48px; padding:.7rem .25rem; color:inherit; font-size:1em; font-weight:600; line-height:1.35; text-decoration:none; }
.mfs-nav-menu-vertical .menu-item-has-children > a { padding-right:48px; }
.mfs-nav-overlay .mfs-submenu-toggle { display:inline-flex; min-height:48px; }
.mfs-nav-menu-vertical .sub-menu { display:none; position:static; width:auto; max-height:none; padding:0 0 .5rem 1rem; margin:0; border:0; box-shadow:none; }
.mfs-nav-menu-vertical li.open > .sub-menu { display:block; }
.mfs-nav-menu-vertical .sub-menu a { font-weight:400; font-size:.95em; }
.mfs-nav-overlay .menu-cover > a > .mfs-menu-image { display:none; }
.mfs-mobile-drawer .mfs-nav-panel { animation:mfs-drawer-in .2s ease-out; }
.mfs-mobile-left { justify-content:flex-start!important; }
.mfs-mobile-left .mfs-nav-panel { animation-name:mfs-drawer-in-left; }
@keyframes mfs-drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
@keyframes mfs-drawer-in-left { from { transform:translateX(-100%); } to { transform:translateX(0); } }
@media (min-width:600px) { .mfs-mobile-drawer .mfs-nav-panel { width:max(320px,50vw); } }
@media (min-width:900px) { .mfs-mobile-drawer .mfs-nav-panel { width:max(320px,35vw); } }
@media (max-width:1024px) {
  .mfs-nav { width:100%; max-width:100%; padding:1rem; }
  .mfs-nav:not(.mfs-nav--no-collapse)[data-mfs-ready] > .mfs-nav-menu,
  .mfs-nav:not(.mfs-nav--no-collapse)[data-mfs-ready] > .mfs-nav-left,
  .mfs-nav:not(.mfs-nav--no-collapse)[data-mfs-ready] > .mfs-nav-right { display:none; }
  .mfs-nav[data-mfs-ready] .mfs-nav-toggle { display:inline-flex; align-items:center; margin-left:auto; min-height:44px; padding:.5rem; border:0; background:none; color:inherit; font-size:1.5rem; cursor:pointer; }
  .mfs-nav .mfs-nav-center { position:static; transform:none; width:auto; margin-right:auto; }
  .mfs-nav--no-collapse .mfs-nav-toggle { display:none!important; }
  .mfs-nav--no-collapse .mfs-nav-menu { justify-content:inherit; }
  .mfs-nav .menu-cover > a > .mfs-menu-image { display:none; }
  .mfs-nav--below .mfs-nav-overlay { position:static; flex:0 0 100%; order:10; height:auto; background:none; }
  .mfs-nav--below .mfs-nav-panel { height:auto; padding:0; }
  .mfs-nav--below .mfs-nav-panel-header { display:none; }
  .mfs-nav--drawer-left .mfs-nav-toggle { order:-1; margin-left:0; margin-right:auto; }
  .mfs-nav--drawer-left .mfs-brand { margin-left:auto; margin-right:0; }
}
@media (max-width:782px) { .admin-bar .mfs-nav-overlay:not([hidden]) { top:var(--wp-admin--admin-bar--height,46px); } }
@media (prefers-reduced-motion:reduce) { .mfs-nav-panel,.mfs-submenu-toggle span { animation:none!important; transition:none!important; } }

/* Icon-only links retain their accessible name, and recover text if media is missing. */
.mfs-menu-copy--hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
/* Desktop hover menus have no visible chevrons; keyboard controls remain available. */
@media (min-width:1025px) and (hover:hover) and (pointer:fine) {
  .mfs-nav-menu .menu-item-has-children > a { padding-right:.5rem; }
  .mfs-nav-menu .sub-menu .menu-item-has-children > a { padding-right:1rem; }
  .mfs-nav-menu .mfs-submenu-toggle:not(:focus-visible) { width:1px; min-height:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .mfs-nav-menu .mfs-submenu-toggle span { display:none; }
  .mfs-nav-menu .mfs-submenu-toggle:focus-visible { background:var(--submenu-bg,#fff); color:var(--submenu-color,#222); }
  .mfs-nav-menu .mfs-submenu-toggle:focus-visible::after { content:'Menu'; font-size:11px; }
}
/* Native search: compact bar toggle, and a full field inside mobile panels. */
.mfs-nav-search { flex:0 0 auto; }
.mfs-nav-search summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; list-style:none; border-radius:4px; }
.mfs-nav-search summary::-webkit-details-marker { display:none; }
.mfs-nav-search summary:focus-visible { outline:2px solid currentColor; outline-offset:-2px; }
.mfs-nav-search-popover { position:absolute; right:1rem; top:100%; width:320px; max-width:calc(100vw - 32px); padding:1rem; background:var(--submenu-bg,#fff); color:var(--submenu-color,#222); box-shadow:0 4px 14px #0002; z-index:1002; }
.mfs-nav-search-form { display:block; margin:0 0 1rem; width:100%; }
.mfs-nav-search-popover .mfs-nav-search-form { margin:0; }
.mfs-search-label { display:block; margin-bottom:.4rem; font-size:.875rem; font-weight:600; }
.mfs-search-fields { display:flex; gap:.5rem; }
.mfs-search-fields input { flex:1 1 auto; width:0; min-width:0; min-height:44px; border:1px solid currentColor; border-radius:4px; padding:.5rem .65rem; background:transparent; color:inherit; font:inherit; font-size:16px; }
.mfs-search-fields input::placeholder { color:inherit; opacity:.7; }
.mfs-search-fields button { flex:none; min-height:44px; border:1px solid currentColor; border-radius:4px; padding:.5rem .7rem; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.mfs-search-fields input:focus-visible,.mfs-search-fields button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
@media(max-width:1024px) {
  .mfs-nav-search-popover { background:var(--mfs-mobile-bg,var(--submenu-bg,#fff)); color:var(--mfs-mobile-color,var(--submenu-color,#222)); }
}
