/* TicketsFest 10.2.56: unified header and touch-first mobile navigation.
   Intentionally scoped to the header/menu classes; does not touch event cards,
   grids, venue/tour templates, widgets, forms or ticket components. */
:root {
  --tfe-nav-ink: var(--tfe-text);
  --tfe-nav-blue: var(--tfe-primary);
  --tfe-nav-border: var(--tfe-border);
  --tfe-nav-tint: var(--tfe-soft);
}
.tfe-header-outer { padding-top: calc(12px + env(safe-area-inset-top)); }
.tfe-header-wrap {
  max-width: 1260px;
  height: 66px;
  border-radius: 23px;
  border: 1px solid rgba(207,219,237,.92);
  background: rgba(255,255,255,.97);
  box-shadow: 0 12px 44px rgba(15,36,72,.075), 0 2px 6px rgba(15,36,72,.045);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.tfe-header-wrap.is-scrolled {
  background: rgba(255,255,255,.985);
  box-shadow: 0 12px 36px rgba(15,36,72,.14), 0 1px 3px rgba(15,36,72,.04);
}
.tfe-header-inner { padding-inline: clamp(14px, 1.6vw, 24px); gap: clamp(8px, .9vw, 15px); }
.tfe-logo { max-width: 185px; }
.tfe-logo img { max-width: 100%; object-fit: contain; }
.tfe-logo-text { letter-spacing: -.035em; }
.tfe-nav-container { gap: clamp(7px, 1vw, 14px); min-width: 0; }
.tfe-desktop-nav .tfe-menu-main { gap: 2px; }
.tfe-desktop-nav .tfe-menu-main a,
.tfe-more-menu .tfe-more-toggle {
  display: inline-flex;
  align-items: center;
  min-height: 41px;
  border-radius: 12px;
  padding: 8px clamp(9px,.9vw,13px);
  font-family: 'e-Ukraine', sans-serif;
  font-size: 13px;
  font-weight: 750;
  color: var(--tfe-nav-ink);
  transition: background .16s ease, color .16s ease;
}
.tfe-desktop-nav .tfe-menu-main li.is-active > a,
.tfe-desktop-nav .tfe-menu-main a[aria-current="page"],
.tfe-desktop-nav .tfe-menu-main a:hover,
.tfe-more-menu .tfe-more-toggle:hover,
.tfe-more-menu.is-open .tfe-more-toggle {
  background: var(--tfe-nav-tint);
  color: var(--tfe-nav-blue);
  box-shadow: none;
}
.tfe-more-menu .tfe-more-toggle { border: 0; cursor: pointer; }
.tfe-more-menu .tfe-more-toggle::after { transition: transform .18s ease; }
.tfe-more-menu.is-open .tfe-more-toggle::after { transform: rotate(180deg); }
/* Never rely on mouse hover to open the Explore dropdown. */
.tfe-more-menu:hover .tfe-more-panel,
.tfe-more-menu:focus-within .tfe-more-panel {
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
}
.tfe-more-menu.is-open .tfe-more-panel,
.tfe-more-menu.is-open:hover .tfe-more-panel,
.tfe-more-menu.is-open:focus-within .tfe-more-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.tfe-more-panel { width: 246px; border-color: var(--tfe-nav-border); border-radius: 17px; }
.tfe-menu-more a { font-size: 13px; border-radius: 10px; }
.tfe-location-picker > summary {
  min-height: 41px;
  border-radius: 12px;
  max-width: 154px;
  background: #f4f7fc;
  border-color: #e1eaf7;
}
.tfe-location-panel { border-radius: 17px; border-color: var(--tfe-nav-border); }
.tfe-location-fields select { border-radius: 10px; }
.tfe-language-control summary { border-radius: 12px; min-height: 41px; }
.tfe-header-cta,
.tfe-mobile-cta,
.tfe-location-fields .tfe-location-go {
  border-radius: 12px;
  background: #2455c3;
  box-shadow: 0 8px 18px rgba(36,85,195,.16);
}
.tfe-header-cta:hover,
.tfe-mobile-cta:hover,
.tfe-location-fields .tfe-location-go:hover { background: #1b46a9; color: #fff; }
.tfe-header-cta { min-height: 42px; font-size: 13px; }
.tfe-header-wrap :is(a, button, summary, select):focus-visible,
.tfe-mobile-overlay :is(a, button, summary, select):focus-visible {
  outline: 3px solid #74a5f5 !important;
  outline-offset: 3px;
}

/* Mobile and tablet: one handed location + menu; drawer scroll is independent
   from the document. The hidden drawer is also inert in the markup. */
@media (max-width: 1180px) {
  .tfe-header-outer { padding: calc(10px + env(safe-area-inset-top)) 14px 0; }
  .tfe-header-wrap { height: 60px; border-radius: 20px; }
  .tfe-header-inner { padding-inline: 14px; gap: 9px; }
  .tfe-logo img { height: 32px; }
  .tfe-location-mobile-trigger {
    min-height: 42px;
    border-radius: 12px;
    background: var(--tfe-nav-tint);
    border-color: #dfe9ff;
    color: var(--tfe-nav-blue);
    padding: 7px 11px;
  }
  .tfe-burger { width: 42px; height: 42px; border-radius: 12px; }
  .tfe-mobile-overlay {
    width: min(420px, 100%);
    max-width: 100%;
    height: 100dvh;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    background: #fff;
    border-radius: 22px 0 0 22px;
    box-shadow: -28px 0 75px rgba(12,27,57,.17);
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .tfe-mobile-header {
    position: relative;
    background: #fff;
    padding: calc(16px + env(safe-area-inset-top)) 20px 16px;
    border-bottom: 1px solid var(--tfe-nav-border);
  }
  .tfe-menu-title { font-family: 'e-Ukraine Head','e-Ukraine',sans-serif; font-weight: 800; font-size: 21px; }
  .tfe-mobile-lang.tfe-language-control summary { border-radius: 12px; }
  .tfe-mobile-location-block {
    padding: 18px 20px;
    background: #f7faff;
    border-bottom: 1px solid var(--tfe-nav-border);
  }
  .tfe-mobile-location-block .tfe-location-panel-title {
    font-size: 13px;
    font-weight: 800;
    color: #405478;
    margin-bottom: 12px;
  }
  .tfe-mobile-location-block .tfe-location-fields select { background: #fff; }
  .tfe-mobile-list {
    flex: 0 0 auto !important;
    overflow: visible !important;
    padding: 14px 16px 12px;
  }
  .tfe-menu-mobile { gap: 5px; }
  .tfe-menu-mobile li { border: 0; }
  .tfe-mobile-list .tfe-menu-mobile a {
    min-height: 50px;
    padding: 11px 16px;
    background: #fff;
    border-radius: 12px;
    font-family: 'e-Ukraine',sans-serif;
    color: var(--tfe-nav-ink);
    font-size: 15px;
    font-weight: 740;
    line-height: 1.4;
    transition: background .15s ease, color .15s ease;
  }
  .tfe-mobile-list .tfe-menu-mobile a:hover,
  .tfe-menu-mobile li.is-active > a {
    background: var(--tfe-nav-tint);
    color: var(--tfe-nav-blue);
    padding-left: 16px;
  }
  .tfe-mobile-list .tfe-menu-mobile a::after { border-color: #a5b5ce; }
  .tfe-mobile-footer {
    padding: 18px 20px max(24px, env(safe-area-inset-bottom));
    margin-top: auto;
    border-top: 1px solid var(--tfe-nav-border);
    gap: 14px;
  }
  .tfe-mobile-cta { min-height: 48px; border-radius: 12px; }
  .tfe-social-icon { background: #edf3ff; border-color: #dfe9fa; }
  .tfe-mobile-backdrop { background: rgba(10,22,44,.55); }
}
@media (max-width: 430px) {
  .tfe-header-outer { padding-inline: 10px; }
  .tfe-header-inner { padding-inline: 12px; }
  .tfe-logo-text { font-size: 17px; }
  .tfe-logo img { height: 29px; }
  .tfe-mobile-overlay { border-radius: 0; }
  .tfe-location-mobile-trigger { max-width: 138px; }
  .tfe-location-mobile-trigger span { max-width: 76px; }
  .tfe-mobile-location-block { padding: 15px 18px; }
}
@media (min-width: 1181px) and (max-width: 1280px) {
  .tfe-header-inner { padding-inline: 15px; }
  .tfe-desktop-nav .tfe-menu-main a, .tfe-more-menu .tfe-more-toggle { font-size: 12px; padding-inline: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .tfe-header-wrap,
  .tfe-more-panel,
  .tfe-more-toggle,
  .tfe-mobile-overlay,
  .tfe-mobile-backdrop,
  .tfe-mobile-list a { transition: none !important; }
}
