/* V2: nagłówek w karcie hero (sections-v2/parts/header-card.mjs). Prefiks .gs-hc__, tokeny --gs-* i --v2-*.
   Wymiary zmierzone na desktronic (1440): karta wcięta 12, pasek 38, pigułka 24 od krawędzi zdjęcia (x 36,
   y 74), wysokość 56, promień 12; po przewinięciu pełna listwa 58 z linią 1 px, logo 24 od krawędzi okna
   (przy 1920: treść belki w 1440 + 2 × 24, logo na x 240).
   Bez szkła: pigułka jest biała z tekstem ink. Przejście do listwy to sama geometria (bez podmiany kolorów
   logo i tekstu), Outlet i Promocje zostają w --gs-link, a biały panel mega menu wisi pod białą pigułką.
   Stany (js/v2/header.js): .gs-hc bez klas = karta na górze strony, .is-bar = listwa,
   .is-band-hidden = pasek zwinięty (przewijanie w dół). Czas zmiany stanu 0,4 s (--v2-t-image). */

html.v2 {
  /* Fokus i kotwice nie chowają się pod listwą (pasek 38 + listwa 58 + zapas). */
  scroll-padding-top: 108px;
}

.gs-hc {
  --gs-hc-inset: 12px;
  --gs-hc-band: 38px;
  --gs-hc-gap: 24px;
  --gs-hc-pill-h: 56px;
  --gs-hc-bar-h: 58px;
  --gs-hc-max: 1440px;
  --gs-hc-pad: 24px;
  --gs-hc-t: var(--v2-t-image);
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  display: flex;
  flex-direction: column;
  color: var(--v2-ink);
  pointer-events: none;
}

.gs-hc > * {
  pointer-events: auto;
}

/* ---------- Pasek wyróżników ---------- */

.gs-hc__band {
  flex: none;
  height: var(--gs-hc-band);
  margin: var(--gs-hc-inset) var(--gs-hc-inset) 0;
  overflow: hidden;
  border-radius: var(--v2-r-hero) var(--v2-r-hero) 0 0;
  background: var(--v2-band);
  color: var(--v2-on-band);
  transition: margin var(--gs-hc-t), border-radius var(--gs-hc-t), visibility 0s;
}

.gs-hc__band-list {
  display: flex;
  justify-content: space-between; /* decyzja Piotra 19.10: wyróżniki rozłożone na szerokość treści */
  align-items: center;
  gap: 24px;
  max-width: var(--gs-container-max);
  height: 100%;
  margin: 0 auto;
  padding: 0 var(--gs-container-pad);
  list-style: none;
}

.gs-hc__band-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}

.gs-hc__band-item .gs-icon {
  opacity: 0.85;
}

/* ---------- Belka: pigułka na górze, listwa po przewinięciu ---------- */

.gs-hc__bar {
  position: relative;
  flex: none;
  width: min(100% - 2 * (var(--gs-hc-inset) + var(--gs-hc-gap)), var(--gs-hc-max));
  height: var(--gs-hc-pill-h);
  margin: var(--gs-hc-gap) auto 0;
  border-bottom: 1px solid transparent;
  border-radius: var(--v2-r-panel);
  background: var(--gs-bg);
  box-shadow: 0 6px 24px color-mix(in srgb, var(--v2-ink) 12%, transparent);
  transition:
    width var(--gs-hc-t),
    height var(--gs-hc-t),
    margin var(--gs-hc-t),
    border-radius var(--gs-hc-t),
    border-color var(--gs-hc-t),
    box-shadow var(--gs-hc-t);
}

/* Bez paska (brak wyróżników) pigułka i tak stoi pod pasem karty. */
.gs-hc__bar:first-child {
  margin-top: calc(var(--gs-hc-inset) + var(--gs-hc-band) + var(--gs-hc-gap));
}

.gs-hc.is-bar .gs-hc__band {
  margin: 0;
  border-radius: 0;
}

.gs-hc.is-bar .gs-hc__bar {
  width: 100%;
  height: var(--gs-hc-bar-h);
  margin-top: 0;
  border-bottom-color: var(--v2-line);
  border-radius: 0;
  box-shadow: none;
}

