/*
 * Site header (template-parts/site-header.php).
 * Desktop, 1025px and up: logo, mega menu, search and side-panel buttons.
 * Phone and tablet: logo, search button and a menu button that drops the
 * menu list down over the page.
 * The header is sticky, so it takes its own space in the flow and nothing
 * moves when the menus open (they are positioned over the page).
 */
.yb-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--yb-color-white);
}

.admin-bar .yb-header {
  top: var(--wp-admin--admin-bar--height, 0px);
}

.yb-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--yb-space-m);
  min-height: var(--yb-header-height);
}

.yb-header__logo {
  flex: none;
  display: block;
  width: var(--yb-logo-width);
}

.yb-header__logo img {
  display: block;
  width: 100%;
  opacity: 0.88;
}

.yb-header__actions {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: flex-end;
  gap: var(--yb-space-m);
  width: 150px;
}

.yb-header__button {
  display: inline-grid;
  place-items: center;
  width: var(--yb-icon-button);
  height: var(--yb-icon-button);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--yb-color-surface);
  color: var(--yb-color-primary);
  transition: background-color 0.2s, color 0.2s;
}

.yb-header__button .yb-svg {
  width: 20px;
  height: 20px;
}

.yb-header__button:hover {
  background: var(--yb-color-primary);
  color: var(--yb-color-accent);
}

.yb-header__button--panel,
.yb-header__button--menu {
  background: var(--yb-color-primary);
  color: var(--yb-color-surface);
}

.yb-header__button--panel:hover,
.yb-header__button--menu:hover {
  background: var(--yb-color-primary);
  color: var(--yb-color-accent);
}

.yb-header__button--menu,
.yb-header__menu-close {
  display: none;
}

/* Desktop mega menu ------------------------------------------------------ */
.yb-nav__list {
  display: flex;
  align-items: center;
  gap: var(--yb-space-s);
  margin: 0;
  padding: 0;
  list-style: none;
}

.yb-nav__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 30px;
  font-size: var(--yb-size-menu);
  font-weight: var(--yb-weight-medium);
  line-height: var(--yb-leading-tight);
  letter-spacing: var(--yb-tracking-menu);
  transition: background-color 0.2s;
}

.yb-nav__item:hover,
.yb-nav__item.is-current,
.yb-nav__item.is-open {
  background: var(--yb-color-surface);
}

.yb-nav__link {
  color: var(--yb-color-primary);
}

.yb-nav__toggle {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin: -5px -5px -5px 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--yb-color-primary);
}

.yb-nav__toggle .yb-svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s;
}

.yb-nav__item:hover .yb-nav__toggle .yb-svg,
.yb-nav__item.is-open .yb-nav__toggle .yb-svg {
  transform: rotate(180deg);
}

.yb-nav__panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  display: none;
  width: 365px;
  padding-top: 4px; /* hover bridge between the item and the panel */
  background-clip: content-box;
}

.yb-nav__item:hover > .yb-nav__panel,
.yb-nav__item.is-open > .yb-nav__panel {
  display: block;
}

.yb-nav__panel-links,
.yb-nav__panel-button {
  background: var(--yb-color-surface);
}

.yb-nav__panel-links {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--yb-color-border);
  border-bottom: 0;
  border-radius: var(--yb-radius-panel) var(--yb-radius-panel) 0 0;
  overflow: hidden;
}

.yb-nav__panel-links:last-child {
  border-bottom: 1px solid var(--yb-color-border);
  border-radius: var(--yb-radius-panel);
}

.yb-nav__panel-links a {
  display: block;
  padding: 15px 60px 15px 20px;
  color: var(--yb-color-primary);
  font-size: var(--yb-size-menu);
  font-weight: var(--yb-weight-medium);
  line-height: var(--yb-leading-tight);
  letter-spacing: var(--yb-tracking-menu);
  transition: background-color 0.2s;
}

.yb-nav__panel-links a:hover,
.yb-nav__panel-links a:focus-visible {
  background: var(--yb-color-accent);
}

.yb-nav__panel-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 20px;
  border: 1px solid var(--yb-color-border);
  border-top: 0;
  border-radius: 0 0 var(--yb-radius-panel) var(--yb-radius-panel);
  background: var(--yb-color-accent);
  color: var(--yb-color-primary);
  font-size: var(--yb-size-body-s);
  font-weight: var(--yb-weight-medium);
  line-height: 1.1;
}

.yb-nav__panel-button-icon {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--yb-color-primary);
  color: var(--yb-color-accent);
}

.yb-nav__panel-button-icon .yb-svg {
  width: 12px;
  height: 12px;
}

/* Phone and tablet menu --------------------------------------------------- */
.yb-mobile-menu {
  display: none;
}

@media (max-width: 1024px) {
  .yb-nav,
  .yb-header__button--panel {
    display: none;
  }

  .yb-header__bar {
    padding-block: 10px;
  }

  .yb-header__actions {
    gap: 11px;
    width: auto;
  }

  .yb-header__button--menu {
    display: inline-grid;
  }

  .yb-header.is-menu-open .yb-header__menu-open {
    display: none;
  }

  .yb-header.is-menu-open .yb-header__menu-close {
    display: block;
  }

  .yb-header.is-menu-open .yb-header__button--menu {
    color: var(--yb-color-accent);
  }

  .yb-header.is-menu-open .yb-mobile-menu {
    display: block;
  }

  .yb-mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100vh - var(--yb-header-height));
    overflow-y: auto;
    background: var(--yb-color-surface);
    box-shadow: var(--yb-shadow-dropdown);
  }

  .yb-mobile-menu__list,
  .yb-mobile-menu__sub {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .yb-mobile-menu__sub {
    display: none;
  }

  .yb-mobile-menu__item.is-open > .yb-mobile-menu__sub {
    display: block;
  }

  .yb-mobile-menu__link {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    padding: 12px var(--yb-gutter);
    border: 0;
    background: none;
    color: var(--yb-color-primary);
    font-size: var(--yb-size-menu);
    font-weight: var(--yb-weight-medium);
    line-height: var(--yb-leading-tight);
    letter-spacing: var(--yb-tracking-menu);
    text-align: left;
  }

  .yb-mobile-menu__sub .yb-mobile-menu__link {
    padding-left: calc(2 * var(--yb-gutter));
  }

  .yb-mobile-menu__link:hover,
  .yb-mobile-menu__link.is-current {
    background: var(--yb-color-accent);
    color: var(--yb-color-primary);
  }

  .yb-mobile-menu__caret {
    width: 0;
    height: 0;
    border-top: 5px solid currentColor;
    border-inline: 5px solid transparent;
    transition: transform 0.2s;
  }

  .yb-mobile-menu__item.is-open .yb-mobile-menu__caret {
    transform: rotate(180deg);
  }
}
