/**
 * Bongoto WooCommerce — Header CSS (FINAL)
 * Text Domain: bongoto-woocommerce
 * ----------------------------------
 * - Desktop: horizontal layout, dropdowns (multi-level)
 * - Mobile : compact header + search below
 * - Drawer : smooth scrolling + accordion (no auto-close)
 * - A11y   : focus-visible, large targets
 */

/* -------------------- Variables -------------------- */
:root {
  --bt-head-h: 40px;
  --bt-r: 10px;
  --bt-b: #e5e7eb;

  /* Header background stays white, not tied to body color */
  --bt-bg: #ffffff;

  /* Header text can still follow global text color */
  --bt-fg: var(--bt-color-text, #0f172a);

  --bt-soft: #f3f4f6;
  --bt-accent: var(--bt-color-primary, #2563eb);
  --bt-accent-d: #1d4ed8;

  /* drawer offset (JS auto-updates) */
  --drawer-offset: 64px;
}

/* -------------------- Header Base -------------------- */
.bt-header {
  background: var(--bt-bg);
  border-bottom: 1px solid var(--bt-b);
  overflow: visible;
}
.bt-header--sticky {
  position: sticky;
  top: 0;
  z-index: 999;
  background: var(--bt-bg);
  border-bottom: 1px solid var(--bt-b);
  box-shadow: 0 2px 4px rgba(0,0,0,.05);
  transition: box-shadow .2s ease;
}
.bt-header-scrolled { box-shadow: 0 6px 20px rgba(0,0,0,.06); }

.bt-header-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: .75rem 0;
  overflow: visible;
}

/* Desktop layout */
@media (min-width: 769px) {
  .bt-header-inner { flex-wrap: nowrap; }
  .bt-header-left { flex: 0 0 auto; }
  .bt-primary-menu { display: block; flex: 1 1 auto; }
  .bt-header-right { flex: 0 0 auto; }
}

/* Left / Right blocks */
.bt-header-left,
.bt-header-right {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: nowrap;
}
.bt-logo__img { max-height: 48px; }
@media (max-width: 768px) { .bt-logo__img { max-height: 40px; } }

/* -------------------- Primary Menu -------------------- */
.bt-primary-menu {
  position: relative;
  overflow: visible;
}
.bt-primary-menu .bt-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 20px;
}
.bt-primary-menu .bt-menu-list > li {
  position: relative;
}
.bt-primary-menu a {
  display: inline-flex;
  align-items: center;
  padding: 10px 8px;
  border-radius: 8px;
  font-weight: 500;
  color: var(--bt-fg);
  text-decoration: none;
  transition: color .15s, background .15s;
}
.bt-primary-menu a:hover,
.bt-primary-menu a:focus-visible { color: var(--bt-accent); outline: none; }

/* Caret for parent items (desktop) */
.bt-primary-menu .menu-item-has-children > a {
  position: relative;
  padding-right: 22px;
}
.bt-primary-menu .menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-35%);
  width: 0; height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid currentColor;
  opacity: .75;
  pointer-events: none;
}

/* Dropdown (desktop) */
.bt-primary-menu .sub-menu {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  min-width: 220px;
  background: var(--bt-bg);
  border: 1px solid var(--bt-b);
  border-radius: 10px;
  padding: 8px;
  list-style: none;
  display: none;
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
  z-index: 1200;
}
.bt-primary-menu .sub-menu .menu-item { position: relative; }

/* 2nd-level right offset */
.bt-primary-menu .sub-menu .sub-menu{
  top: -8px;
  left: calc(100% - 6px);
}
.bt-primary-menu .sub-menu a {
  display: block;
  padding: 9px 10px;
  border-radius: 8px;
  color: var(--bt-fg);
}
.bt-primary-menu .sub-menu a:hover,
.bt-primary-menu .sub-menu a:focus-visible {
  background: var(--bt-soft);
  color: var(--bt-fg);
  outline: none;
}
.bt-primary-menu li:hover > .sub-menu,
.bt-primary-menu li:focus-within > .sub-menu {
  display: block;
}