/* Przewijanie w dół: pasek zwija się nad okno, listwa zostaje. */
.gs-hc.is-band-hidden .gs-hc__band {
  margin-top: calc(-1 * var(--gs-hc-band));
  visibility: hidden;
  transition: margin var(--gs-hc-t), border-radius var(--gs-hc-t), visibility 0s linear var(--gs-dur-slow);
}

.gs-hc__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  max-width: calc(var(--gs-hc-max) + 2 * var(--gs-hc-pad));
  height: 100%;
  margin: 0 auto;
  padding: 0 var(--gs-hc-pad);
}

.gs-hc__brand {
  display: flex;
  justify-self: start;
}

.gs-hc__brand .gs-logo {
  font-size: 24px;
}

.gs-hc__nav,
.gs-hc__list,
.gs-hc__item {
  height: 100%;
}

.gs-hc__list {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gs-hc__item {
  display: flex;
}

/* Linki i wyzwalacze: wysokość belki, podkreślenie rośnie od środka pod aktywną pozycją (0,3 s). */
.gs-hc__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--v2-ink);
  font-family: var(--gs-font-text);
  font-size: var(--v2-nav-size);
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}

.gs-hc__link::after {
  content: '';
  position: absolute;
  inset: auto 0 -1px;
  height: 2px;
  background: var(--gs-brand);
  transform: scaleX(0);
  transition: transform var(--v2-t-control);
}

.gs-hc__link:is(:hover, [aria-expanded='true'])::after {
  transform: scaleX(1);
}

/* Pierścień fokusu wokół napisu, nie na całą wysokość belki. */
html.v2 .gs-hc__link:focus-visible {
  outline: none;
}

.gs-hc__link:focus-visible::before {
  content: '';
  position: absolute;
  inset: calc(50% - 16px) -8px;
  border: 2px solid var(--gs-focus);
  border-radius: 8px;
}

.gs-hc__link--accent {
  color: var(--gs-link);
  font-weight: 500;
}

/* „Promocje” na czerwono i o stopień grubsze (decyzja Piotra 19.10; wyjątek od --gs-sale tylko dla cen). */
.gs-hc__link--sale {
  color: var(--gs-sale);
  font-weight: 600;
}

.gs-hc__chevron {
  color: var(--v2-muted);
  transition: transform var(--v2-t-control);
}

.gs-hc__link[aria-expanded='true'] .gs-hc__chevron {
  transform: rotate(180deg);
}

/* Ikony: maks. trzy naraz (desktop: szukaj, ulubione, koszyk; mobile: szukaj, koszyk, menu). */
.gs-hc__tools {
  display: flex;
  justify-self: end;
  align-items: center;
  gap: 4px;
  margin-right: -8px;
}

.gs-hc__tool {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--v2-ink);
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--v2-t-control);
}

.gs-hc__tool .gs-icon {
  width: 22px;
  height: 22px;
}

.gs-hc__tool:hover,
.gs-hc__tool[aria-expanded='true'] {
  background: var(--v2-pack);
}

/* ---------- Panel wyszukiwania (pod belką, jak panel mega menu) ---------- */

.gs-hc__search {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  right: 0;
  z-index: 1;
  display: grid;
  justify-items: center;
  padding: 24px var(--gs-hc-pad);
  border-radius: var(--v2-r-card);
  background: var(--gs-bg);
  box-shadow: var(--gs-shadow-float);
}

.gs-hc.is-bar .gs-hc__search {
  top: calc(100% + 1px);
  border-radius: 0 0 var(--v2-r-card) var(--v2-r-card);
}

.gs-hc__search[hidden] {
  display: none;
}

/* Pole wyszukiwania V2 (też w szufladzie): 52 px, pigułka, obrys 3:1. */
html.v2 .gs-search {
  position: relative;
  display: flex;
  width: min(100%, 640px);
  height: 52px;
  border: 1px solid var(--gs-line-strong);
  border-radius: var(--v2-r-control);
  background: var(--gs-bg);
  transition: border-color var(--v2-t-control);
}

html.v2 .gs-search:focus-within {
  border-color: var(--v2-ink);
  outline: 2px solid var(--gs-focus);
  outline-offset: 1px;
}

