/**
 * Bongoto Shop — Header CSS (CLEAN FINAL)
 * Text Domain: bongoto-shop
 * ----------------------------------
 * - 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;
}

/* Default logo size (desktop-friendly) */
.bt-logo__img { max-height: 48px; }

/* -------------------- 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;              /* base: left */
  width: 82vw;
  max-width: 320px;
  background: var(--bt-bg);
  box-shadow: 8px 0 24px rgba(0,0,0,.12);
  transform: translateX(-100%);   /* base: slide from left */
  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;
}

/* 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; }

/* Hide tagline only on Header Variant 1 */
.bt-header--v1 .site-description,
.bt-header--v1 .bt-tagline,
.bt-header--v1 .bt-header-tagline,
.bt-header--v1 .bt-site-tagline {
  display: none !important;
}

/* =========================================================
   MOBILE FINAL OVERRIDES (NO DUPLICATES)
   - Slim header
   - Smaller logo
   - Hamburger RIGHT + bigger
   - Drawer opens from RIGHT
   - Hide header cart/account (bottom bar has them)
   - Center branding
========================================================= */
@media (max-width: 768px){

  /* Slimmer header */
  .bt-header-inner{
    padding: .35rem 0 !important;
    gap: 8px;
    position: relative;
    justify-content: center;
  }

  /* Center branding block */
  .bt-header-left{
    flex: 1;
    justify-content: center;
  }
  .bt-header-left .site-branding{
    justify-content: center;
  }

  /* Smaller logo on mobile */
  .bt-header .custom-logo-link img,
  .bt-logo__img{
    max-height: 30px !important;
    width: auto;
  }

  /* Site title smaller (optional) */
  .bt-brand-title,
  .site-title{
    font-size: 18px;
    line-height: 1.1;
  }

  /* Hide header cart (because bottom nav has cart) */
  .bt-header-cart{
    display: none !important;
  }

  /* Hamburger: RIGHT + bigger */
  .bt-menu-toggle{
    display: flex;
    position: absolute;
    right: 10px;
    left: auto;
    width: 44px;
    height: 44px;
    border-radius: 10px;
  }

  /* Works for dashicons OR svg OR span-based hamburger */
  .bt-menu-toggle .dashicons,
  .bt-menu-toggle svg,
  .bt-menu-toggle span{
    width: 28px;
    height: 28px;
    font-size: 28px;
    line-height: 28px;
  }
  .bt-menu-toggle svg{ display: block; }

  /* Drawer opens from RIGHT on mobile */
  .bt-drawer{
    inset: 0 0 0 auto;
    transform: translateX(100%);
    box-shadow: -8px 0 24px rgba(0,0,0,.12);
  }
  .bt-drawer.is-open{
    transform: translateX(0);
  }
}

/* Drawer content should not go under the mobile bottom nav */
:root{
  --bt-bottom-nav-h: 72px; /* আপনার bottom bar height (প্রয়োজনে 64/70/80 করে টিউন করবেন) */
}

@media (max-width: 768px){

  /* Drawer scroll area */
  .bt-drawer-inner{
    padding-bottom: calc(var(--bt-bottom-nav-h) + env(safe-area-inset-bottom)) !important;
    max-height: calc(100vh - var(--drawer-offset) - var(--bt-bottom-nav-h));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* (optional) drawer footer যদি থাকে, সেটাও যেন নিচে আটকে না যায় */
  .bt-drawer-footer{
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}