/* -------------------- Buttons & CTA -------------------- */
.bt-icon-btn {
  width: var(--bt-head-h);
  height: var(--bt-head-h);
  border-radius: var(--bt-r);
  background: var(--bt-soft);
  display: inline-grid;
  place-items: center;
  color: var(--bt-fg);
  text-decoration: none;
  transition: background .2s ease;
}
.bt-icon-btn:hover { background: #e5e7eb; }

/* CTA (Upload / Start Selling) */
.bt-cta-btn,
.start-selling-btn,
.upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bt-accent);
  color: #fff;
  font-weight: 600;
  padding: 4px 10px;
  font-size: 13px;
  border-radius: 6px;
  text-decoration: none;
  transition: all .2s ease;
  line-height: 1.3;
}
.bt-cta-btn:hover,
.start-selling-btn:hover,
.upload-btn:hover {
  background: var(--bt-accent-d);
  transform: translateY(-1px);
}
.bt-cta-btn:active,
.start-selling-btn:active,
.upload-btn:active { transform: scale(.97); }

@media (max-width: 768px) {
  .bt-cta-btn,
  .start-selling-btn,
  .upload-btn {
    padding: 4px 9px;
    font-size: 12.5px;
  }
}

/* -------------------- Search -------------------- */
.bt-header-search {
  display: flex;
  align-items: center;
  gap: .4rem;
}
.bt-header-search input[type="search"] {
  height: var(--bt-head-h);
  padding: 0 .75rem;
  border: 1px solid var(--bt-b);
  border-radius: var(--bt-r);
  flex: 1;
}
.bt-search-submit {
  width: var(--bt-head-h);
  height: var(--bt-head-h);
  border-radius: var(--bt-r);
  display: grid;
  place-items: center;
  background: var(--bt-accent);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background .2s ease;
}
.bt-search-submit:hover { background: var(--bt-accent-d); }

/* -------------------- Mobile Layout -------------------- */
.bt-menu-toggle {
  display: none;
  width: 36px;
  height: 36px;
  border: 0;
  background: transparent;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.bt-menu-toggle:hover { background: var(--bt-soft); }

@media (max-width: 768px) {
  .bt-menu-toggle { display: flex; }
  .bt-primary-menu { display: none !important; }
  .bt-header-center .bt-header-search { display: none !important; }
}

/* -------------------- Drawer -------------------- */
.bt-drawer {
  display: none;
  position: fixed;
  inset: 0 auto 0 0;
  width: 82vw;
  max-width: 320px;
  background: var(--bt-bg);
  box-shadow: 8px 0 24px rgba(0,0,0,.12);
  transform: translateX(-100%);
  transition: transform .25s ease;
  z-index: 1000;
}
.bt-drawer.is-open { transform: translateX(0); }
.bt-drawer-inner {
  height: 100%;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;

  /* Smooth scrolling properties */
  overflow-y: auto;
  max-height: calc(100vh - var(--drawer-offset));
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
}
.bt-drawer-title { margin: .25rem 0 1rem; }
.bt-drawer-menu { list-style: none; margin: 0; padding: 0; }
.bt-drawer-menu li { position: relative; }
.bt-drawer-menu a {
  display: block;
  padding: 10px 0;
  text-decoration: none;
  color: var(--bt-fg);
}
.bt-drawer-footer {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--bt-b);
}
.bt-drawer-close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: transparent;
  border: none;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  color: var(--bt-fg);
  border-radius: 8px;
  transition: background .2s ease, transform .15s ease;
}
.bt-drawer-close:hover { background: var(--bt-soft); transform: rotate(90deg); }
@media (max-width: 768px) { .bt-drawer { display: block; } }
@media (min-width: 769px) { .bt-drawer { display: none !important; } }

/* Drawer accordion (multi-level) */
.bt-drawer .sub-menu,
.bt-drawer ul.children{
  display: none;
  margin: 6px 0 0;
  padding-left: 14px;
  border-left: 1px solid #e5e7eb;
}
.bt-drawer .menu-item.is-open > .sub-menu,
.bt-drawer .menu-item.is-open > ul.children{
  display: block;
}

