/* ============================================================================
   TypeCalendar Premium Header — Neve HFG–compatible (primary-menu-ul, z-index)
   ========================================================================== */

:root {
  --tc-bg: #fafbfc;
  --tc-bg-soft: #f4f6f8;
  --tc-fg: #0f172a;
  --tc-fg-muted: #64748b;
  --tc-fg-soft: #94a3b8;
  --tc-line: #e8ecf1;
  --tc-line-strong: #d4dae3;
  --tc-radius-card: 18px;
  --tc-radius-chip: 999px;
  --tc-radius-cta: 12px;
  --tc-gap: clamp(12px, 1.6vw, 22px);
  --tc-pad: clamp(16px, 1.6vw, 22px);
  --tc-anim: 220ms cubic-bezier(0.32, 0.72, 0, 1);
  --tc-anim-fast: 140ms cubic-bezier(0.32, 0.72, 0, 1);
  --tc-header-pad: clamp(12px, 1.5vw, 18px);
  --tc-header-row-py: clamp(5px, 0.55vw, 9px);
  --tc-focus-ring: 2px solid #64748b;
  /* Stacking: FAB < nav strip < open dropdowns < modal */
  --tc-z-header-fab: 100040;
  --tc-z-nav: 100050;
  --tc-z-dropdown: 100060;
  --tc-z-dropdown-nested: 100070;
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark light;
  }

  body.neve-dark-theme,
  body[data-neve-theme="dark"],
  body[class*="palette-dark"] {
    --tc-bg: #0f172a;
    --tc-bg-soft: #1e293b;
    --tc-fg: #f8fafc;
    --tc-fg-muted: #94a3b8;
    --tc-fg-soft: #64748b;
    --tc-line: #334155;
    --tc-line-strong: #475569;
    --tc-focus-ring: 2px solid #94a3b8;
  }
}

/* ── Skip link ───────────────────────────────────────────────────────────── */

.header > .neve-skip-link.show-on-focus {
  position: absolute;
  left: var(--tc-header-pad);
  top: var(--tc-header-pad);
  z-index: 100200;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--tc-fg);
  color: var(--tc-bg);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  transform: translateY(-140%);
  transition: transform var(--tc-anim-fast), box-shadow var(--tc-anim-fast);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.15);
}

.header > .neve-skip-link.show-on-focus:focus {
  transform: translateY(0);
  outline: var(--tc-focus-ring);
  outline-offset: 3px;
}

/* ── Sticky header shell (premium strip) ─────────────────────────────────── */

.typecalendar-ds .header {
  position: sticky;
  top: 0;
  z-index: 99990;
  background: linear-gradient(180deg, #fdfefe 0%, var(--tc-bg) 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.065);
  transition:
    box-shadow var(--tc-anim),
    background-color var(--tc-anim),
    border-color var(--tc-anim);
}

.typecalendar-ds .header.neve-premium-header--shrunk {
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.07);
  background: color-mix(in srgb, var(--tc-bg) 92%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

@supports not (background: color-mix(in srgb, white 50%, white)) {
  .typecalendar-ds .header.neve-premium-header--shrunk {
    background: rgba(255, 255, 255, 0.94);
  }
}

body.neve-dark-theme.typecalendar-ds .header,
body[data-neve-theme="dark"].typecalendar-ds .header {
  background: var(--tc-bg);
  border-bottom-color: rgba(148, 163, 184, 0.16);
}

.header.neve-premium-header--shrunk .header--row,
.header.neve-premium-header--shrunk .hfg-row {
  transition: min-height var(--tc-anim), padding var(--tc-anim);
}

/* Drop shadows clip if parent hides overflow — Neve needs visible dropdowns */
.typecalendar-ds .header #header-grid,
.typecalendar-ds .header .header--row,
.typecalendar-ds .header .header-main-inner,
.typecalendar-ds .header .header--row-inner,
.typecalendar-ds .header .hfg-slot,
.typecalendar-ds .header .row--wrapper {
  overflow: visible !important;
}

.typecalendar-ds .header .container {
  overflow: visible !important;
}

@media (prefers-reduced-motion: reduce) {
  .typecalendar-ds .header,
  .header.neve-premium-header--shrunk .header--row,
  .header.neve-premium-header--shrunk .hfg-row {
    transition: none;
  }

  .typecalendar-ds .header.neve-premium-header--shrunk {
    backdrop-filter: none;
  }
}

/* ── Nav stacking (must beat search FAB) ─────────────────────────────────── */

.typecalendar-ds .header .nv-nav-wrap,
.typecalendar-ds .header .nav-menu-primary {
  position: relative;
  z-index: var(--tc-z-nav);
}

.typecalendar-ds .header ul.primary-menu-ul > li.menu-item-has-children {
  position: relative;
}

.typecalendar-ds .header ul.primary-menu-ul > li.menu-item-has-children:hover,
.typecalendar-ds .header ul.primary-menu-ul > li.menu-item-has-children:focus-within {
  z-index: var(--tc-z-dropdown);
}

/* Desktop primary nav — IDs from Neve */
.typecalendar-ds .header #nv-primary-navigation-main > li.menu-item-has-children > .sub-menu {
  z-index: var(--tc-z-dropdown) !important;
}

.typecalendar-ds .header #nv-primary-navigation-main li li.menu-item-has-children > .sub-menu {
  z-index: var(--tc-z-dropdown-nested) !important;
}

