/* PRIME Tix public header system. Loaded after page-local CSS as a safe override. */

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

.topbar,
.top-bar,
header.nav,
nav.nav#mainNav,
body > header.ptx-public-header {
  isolation: isolate;
}

.topbar,
.top-bar,
header.nav,
nav.nav#mainNav,
.ptx-public-header {
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid #e6ddcf;
  box-shadow: 0 1px 0 rgba(23, 19, 15, 0.02);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.topbar.scrolled {
  background: rgba(255, 255, 255, 0.97);
  border-bottom-color: #e6ddcf;
  box-shadow: 0 10px 30px rgba(23, 19, 15, 0.06);
}

.topbar .wrap,
.top-bar .container,
header.nav .container,
nav.nav#mainNav,
.ptx-public-header .container {
  min-width: 0;
}

.topbar .nav,
.top-bar-inner,
header.nav .nav-inner,
.ptx-public-header .nav-flex {
  min-height: 72px;
  gap: 14px;
}

.topbar .brand,
.logo-link,
header.nav .logo,
.ptx-public-header .logo,
nav.nav#mainNav .nav-logo {
  flex: 0 0 auto;
  min-width: 0;
}

.topbar .brand-mark img,
.logo-link .logo,
header.nav .logo img,
.ptx-public-header .logo img,
nav.nav#mainNav .nav-logo-img {
  width: auto;
  max-width: 152px;
  height: 38px;
  object-fit: contain;
}

.topbar .navlinks,
header.nav .nav-links,
.ptx-public-header .nav-menu,
nav.nav#mainNav .nav-right,
.top-actions,
header.nav .nav-actions {
  min-width: 0;
}

.topbar .navlinks,
header.nav .nav-links,
.ptx-public-header .nav-menu {
  align-items: center;
  gap: 4px;
}

.topbar .navlinks {
  background: #fff;
  border: 1px solid #e6ddcf;
  box-shadow: 0 8px 24px rgba(23, 19, 15, 0.04);
}

.topbar .navlinks a,
header.nav .nav-link,
.ptx-public-header .nav-menu a,
nav.nav#mainNav .btn-ghost,
header.nav .nav-actions a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  color: #4b4239;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  padding: 0 12px;
  white-space: nowrap;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.topbar .navlinks a:hover,
header.nav .nav-link:hover,
.ptx-public-header .nav-menu a:hover,
nav.nav#mainNav .btn-ghost:hover,
header.nav .nav-actions a:hover {
  background: #fff1ea;
  color: #c7360a;
}

.topbar .navlinks a.is-active,
header.nav .nav-link.is-active,
.ptx-public-header .nav-menu a.is-active {
  background: #fff1ea;
  color: #c7360a;
}

.topbar .nav-actions .btn,
.ptx-public-header .btn,
.ptx-public-header .btn-dispatch,
.top-btn,
.back-btn,
header.nav .cart-link,
header.nav .cart,
nav.nav#mainNav .btn-ghost {
  border-radius: 12px;
}

.topbar .nav-actions .btn-outline,
.topbar.scrolled .nav-actions .btn-outline,
.ptx-public-header .btn:not(.btn-primary),
.ptx-public-header .btn-dispatch,
.back-btn,
.top-btn,
header.nav .cart-link,
header.nav .cart,
nav.nav#mainNav .btn-ghost {
  border: 1px solid #e6ddcf;
  background: #fff;
  color: #17130f;
  box-shadow: none;
}

.topbar .nav-actions .btn-primary,
.ptx-public-header .btn-primary {
  border-color: #ff5722;
  background: #ff5722;
  color: #fff;
  box-shadow: 0 8px 18px rgba(255, 87, 34, 0.18);
}

.topbar .nav-actions .btn-primary:hover,
.ptx-public-header .btn-primary:hover {
  background: #e84a18;
  border-color: #e84a18;
}

.topbar .nav-actions .btn:hover,
.ptx-public-header .btn:hover,
.ptx-public-header .btn-dispatch:hover,
.back-btn:hover,
header.nav .cart-link:hover,
header.nav .cart:hover,
nav.nav#mainNav .btn-ghost:hover {
  border-color: rgba(255, 87, 34, 0.32);
  color: #c7360a;
  transform: none;
}

.ptx-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ptx-public-header .header-back-btn,
.ptx-public-header .btn-dispatch {
  width: auto;
  min-height: 42px;
  padding: 0 16px;
  font-size: 12px;
}