html.v2 .gs-search__input {
  flex: 1;
  min-width: 0;
  padding: 0 8px 0 20px;
  border: 0;
  border-radius: inherit;
  background: transparent;
  font-size: 16px;
  outline: 0;
  appearance: none;
}

html.v2 .gs-search__input::placeholder {
  color: var(--v2-muted);
  opacity: 1;
}

html.v2 .gs-search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

html.v2 .gs-search__submit {
  display: grid;
  place-items: center;
  flex: none;
  width: 52px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--v2-ink);
  cursor: pointer;
}

/* ---------- Mega menu (szyna z kafelkami) ----------
   Na górze strony panel unosi się 12 px pod pigułką, w jej szerokości, z pełnym promieniem. Na listwie
   wisi pod linią belki na całą szerokość okna; tekst panelu zaczyna się na linii logo. Za panelem strona
   przygasa (desktronic: rgba(25,25,28,.6); u nas ink 40%), klik w przyciemnienie zamyka panel. */

@media (min-width: 1024px) {
  .gs-hc .gs-mega,
  .gs-hc .gs-mega-shell {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    right: 0;
    z-index: 1;
    border-radius: var(--v2-r-card);
    background: var(--gs-bg);
    box-shadow: var(--gs-shadow-float);
  }

  .gs-hc .gs-mega {
    --gs-mega-pad: 32px;
    max-height: calc(100dvh - var(--gs-hc-inset) - var(--gs-hc-band) - 2 * var(--gs-hc-gap) - var(--gs-hc-pill-h) - 12px);
    padding: 32px var(--gs-mega-pad) 36px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .gs-hc.is-bar .gs-mega,
  .gs-hc.is-bar .gs-mega-shell {
    top: calc(100% + 1px);
    border-radius: 0 0 var(--v2-r-card) var(--v2-r-card);
  }

  .gs-hc.is-bar .gs-mega {
    --gs-mega-pad: max(var(--gs-hc-pad), calc(50% - var(--gs-hc-max) / 2));
    max-height: calc(100dvh - var(--gs-hc-band) - var(--gs-hc-bar-h) - 24px);
  }

  /* Powłoka (js/megamenu.js, [data-mega-morph]): biel, cień i promień ma powłoka, a panel w niej to sama
     treść w przepływie (jego wysokość, z max-height i przewijaniem, wyznacza wysokość powłoki). Przy
     przełączeniu powłoka płynie do wysokości nowej treści i przycina obie; wyjeżdżający panel leży na
     nowym. Bez JS panele zostają samodzielnymi kartami (reguły wyżej). */
  .gs-hc .gs-mega-shell {
    overflow: hidden;
  }

  .gs-hc .gs-mega-shell[hidden] {
    display: none;
  }

  .gs-hc .gs-mega-shell > .gs-mega {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: auto;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    animation: none;
  }

  .gs-hc .gs-mega-shell > .gs-mega.is-leaving {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
  }

  /* Waga i ruch kafli jak na stronie głównej (runda 1): wiersze szyny i podpisy 500, zdjęcie +3% w 0,4 s. */
  .v2-header .gs-mega__casc--mc .gs-mega__key,
  .v2-header .gs-mega__casc--mc .gs-mega__ctile-label {
    font-weight: 500;
  }

  .v2-header .gs-mega__casc--mc .gs-mega__ctile-img {
    transition: transform var(--v2-t-image);
  }

  .v2-header .gs-mega__casc--mc .gs-mega__ctile:hover .gs-mega__ctile-img {
    transform: scale(1.03);
  }

  .v2-header::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 39;
    background: color-mix(in srgb, var(--v2-ink) 40%, transparent);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--v2-t-ui), visibility 0s linear var(--gs-dur-fast);
  }

  .v2-header.is-mega-open::before {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--v2-t-ui);
  }

  .gs-hc__menu {
    display: none;
  }
}

/* Węższy desktop: pozycje bliżej siebie, mniejsze logo; nawigacja centrowana w wolnym miejscu. */
@media (min-width: 1024px) and (max-width: 1279px) {
  .gs-hc__inner {
    grid-template-columns: auto 1fr auto;
    gap: 16px;
  }

  .gs-hc__nav {
    justify-self: center;
  }

  .gs-hc__list {
    gap: 20px;
  }

  .gs-hc__link {
    font-size: 14px;
  }

  .gs-hc__brand .gs-logo {
    font-size: 21px;
  }
}