/*
 * Masaüstü menü, mega (.neve-mega-menu), flyout (.contained) ve mobil drawer:
 * premium-header-menu-overrides.css (+ wp_head) — Seraphinite ile uyumlu tek kaynak.
 */

/* ── Header row: daha kompakt yükseklik ───────────────────────────────────── */

.typecalendar-ds .header .header-main-inner .container {
  padding-top: var(--tc-header-row-py);
  padding-bottom: var(--tc-header-row-py);
}

@media (min-width: 960px) {
  .typecalendar-ds .header .header--row.header-main .header--row-inner {
    padding-top: 0;
    padding-bottom: 0;
  }

  .typecalendar-ds .header .builder-item--logo .navbar-brand,
  .typecalendar-ds .header .builder-item--logo .site-logo {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}

/* ── Tek arama: Neve HFG bileşenini gizle (body.typecalendar-use-child-search) */

.typecalendar-ds.typecalendar-use-child-search .header .builder-item--header_search_responsive,
.typecalendar-ds.typecalendar-use-child-search .header .item--inner.builder-item--header_search_responsive {
  display: none !important;
}

.typecalendar-ds.typecalendar-use-child-search .header .nv-search-icon-component {
  display: none !important;
}

.typecalendar-ds.typecalendar-use-child-search #header-menu-sidebar .builder-item[class*="advanced_search"],
.typecalendar-ds.typecalendar-use-child-search #header-menu-sidebar .item--inner[class*="advanced_search"] {
  display: none !important;
}

/* ── Search modal trigger (variantlar aşağıda) ───────────────────────────── */

.typecalendar-search-trigger {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--tc-line);
  border-radius: 10px;
  background: var(--tc-bg);
  color: var(--tc-fg-muted);
  cursor: pointer;
  box-shadow: none;
  transition:
    border-color var(--tc-anim-fast),
    background-color var(--tc-anim-fast),
    color var(--tc-anim-fast);
}

.typecalendar-search-trigger:hover {
  border-color: var(--tc-line-strong);
  background: var(--tc-bg-soft);
  color: var(--tc-fg);
}

.typecalendar-search-trigger:focus-visible {
  outline: var(--tc-focus-ring);
  outline-offset: 2px;
}

.typecalendar-search-trigger svg {
  width: 21px;
  height: 21px;
  display: block;
}

