/* ==========================================================================
   Header sticky: logo, menú principal (desktop), acciones y panel del buscador.
   Marcado en template-parts/header/site-header.php; menú en inc/header.php.
   JS: header.js (sticky compacto, buscador), nav.js (submenús).

   El menú de desktop se muestra desde 1381px: es largo y necesita el ancho.
   Por debajo pasa al drawer (drawer.css).
   ========================================================================== */

/* ---------- Reset frente a Divi ----------
   Divi da padding-bottom a p y h*, y márgenes a las listas. :is() pesa 0-0-1:
   le gana a Divi (carga antes) y pierde contra las clases de los componentes. */
:where(.announcement, .site-header) :is(p, h2, ul, ol, li) {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ---------- Hueco del header de Divi ----------
   Divi reserva arriba el alto de su header fijo: #page-container lleva padding-top
   de 80px en pantallas ≤980px (sin depender de clases del body) y su JS lo reescribe
   como estilo inline. !important para ganarle a los dos, igual que hace Divi con el
   header del Theme Builder (.et-tb-has-header #page-container). */
body.byc #page-container { padding-top: 0 !important; }

/* ---------- Saltar al contenido ---------- */
.skip-link {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: 12px 20px;
  background: var(--color-ink);
  color: var(--color-white);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  text-decoration: none;
  transform: translateY(-200%);
}
.skip-link:focus { transform: none; color: var(--color-white); }

/* ---------- Barra principal ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-line);
  font-family: var(--font-sans);
}

/* Barra de administración de WordPress: fija desde 601px (medidas del core de WP). */
@media (min-width: 601px) {
  .admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
}

.site-header__inner {
  display: flex;
  align-items: stretch;
  gap: 32px;
  height: var(--header-height);
  transition: height var(--transition);
}

.site-header__menu-toggle {
  display: none;
  align-self: center;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-left: -10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  cursor: pointer;
}

.site-header__logo { display: flex; align-items: center; flex-shrink: 0; }

.site-header__logo-img {
  width: auto;
  height: var(--logo-height)!important;
  transition: height var(--transition);
}

/* Estado sticky compacto: se achica la barra y el logo (header.js) */
.site-header--compact .site-header__inner { height: var(--header-height-compact); }
.site-header--compact .site-header__logo-img { height: var(--logo-height-compact); }

/* ---------- Menú principal (desktop) ---------- */
.main-nav { display: flex; flex: 1; justify-content: center; min-width: 0; }

.main-nav__list { display: flex; align-items: stretch; gap: 26px; }

.main-nav__item { position: relative; display: flex; align-items: center; }

/* Links y botones de los padres comparten estilo */
.main-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.main-nav__link:hover { color: var(--color-ink); }

/* Subrayado fino: hover, abierto, página actual o rama actual */
.main-nav__link::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.main-nav__link:hover::after,
.main-nav__link[aria-expanded="true"]::after,
.main-nav__link[aria-current="page"]::after,
.main-nav__item--current > .main-nav__link::after { transform: scaleX(1); }

.main-nav__chevron { transition: transform var(--transition); }
.main-nav__link[aria-expanded="true"] .main-nav__chevron { transform: rotate(180deg); }

/* Paneles: sin sombra, borde fino. Se abren con click (nav.js), no con hover. */
.main-nav__panel {
  position: absolute;
  top: 100%;
  left: -24px;
  z-index: 10;
  min-width: 260px;
  margin-top: 1px; /* debajo del borde del header */
  padding: 20px 24px 24px;
  border: 1px solid var(--color-line);
  background: var(--color-white);
  animation: fade-in 0.2s ease;
}

/* Los dos últimos padres (Hilos, Mercería) abren hacia la izquierda */
.main-nav__item:nth-last-child(-n + 3) > .main-nav__panel { right: -24px; left: auto; }

.main-nav__sublist { display: grid; gap: 2px; }

.main-nav__subitem { position: static; }

.main-nav__sublink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 7px 0;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.4;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.main-nav__sublink:hover,
.main-nav__sublink[aria-current="page"] {
  color: var(--color-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.main-nav__sublink[aria-expanded="true"] { font-weight: 600; }
.main-nav__sublink .main-nav__chevron { color: var(--color-graphite); }
.main-nav__sublink[aria-expanded="true"] .main-nav__chevron { color: var(--color-ink); transform: translateX(3px); }

/* "Ver todo en …": primer ítem de cada panel, lleva al link del padre */
.main-nav__subitem--all {
  margin-bottom: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-line);
}

.main-nav__all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-caps);
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.main-nav__all:hover { color: var(--color-ink); text-decoration: underline; text-underline-offset: 3px; }
.main-nav__all .icon { transition: transform var(--transition); }
.main-nav__all:hover .icon { transform: translateX(3px); }

/* Tercer nivel: se abre al costado del panel; su borde izquierdo pisa el derecho
   del panel y queda una sola línea divisoria */
.main-nav__panel--level-2 {
  top: -1px;
  left: 100%;
  min-width: 280px;
  min-height: calc(100% + 2px);
  margin-top: 0;
}

/* ---------- Acciones (buscar, cuenta, carrito) ---------- */
.site-header__actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 18px;
  margin-block: 24px;
  margin-left: auto;
  padding-left: 24px;
  border-left: 1px solid var(--color-line-strong);
  transition: margin var(--transition);
}
.site-header--compact .site-header__actions { margin-block: 16px; }

.site-header__action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.site-header__action:hover { color: var(--color-ink); }
.site-header__action:hover .site-header__action-label { text-decoration: underline; text-underline-offset: 3px; }
.site-header__action[aria-expanded="true"] { color: var(--color-ink); }

.site-header__cart { gap: 16px; }

.site-header__cart-icon { position: relative; display: inline-flex; }

.site-header__cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--color-ink);
  color: var(--color-white);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
}

