/* Native WordPress menu HTML compatibility. Original styles.css is unchanged. */
/* Keep the header's original flat-link layout with semantic menu lists. */
.site-nav > .dbsa-menu {
  display: flex; align-items: center; gap: 8px;
  list-style: none; margin: 0; padding: 0;
}
.dbsa-menu li { list-style: none; margin: 0; padding: 0; }
.site-nav .dbsa-menu > li { position: relative; }
.site-nav .dbsa-menu > li > a { display: block; }
.site-nav .dbsa-menu > li.menu-item-has-children > a { white-space: nowrap; }
.header-actions > .btn { white-space: nowrap; }
/* Compensate for the additional Polylang menu item on desktop without
   changing any spacing when no language dropdown was added. */
@media (min-width: 1051px) {
  .site-header:has(.pll-parent-menu-item) .header-inner { gap: 14px; }
  .site-nav:has(.pll-parent-menu-item) > .dbsa-menu { gap: 3px; }
  .site-nav:has(.pll-parent-menu-item) > .dbsa-menu > li > a { padding-inline: 7px; }
}

.site-nav .dbsa-menu > li.current-menu-item > a,
.site-nav .dbsa-menu > li.current_page_item > a,
.site-nav .dbsa-menu > li.current-menu-ancestor > a {
  color: var(--purple); background: var(--lavender);
}

/* The extra switcher can make the original 8-link header crowded at narrower
   desktop sizes. Apply these small adjustments only when it is present. */
@media (min-width: 1051px) and (max-width: 1180px) {
  .site-header:has(.pll-parent-menu-item) .brand { min-width: 200px; }
  .site-header:has(.pll-parent-menu-item) .header-inner { gap: 9px; }
  .site-nav:has(.pll-parent-menu-item) > .dbsa-menu > li > a { padding-inline: 5px; }
}

/* Child lists are real WordPress sub-menus, including Polylang's dropdown. */
.site-nav .dbsa-menu .sub-menu {
  display: none;
  position: absolute; top: 100%; left: 0; z-index: 1010;
  min-width: 145px; max-width: min(280px, 85vw);
  padding: 7px; margin: 0; list-style: none;
  background: #fff; border: 1px solid var(--line); border-radius: 13px;
  box-shadow: var(--shadow-soft);
}
.site-nav .dbsa-menu .sub-menu li { position: relative; }
.site-nav .dbsa-menu .sub-menu a {
  display: flex; align-items: center; gap: 7px;
  white-space: nowrap; border-radius: 9px; padding: 10px 12px;
}
.site-nav .dbsa-menu .sub-menu .sub-menu { top: 0; left: 100%; }
.site-nav .dbsa-menu li.menu-item-has-children:hover > .sub-menu,
.site-nav .dbsa-menu li.menu-item-has-children:focus-within > .sub-menu,
.site-nav .dbsa-menu li.menu-item-has-children.dbsa-dropdown-open > .sub-menu {
  display: block;
}
.site-nav .dbsa-menu > li:last-child > .sub-menu { left: auto; right: 0; }
.site-nav .dbsa-menu .sub-menu a:hover,
.site-nav .dbsa-menu .sub-menu li.current-lang-item > a,
.site-nav .dbsa-menu .sub-menu li.current-menu-item > a {
  color: var(--purple); background: var(--lavender);
}
/* Small caret identifies a native WordPress dropdown without adding
   a separate switcher or altering Polylang's labels/links. */
.site-nav .dbsa-menu > li.menu-item-has-children > a::after {
  content: ''; display: inline-block; width: 6px; height: 6px;
  margin-left: 9px; vertical-align: 3px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}
.site-nav .dbsa-menu .lang-item img { vertical-align: middle; max-width: none; }

/* Retain the footer's original vertically stacked links. */
.footer-links > .dbsa-menu {
  display: grid; gap: 10px; list-style: none; padding: 0; margin: 0;
}
.footer-links .dbsa-menu .sub-menu { list-style: none; padding: 5px 0 0 12px; margin: 0; }

/* The original mobile menu is a grid: keep child menus in normal flow. */
@media (max-width: 1050px) {
  .site-nav > .dbsa-menu { display: grid; align-items: stretch; gap: 0; }
  .site-nav .dbsa-menu > li > a { display: block; }
.site-nav .dbsa-menu > li.menu-item-has-children > a { white-space: nowrap; }
.header-actions > .btn { white-space: nowrap; }
/* Compensate for the additional Polylang menu item on desktop without
   changing any spacing when no language dropdown was added. */
@media (min-width: 1051px) {
  .site-header:has(.pll-parent-menu-item) .header-inner { gap: 14px; }
  .site-nav:has(.pll-parent-menu-item) > .dbsa-menu { gap: 3px; }
  .site-nav:has(.pll-parent-menu-item) > .dbsa-menu > li > a { padding-inline: 7px; }
}

  .site-nav .dbsa-menu .sub-menu,
  .site-nav .dbsa-menu .sub-menu .sub-menu {
    position: static; inset: auto; box-shadow: none; min-width: 0;
    max-width: none; margin: 2px 0 6px 12px;
    padding: 3px 0 3px 8px; border-radius: 0;
    border: 0; border-left: 2px solid var(--line);
  }
  .site-nav .dbsa-menu .sub-menu a { padding: 12px 15px; white-space: normal; }
}

.dbsa-notice { padding: 12px 15px; border-radius: 12px; margin: 12px 0; font-weight: 600; }
.dbsa-notice.success { background: #e5f7e9; color: #285e32; }
.dbsa-notice.error { background: #fff0ed; color: #922b21; }
.dbsa-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