/* Masaüstü: tetikleyici birincil menü satırında (Neve item--inner flex) */
@media (min-width: 960px) {
  .typecalendar-ds .header .builder-item--primary-menu.item--inner.has_menu {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    min-width: 0;
  }

  .typecalendar-ds .header .builder-item--primary-menu .nv-nav-wrap {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    justify-content: flex-end;
  }

  .typecalendar-search-trigger--in-nav {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    flex-shrink: 0;
    align-self: center;
    z-index: var(--tc-z-nav);
    width: 38px;
    height: 38px;
    border-radius: 9px;
  }

  .typecalendar-search-trigger--mobile-toolbar {
    display: none !important;
  }

  /* İki primary-menu bileşeni (desktop / mobil DOM): fazladan tetikleyiciyi kapat */
  .typecalendar-ds .header .builder-item--primary-menu:has(.primary-menu-ul.menu-mobile) .typecalendar-search-trigger--in-nav {
    display: none !important;
  }
}

/*
 * Mobil tetikleyici: Neve HFG main / right slot içinde (PHP) — absolute yok, flex ile hamburger yanında.
 */
@media (max-width: 959px) {
  .typecalendar-search-trigger--in-nav {
    display: none !important;
  }

  .typecalendar-ds .header .hfg-slot.right:has(.typecalendar-search-trigger--mobile-toolbar) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: nowrap;
    min-width: 0;
  }

  .typecalendar-search-trigger--mobile-toolbar {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    flex-shrink: 0;
    align-self: center;
    width: 38px;
    height: 38px;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    color: var(--tc-fg-muted);
    z-index: 1;
  }

  .typecalendar-search-trigger--mobile-toolbar:hover {
    background: rgba(71, 85, 105, 0.07);
    color: var(--tc-fg);
  }

  .typecalendar-search-trigger--mobile-toolbar svg {
    width: 20px;
    height: 20px;
  }
}

html.typecalendar-modal-open {
  overflow: hidden;
}

/* ── Search modal ───────────────────────────────────────────────────────── */

.neve-premium-search-modal {
  position: fixed;
  inset: 0;
  z-index: 100100;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: max(24px, env(safe-area-inset-top)) 20px 24px;
  background: rgba(15, 23, 42, 0.46);
  backdrop-filter: blur(6px);
}

.neve-premium-search-modal[hidden] {
  display: none !important;
}

.neve-premium-search-modal__panel {
  width: min(640px, 100%);
  margin-top: min(12vh, 120px);
  padding: 22px;
  border-radius: var(--tc-radius-card);
  border: 1px solid var(--tc-line);
  background: var(--tc-bg);
  box-shadow:
    0 8px 28px rgba(15, 23, 42, 0.12),
    0 28px 70px rgba(15, 23, 42, 0.14);
}

.neve-premium-search-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.neve-premium-search-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--tc-fg);
}

.neve-premium-search-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid var(--tc-line);
  background: var(--tc-bg-soft);
  color: var(--tc-fg);
  cursor: pointer;
  transition: background var(--tc-anim-fast), border-color var(--tc-anim-fast);
}

.neve-premium-search-modal__close:hover {
  border-color: var(--tc-line-strong);
}

.neve-premium-search-modal__close:focus-visible {
  outline: var(--tc-focus-ring);
  outline-offset: 2px;
}

.neve-premium-search-modal .search-form,
.neve-premium-search-modal form[class*="searchwp"] {
  width: 100%;
}

.neve-premium-search-modal input[type="search"],
.neve-premium-search-modal input[type="text"] {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--tc-line);
  font-size: 1rem;
  background: var(--tc-bg);
  color: var(--tc-fg);
}

.neve-premium-search-modal input:focus-visible {
  outline: var(--tc-focus-ring);
  outline-offset: 2px;
  border-color: #475569;
}

@media (prefers-reduced-motion: reduce) {
  .typecalendar-search-trigger,
  .header > .neve-skip-link.show-on-focus {
    transition: none;
  }
}

/* Menü premium override: assets/css/premium-header-menu-overrides.css → wp_add_inline_style (inc/premium-setup.php) — Seraphinite CSS bölme ile uyumlu */