/* ---------- Mobile: karta 8 px, pasek 32 z jednym wyróżnikiem, pigułka 52, listwa 56 ---------- */

@media (max-width: 1023px) {
  html.v2 {
    scroll-padding-top: 100px;
  }

  .gs-hc {
    --gs-hc-inset: 8px;
    --gs-hc-band: 32px;
    --gs-hc-pill-h: 52px;
    --gs-hc-bar-h: 56px;
    --gs-hc-gap: 12px;
    --gs-hc-pad: 16px;
  }

  .gs-hc__band-item {
    font-size: 12px;
  }

  .gs-hc__band-list {
    justify-content: center;
  }

  .gs-hc__band-item:not(:first-child) {
    display: none;
  }

  .gs-hc__inner {
    grid-template-columns: 1fr auto;
  }

  .gs-hc__nav,
  .gs-hc__tool--fav {
    display: none;
  }

  .gs-hc__brand .gs-logo {
    font-size: 22px;
  }

  .gs-hc .gs-mega-shell {
    display: none;
  }

  .gs-hc__search {
    top: calc(100% + 8px);
    padding: 16px;
    border-radius: var(--v2-r-panel);
  }
}

/* ---------- Warianty paska wyróżników (?topbar=, lib/page-v2.mjs; domyślny hero = reguły wyżej) ----------
   top:  zwykły pasek na całą szerokość przy samej górze okna, 24 px niżej karta hero bez pasa (css/v2/hero.css),
         pigułka 24 px od góry karty jak zwykle. Po przewinięciu stan jak w wariancie hero: pasek nad listwą,
         zwija się przy przewijaniu w dół i wraca w górę. Na górze stanu karty pasek już leży na swoim miejscu,
         więc przejście w listwę rusza samą pigułkę.
   none: bez paska; pigułka 24 px od góry karty, listwa sama. Wyróżniki są w hero pod przyciskiem.
   Stany ograniczone do .gs-hc:not(.is-bar), żeby nie przebić reguł .is-bar i .is-band-hidden. */

html.v2[data-v2-topbar='top'] {
  --v2-topbar-gap: 24px;
}

/* Wariant top: pasek w kolorze --v2-pack z ciemnym tekstem (decyzja Piotra 19.10), także po przewinięciu nad listwą. */
html.v2[data-v2-topbar='top'] .gs-hc__band {
  --v2-band: var(--v2-pack);
  --v2-on-band: var(--v2-ink);
}

html.v2[data-v2-topbar='top'] .gs-hc:not(.is-bar) .gs-hc__band {
  margin: 0;
  border-radius: 0;
}

html.v2[data-v2-topbar='top'] .gs-hc:not(.is-bar) .gs-hc__bar {
  margin-top: calc(var(--v2-topbar-gap) + var(--gs-hc-gap));
}

html.v2[data-v2-topbar='none'] {
  scroll-padding-top: 80px;
}

html.v2[data-v2-topbar='none'] .gs-hc__band {
  display: none;
}

html.v2[data-v2-topbar='none'] .gs-hc:not(.is-bar) .gs-hc__bar {
  margin-top: calc(var(--gs-hc-inset) + var(--gs-hc-gap));
}

@media (min-width: 1024px) {
  html.v2[data-v2-topbar='top'] .gs-hc:not(.is-bar) .gs-mega {
    max-height: calc(100dvh - var(--gs-hc-band) - var(--v2-topbar-gap) - 2 * var(--gs-hc-gap) - var(--gs-hc-pill-h) - 12px);
  }

  html.v2[data-v2-topbar='none'] .gs-hc:not(.is-bar) .gs-mega {
    max-height: calc(100dvh - var(--gs-hc-inset) - 2 * var(--gs-hc-gap) - var(--gs-hc-pill-h) - 12px);
  }

  html.v2[data-v2-topbar='none'] .gs-hc.is-bar .gs-mega {
    max-height: calc(100dvh - var(--gs-hc-bar-h) - 24px);
  }
}

@media (max-width: 1023px) {
  html.v2[data-v2-topbar='top'] {
    --v2-topbar-gap: 16px;
  }
}
