/* ============================================================
   Header / Nav principale
   ============================================================ */

.olv-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--bg);
  border-bottom: 1px solid transparent;
  transition: background .3s, border-color .3s, box-shadow .3s;
}
.olv-header.is-scrolled {
  border-bottom-color: var(--line);
  box-shadow: 0 1px 12px rgba(20, 18, 14, 0.05);
}

.olv-header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px;
  padding: 16px var(--pad-x);
  max-width: 1480px; margin: 0 auto;
}

.olv-header-logo {
  color: var(--ink);
  display: inline-flex; align-items: center; gap: 10px;
}
.olv-logo {
  display: inline-flex; align-items: center; gap: 10px;
}
.olv-logo-text {
  font-family: var(--font-display); font-weight: 600;
  font-size: 18px; letter-spacing: -0.02em;
}
.olv-logo-text em {
  font-family: var(--font-serif); font-weight: 400; font-style: italic;
}

/* Nav menu */
.olv-header-nav { display: flex; }
.olv-nav-list {
  list-style: none; margin: 0; padding: 4px;
  display: flex; gap: 4px; align-items: center;
  background: rgba(245, 239, 226, 0.05);
  border: 1px solid var(--line); border-radius: 999px;
}
.olv-nav-list li { display: flex; }
.olv-nav-list a {
  display: inline-block; padding: 9px 16px;
  font-size: 13px; font-weight: 500;
  color: var(--ink-2); border-radius: 999px;
  transition: background .2s, color .2s;
  white-space: nowrap;
}
.olv-nav-list a:hover,
.olv-nav-list .current-menu-item > a,
.olv-nav-list .current_page_item > a {
  background: var(--ink); color: var(--bg); text-decoration: none;
}

/* Actions header (search + lang + cart) */
.olv-header-actions {
  display: flex; align-items: center; gap: 10px;
}

.olv-search-trigger {
  width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--line); background: transparent;
  color: var(--ink); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, border-color .15s;
}
.olv-search-trigger:hover { background: var(--surface); border-color: var(--ink); }

.olv-lang-switcher {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 4px; align-items: center;
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
}
.olv-lang-switcher li { display: flex; }
.olv-lang-switcher a {
  padding: 6px 10px; border: 1px solid var(--line);
  border-radius: 999px; color: var(--muted);
}
.olv-lang-switcher .current-lang a,
.olv-lang-switcher .lang-item-current a {
  background: var(--ink); color: var(--bg); border-color: var(--ink);
}

.olv-cart-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px 9px 14px; border-radius: 999px;
  background: var(--sun); border: 1px solid var(--sun-deep); color: var(--ink);
  font-size: 13px; font-weight: 500; text-decoration: none;
}
.olv-cart-btn:hover { background: var(--sun-deep); text-decoration: none; }
.olv-cart-count {
  background: var(--ink); color: var(--sun);
  border-radius: 999px; padding: 1px 7px;
  font-family: var(--font-mono); font-size: 10px; min-width: 18px; text-align: center;
}

/* Search overlay (rendu dynamiquement par search.js) */
.olv-search-overlay {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(22, 32, 44, 0.55);
  backdrop-filter: blur(4px);
  display: flex; align-items: flex-start; justify-content: center;
  padding: clamp(40px, 10vh, 100px) 20px;
  opacity: 0; pointer-events: none;
  transition: opacity .2s;
}
.olv-search-overlay.is-open { opacity: 1; pointer-events: auto; }

.olv-search-card {
  background: var(--bg); border-radius: 16px;
  width: 100%; max-width: 720px; max-height: 80vh;
  display: flex; flex-direction: column;
  box-shadow: 0 24px 60px rgba(22,32,44,0.3);
}
.olv-search-bar {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 22px; border-bottom: 1px solid var(--line);
}
.olv-search-input {
  flex: 1; border: none; outline: none; background: transparent;
  font: inherit; font-size: 17px; color: var(--ink);
}
.olv-search-results { overflow-y: auto; padding: 8px 0; }
.olv-search-empty {
  padding: 32px; text-align: center; color: var(--muted); font-size: 14px;
}

@media (max-width: 880px) {
  .olv-header-nav { display: none; }
}