/* Deeper levels */
.bt-drawer .sub-menu .sub-menu,
.bt-drawer ul.children .children{
  margin-left: 10px;
  border-left: 1px solid #eef2f7;
}

/* Caret for parents (drawer) */
.bt-drawer .menu-item-has-children > a{
  position: relative;
  padding-right: 22px;
}
.bt-drawer .menu-item-has-children > a::after{
  content: "▸";
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  opacity: .85;
  font-size: 15px;
  line-height: 1;
  transition: transform .15s ease, opacity .15s ease;
}
.bt-drawer .menu-item.is-open > a::after{
  transform: translateY(-50%) rotate(90deg);
  opacity: 1;
}

/* Scrollbars (optional, webkit) */
.bt-drawer-inner::-webkit-scrollbar { width: 8px }
.bt-drawer-inner::-webkit-scrollbar-thumb { background: rgba(0,0,0,.2); border-radius: 8px }

/* -------------------- Mobile Search (below header) -------------------- */
.bt-header-search--mobile {
  display: none;
  padding: .6rem 1rem;
  border-top: 1px solid var(--bt-b);
  background: var(--bt-bg);
}
.bt-header-search--mobile .search-form {
  display: flex;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
.bt-header-search--mobile .search-field {
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--bt-b);
  width: 90%;
  max-width: 350px;
  padding: 0 .75rem;
}
.bt-header-search--mobile .search-submit {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--bt-accent);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background .2s ease;
}
.bt-header-search--mobile .search-submit:hover { background: var(--bt-accent-d); }
@media (max-width: 768px) { .bt-header-search--mobile { display: block; } }
@media (min-width: 769px) { .bt-header-search--mobile { display: none !important; } }

/* -------------------- Misc Adjustments -------------------- */
.bt-header-right {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-left: auto;
  flex-wrap: nowrap;
}
@media (max-width: 768px) {
  .bt-header-inner.container { padding-right: 10px; }
  .bt-header .custom-logo-link img { max-height: 38px; }
}

/* Hide desktop-only items on mobile */
@media (max-width: 768px) {
  .bt-desktop-only { display: none !important; }
}

/* Hide Account Icon on Mobile (for all headers) */
@media (max-width: 768px) {
  .bt-header .bt-header-right .bt-account-link,
  .bt-header .bt-header-account,
  .bt-header .bt-account-icon,
  .bt-header [class*="account"] {
    display: none !important;
  }
}

/* Force show Account item inside mobile drawer for all headers */
.bt-drawer .account-mobile-only {
  display: block !important;
  padding: 10px 0;
  border-top: 1px solid #e5e7eb;
  margin-top: 10px;
}
.bt-drawer .account-mobile-only a {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-weight: 600;
  color: var(--bt-accent, #2563eb);
  transition: color .2s ease, transform .2s ease;
}
.bt-drawer .account-mobile-only a:hover {
  color: var(--bt-accent-d, #1d4ed8);
  transform: translateX(3px);
}
.bt-drawer .account-mobile-only .dashicons {
  font-size: 18px;
  color: var(--bt-accent, #2563eb);
}

/* --- Branding grid fine-tune --- */
.site-branding.bt-brand-grid {
  display: grid;
  column-gap: .5rem;
  row-gap: .2rem;
  align-items: center;
}
.site-branding.bt-brand-grid.has-logo {
  grid-template-columns: auto 1fr;
  grid-template-rows: minmax(var(--bt-logo-h, 40px), auto) auto;
}
.bt-brand-grid.has-logo .bt-brand-logo {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
}
.bt-brand-grid.has-logo .bt-brand-title {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  display: flex;
  align-items: center;
}
.bt-brand-grid.has-logo .bt-brand-tagline {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  margin-top: .1rem;
}
.site-branding.bt-brand-grid.no-logo {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
}
@media (max-width: 768px) {
  .site-branding.bt-brand-grid.has-logo {
    grid-template-columns: auto 1fr;
    column-gap: .45rem;
  }
}

/* Ensure dropdown caret is visible on parent menu items */
.bt-primary-menu { overflow: visible; }