.site-header__cart-total { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------- Panel del buscador (debajo de la barra) ---------- */
.header-search {
  border-top: 1px solid var(--color-line);
  background: var(--color-white);
  animation: fade-in 0.2s ease;
}

.header-search__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-block: 16px;
}

.header-search__form {
  position: relative;
  display: flex;
  flex: 1;
  align-items: stretch;
  min-width: 0;
  border-bottom: 1px solid var(--color-ink);
}
.header-search__form:focus-within { outline: 2px solid var(--color-ink); outline-offset: 4px; }

.header-search__icon {
  position: absolute;
  top: 50%;
  left: 0;
  color: var(--color-graphite);
  transform: translateY(-50%);
}

/* Anula el estilo de campo de base.css: acá el campo es solo la línea inferior del form */
.byc .header-search__input {
  flex: 1;
  min-width: 0;
  height: 52px;
  min-height: 0;
  padding: 0 16px 0 34px;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: var(--fs-md);
}
.byc .header-search__input:focus { outline: none; }

.header-search__submit { --button-height: 52px; }

/* ---------- Responsive ---------- */

/* El menú pasa al drawer */
@container site (max-width: 1380px) {
  .main-nav { display: none; }
  .site-header__menu-toggle { display: inline-flex; }
  .site-header__inner { gap: 16px; }
}

/* Mobile */
@container site (max-width: 767px) {
  .site-header__inner { height: 64px; }
  .site-header__logo-img { height: 40px; }
  .site-header--compact .site-header__inner { height: 56px; }
  .site-header--compact .site-header__logo-img { height: 32px; }

  .site-header__actions { gap: 4px; margin-block: 12px; padding-left: 0; border-left: 0; }
  .site-header--compact .site-header__actions { margin-block: 8px; }
  .site-header__action { justify-content: center; min-width: 40px; }
  .site-header__action-label { display: none; }
  .site-header__action--account { display: none; }

  .header-search__inner { gap: 8px; padding-block: 12px; }
  /* 0-4-1: le gana a `.woocommerce button.button` (0-2-1) y al reset de botones de base.css (0-3-1) */
  body.byc .header-search__form .button.header-search__submit { display: none; }
  .byc .header-search__input { height: 48px; font-size: 1.0625rem; }
}