.topbar a:focus-visible,
.topbar button:focus-visible,
.top-bar a:focus-visible,
.top-bar button:focus-visible,
header.nav a:focus-visible,
header.nav button:focus-visible,
nav.nav#mainNav a:focus-visible,
nav.nav#mainNav button:focus-visible,
.ptx-public-header a:focus-visible,
.ptx-public-header button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 87, 34, 0.16);
}

.topbar .mobile-menu,
.hamburger,
.ptx-mobile-toggle,
.site-menu-toggle {
  flex: 0 0 auto;
  border: 1px solid #e6ddcf;
  border-radius: 12px;
  background: #fff;
  color: #17130f;
}

.site-menu-toggle,
.ptx-mobile-toggle {
  width: 44px;
  height: 44px;
  display: none;
  place-items: center;
  padding: 0;
}

.site-menu-toggle span,
.ptx-mobile-toggle span,
.topbar .mobile-menu span,
.hamburger span {
  width: 18px;
  height: 2px;
  display: block;
  border-radius: 999px;
  background: currentColor;
}

.site-menu-toggle span + span,
.ptx-mobile-toggle span + span {
  margin-top: 4px;
}

.ptx-mobile-panel,
.mobile-panel,
header.nav .mobile-menu {
  border: 1px solid #e6ddcf;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(23, 19, 15, 0.12);
}

header.nav .mobile-menu:not(.open):not(.show) {
  display: none;
}

header.nav .mobile-menu.open,
header.nav .mobile-menu.show {
  display: flex;
  flex-direction: column;
}

.ptx-mobile-panel {
  display: none;
  grid-template-columns: 1fr;
  gap: 6px;
  margin: 0 0 12px;
  padding: 10px;
}

.ptx-mobile-panel.open,
.ptx-mobile-panel.show {
  display: grid;
}

.ptx-mobile-panel a,
.mobile-panel a,
header.nav .mobile-menu a {
  min-height: 44px;
  display: flex;
  align-items: center;
  border-radius: 12px;
  color: #342d26;
  font-size: 14px;
  font-weight: 800;
  padding: 0 12px;
}

.ptx-mobile-panel a:hover,
.mobile-panel a:hover,
header.nav .mobile-menu a:hover {
  background: #fff1ea;
  color: #c7360a;
}

.topbar .mobile-panel {
  margin-top: -4px;
}

.topbar .mobile-panel.show {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 10px;
}

.cart-badge,
header.nav .cart span {
  background: #17130f;
  color: #fff;
}

@media (max-width: 1180px) {
  .topbar .navlinks a {
    padding-inline: 10px;
  }
}

@media (max-width: 980px) {
  .topbar .navlinks,
  .ptx-public-header .nav-menu,
  header.nav .nav-links .nav-link,
  header.nav .nav-actions a:not(.cart),
  nav.nav#mainNav .btn-ghost span {
    display: none;
  }

  .topbar .mobile-menu,
  .site-menu-toggle,
  .ptx-mobile-toggle {
    display: grid;
  }

  .topbar .nav,
  .top-bar-inner,
  header.nav .nav-inner,
  .ptx-public-header .nav-flex {
    min-height: 64px;
  }
}

@media (max-width: 760px) {
  .topbar .wrap,
  .top-bar .container,
  header.nav .container,
  .ptx-public-header .container {
    width: min(100% - 24px, 1240px);
    padding-inline: 0;
  }

  .topbar .brand-mark img,
  .logo-link .logo,
  header.nav .logo img,
  .ptx-public-header .logo img,
  nav.nav#mainNav .nav-logo-img {
    max-width: 132px;
    height: 34px;
  }

  header.nav .search-box {
    border-radius: 12px;
  }

  .top-actions {
    gap: 8px;
  }

  .top-btn {
    min-height: 40px;
    padding-inline: 10px;
  }
}

@media (max-width: 480px) {
  .topbar .nav-actions {
    display: none;
  }

  .topbar .mobile-panel a,
  .ptx-mobile-panel a,
  header.nav .mobile-menu a {
    min-height: 46px;
  }

  .top-btn span:not(.icon-wrap) {
    display: none;
  }
}

@media (max-width: 340px) {
  .topbar .brand-mark img,
  .logo-link .logo,
  header.nav .logo img,
  .ptx-public-header .logo img,
  nav.nav#mainNav .nav-logo-img {
    max-width: 112px;
  }
}
