/*
 Theme Name:   GeneratePress Child — PRINEX
 Theme URI:    https://prinex.com.pl
 Description:  Child theme GeneratePress dla sklepu PRINEX.
 Author:       PRINEX
 Template:     generatepress
 Version:      1.0.0
 Text Domain:  generatepress-child
*/

/* ============================================================
   PRINEX — CSS Variables (brand tokens)
   ============================================================ */
:root {
	--prinex-navy:       #0B457D;
	--prinex-green:      #78B833;
	--prinex-green-dark: #62992a;
	--prinex-bg:         #E8ECEF;
	/* Zolty w serwisie = JEDNO zrodlo. Zakaz definiowania odcieni zoltego lokalnie
	   w snippetach i tresciach stron. Bursztyn #F39200 to OSOBNA rola (badge handlowy,
	   ikony ostrzegawcze) i NIE jest tym tokenem. */
	--prinex-yellow:     #FFD502;

	/* Aliasy o krotszych nazwach — uzywane w CSS przenoszonym 1:1
	   z makiet Claude Design (strona glowna, kategoria, kolejne podstrony).
	   Jedno miejsce prawdy, zeby kolory nie rozjezdzaly sie miedzy stronami. */
	--navy:       #0B457D;
	--green:      #78B833;
	--green-dark: #62992a;
	--bg-light:   #E8ECEF;
	--body:       #333333;
	--white:      #FFFFFF;
	--line:       #dfe4e8;
}

/* ============================================================
   PRINEX — Fundament wspolny dla calej witryny (czcionka, naglowki,
   kreska sygnaturowa). Wczesniej te reguly byly podpiete lokalnie
   tylko do strony glownej (is_front_page) — przez co inne strony
   (np. kategoria) dziedziczyly domyslny font motywu, nie Figtree.
   ============================================================ */
/* !important: WP global-styles-inline-css ustawia body{font-family:var(--wp--preset--font-family--figtree)}
   z ta sama specyficznoscia (0,0,1) — w testach ta zmienna sporadycznie nie
   rozwiazywala sie poprawnie (cache global styles), dajac losowo fallback
   systemowy zamiast Figtree. Literalny stack + !important usuwa te niestabilnosc. */
body{ font-family:'Figtree',-apple-system,BlinkMacSystemFont,sans-serif !important; }

.sig{ width:52px; height:2px; background:var(--green); margin-bottom:22px; }
.sig.center{ margin-left:auto; margin-right:auto; }

h1, h2, h3{ color:var(--navy); font-weight:700; line-height:1.1; }

/* Defense-in-depth: elementy brandowe naglowka nie powinny zalezec od
   dziedziczenia font-family z body, gdyby coś jeszcze nadpisalo body. */
.prinex-topbar, .prinex-header, .prinex-nav a, .prinex-action{ font-family:'Figtree',-apple-system,BlinkMacSystemFont,sans-serif; }

/* ============================================================
   PRINEX — Kreska sygnaturowa nad nagłówkami sekcji
   Użycie: dodaj klasę .prinex-section-heading do dowolnego
   nagłówka (h2, h3) lub wrapperа sekcji w GenerateBlocks.
   Kreska pojawi się nad tekstem nagłówka.
   ============================================================ */
.prinex-section-heading {
	position: relative;
	padding-top: 18px;
}
.prinex-section-heading::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 50px;
	height: 2px;
	background-color: var(--prinex-green);
}

/* Wariant wycentrowany (dodaj obie klasy) */
.prinex-section-heading.is-centered::before {
	left: 50%;
	transform: translateX(-50%);
}

/* ============================================================
   PRINEX — Layout bands (z makiety Claude Design)
   ============================================================ */
.prinex-band      { width: 1440px; max-width: 100%; margin: 0 auto; }
.prinex-container { width: 1400px; max-width: 100%; margin: 0 auto; padding: 0; }

/* ============================================================
   PRINEX — Reset domyślnego nagłówka GeneratePress
   ============================================================ */
.site-header,
#masthead { display: none !important; }

/* ============================================================
   PRINEX — Top Bar
   ============================================================ */
.prinex-topbar {
  background: var(--prinex-bg);
  color: var(--prinex-navy);
  height: 44px;
  display: flex;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
  white-space: nowrap;
  width: 100%;
}
.prinex-topbar .prinex-container {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}
.prinex-tb-left { opacity: 1; }
.prinex-tb-mid  { display: flex; align-items: center; gap: 24px; }
.prinex-tb-item { display: flex; align-items: center; gap: 8px; }
.prinex-tb-item svg { width: 17px; height: 17px; color: var(--prinex-green); flex-shrink: 0; }
.prinex-tb-sep  { color: var(--prinex-navy); opacity: .28; }
/* Odstep 30 px (nie 14 z README): decyzja klienta 28.07.2026. README zakladalo 14 px
   PLUS separator "|" po srodku, co dawalo 31 px miedzy napisami. Separatory zostaly
   usuniete, wiec sam gap przejmuje caly odstep — inaczej pozycje zbliżylyby sie o polowe
   i grupowanie ikona-etykieta by sie rozmylo (7 px ikona-tekst vs tylko 14 px miedzy pozycjami). */
.prinex-tb-right { display: flex; align-items: center; gap: 30px; justify-self: end; }
/* BEZ wlasnej font-weight: prawa strefa ma byc tym samym fontem co komunikat
   "DARMOWA DOSTAWA" w srodku (decyzja klienta), czyli dziedziczy 700 z .prinex-topbar.
   README podawal tu 600 — swiadome odstepstwo. */
.prinex-tb-right a {
  display: flex; align-items: center; gap: 7px;
  color: var(--prinex-navy); text-decoration: none; opacity: 1;
  transition: color .15s;
}
.prinex-tb-right a svg { width: 16px; height: 16px; color: var(--prinex-green); }
/* Hover w topbarze: TYLKO kolor, bez podkreslenia. Zielen podstawowa (nie ciemna) —
   ujednolicone z hoverem menu i prawej strefy naglowka. */
.prinex-tb-right a:hover { color: var(--prinex-green); }
/* Ikony pelne (fill) w topbarze: telefon i kolo ratunkowe. fill-rule evenodd jest
   konieczne — bez niego srodek kola ratunkowego zalewa sie kolorem. */
.prinex-topbar .icf { fill: currentColor; fill-rule: evenodd; }

/* ============================================================
   PRINEX — Główny nagłówek (sticky, biały)
   ============================================================ */
.prinex-header {
  background: #fff;
  border-bottom: 1px solid #e4e8eb;
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 999;
  transition: box-shadow .2s ease;
}
.prinex-header.is-stuck { box-shadow: 0 6px 22px rgba(11,69,125,.10); }
/* Belka WP admina jest fixed na samej górze (32px / 46px na wąskim ekranie)
   i ma wyzszy z-index niz nasz header — bez tego przesuniecia zakrywa logo
   gdy menu przyklei sie do top:0. Dotyczy tylko zalogowanych (np. tryb
   Coming Soon) — realni odwiedzajacy bez admin bara dostają top:0. */
body.admin-bar .prinex-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .prinex-header { top: 46px; }
}
/* DWIE strefy, nie trzy. Srodek nagłówka to WOLNA PRZESTRZEN wynikajaca z
   space-between — swiadomie pusty, bez zadnego elementu ani spacera.
   height 88 + border-bottom 1 = 89 px calkowitej wysokosci. Ta suma jest czytana
   NA ZYWO przez #13 place(), #15, #28 i #56 headerH() — nie zmieniac. */
.prinex-header .prinex-container {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* Lewa strefa: logo + menu w JEDNYM flexie.
   gap 46 przy symetrycznym paddingu 16 px pozycji menu daje optyczne 30 px od
   prawej krawedzi logo do pierwszej litery. NIE zamieniac na gap 30 bez paddingu —
   traci sie wtedy pole klikalne i symetrie kreski. */
.prinex-hd-left {
  display: flex;
  align-items: center;
  gap: 46px;
  min-width: 0;
}

/* Nawigacja */
.prinex-nav {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: -16px;
}
.prinex-nav a {
  font-size: 16.5px;
  font-weight: 700;
  color: var(--prinex-navy);
  letter-spacing: 0.1px;
  display: flex;
  align-items: center;
  gap: 9px;
  position: relative;
  padding: 9px 16px;
  white-space: nowrap;
  text-decoration: none;
  transition: color .2s ease;
}

/* Zielona kreska — WYLACZNIE hover. Brak stalego stanu aktywnego (decyzja
   swiadoma, nie przeoczenie: current-menu-item celowo NIE jest podpinany).
   Kreska siedzi na samym TEKSCIE etykiety, nie na polu klikalnym, i NIE obejmuje
   badge'a — dlatego etykieta jest owinieta w span .prinex-lbl (link_before oraz
   link_after w wp_nav_menu). Regula postawiona na <a> objelaby padding i badge. */
.prinex-nav .prinex-lbl {
  position: relative;
  display: inline-block;
  padding-bottom: 7px;
  margin-bottom: -7px;
}
.prinex-nav .prinex-lbl::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--prinex-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.prinex-nav a:hover .prinex-lbl::after { transform: scaleX(1); }
.prinex-nav a:hover { color: var(--prinex-green); }

/* Badge przy pozycji menu. Przypisanie = klasa CSS pozycji menu w panelu WP
   (menu-item-hit), nie pole opisu. Tlo WYLACZNIE z tokenu --prinex-yellow:
   zolty w serwisie ma jedno zrodlo i zakaz definiowania odcieni lokalnie. */
.prinex-nav .prinex-pill {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #1A1A1A;
  background: var(--prinex-yellow);
  padding: 5px 8px;
  border-radius: 5px;
  line-height: 1;
  white-space: nowrap;
  flex: none;
}

/* Logo — w lewej strefie, przy krawedzi kontenera */
.prinex-brand {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: none;
}
.prinex-brand a { display: flex; align-items: center; }
.prinex-brand svg {
  width: 130px;
  height: auto;
  display: block;
}

/* Akcje — prawa strefa */
.prinex-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
  flex: none;
}
.prinex-action {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--prinex-navy);
  font-weight: 500;
  font-size: 15px;
  text-decoration: none;
  cursor: pointer;
  transition: color .15s;
  position: relative;
}
.prinex-action svg { width: 22px; height: 22px; flex-shrink: 0; }
.prinex-action:hover { color: var(--prinex-green); }

/* Koszyk — licznik */
.prinex-cart-count {
  position: absolute;
  top: -7px;
  right: -10px;
  background: var(--prinex-green);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  line-height: 1;
}

/* ------------------------------------------------------------
   BRAMKA DESKTOPU — wartosci, ktore ROZLALYBY sie na mobile.
   Blok mobilny (max-width:1023px) nadpisuje tylko kilka wlasciwosci, wiec kazda
   zmiana wartosci bazowej jest widoczna takze na telefonie. Mobile ma pozostac
   BEZ ZMIAN wobec stanu sprzed przebudowy (logo 130 px, ikony 22 px, odstep 24 px),
   dlatego nowe wartosci projektu zyja wylacznie tutaj.
   ------------------------------------------------------------ */
@media (min-width: 1024px) {
  .prinex-brand svg { width: 116px; }
  .prinex-header-actions { gap: 26px; }
  .prinex-action svg { width: 23px; height: 23px; }
}

/* ============================================================
   === GLOBALNE MENU/NAGŁÓWEK — NIE NADPISYWAĆ ===

   Element 161 (Theme Builder, hook generate_header) renderuje się
   identycznie na KAŻDEJ stronie — to jest jedyny, globalny nagłówek
   serwisu. Sekcje wyżej ("PRINEX — Top Bar", "PRINEX — Główny nagłówek")
   ustalają pełny wygląd. Poniższe reguły są celowym "zamkiem" (lock) na
   4 właściwości, które już dwukrotnie zostały przypadkiem ubite przez
   style pojedynczych stron (np. ".prinex-cat-naklejki a{color:inherit}"
   miało wyższą specyficzność niż ".prinex-nav a" i gasiło navy/700 na
   kategorii — patrz historia naprawy). Dlatego: kotwiczone na #prinex-header
   (ID) + .prinex-nav, literalne wartości hex (NIE zmienne --prinex-*, żeby
   przyszły snippet nie mógł zgasić efektu przez przedefiniowanie zmiennej),
   i !important — WYŁĄCZNIE na te 4 właściwości, nic więcej. Każdy nowy
   snippet per-strona MUSI zawężać swoje selektory do .inside-article /
   własnych wrapperów, NIE do <body> czy gołych tagów — patrz audyt w
   snippetach 11/12 (komentarze "WAZNE: scope na...").
   ============================================================ */
#prinex-header .prinex-nav a {
  font-family: 'Figtree', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.1px !important;
  color: #0B457D !important;
}
#prinex-header .prinex-nav a:hover {
  color: #78B833 !important;
}
#prinex-header {
  position: sticky !important;
}
body:not(.admin-bar) #prinex-header {
  top: 0 !important;
}
body.admin-bar #prinex-header {
  top: 32px !important;
}
@media (max-width: 782px) {
  body.admin-bar #prinex-header {
    top: 46px !important;
  }
}


/* ============================================================
   WP nav menu — wsparcie dla <li> (items_wrap='%3$s')
   ============================================================ */
.prinex-nav > li { list-style: none; margin: 0; padding: 0; }

/* STAN AKTYWNY — CELOWO NIE ISTNIEJE.
   Do 28.07.2026 aktywna pozycja miala stala zielona kreska (current-menu-item oraz
   current-menu-ancestor). Zostalo to USUNIETE swiadoma decyzja — kreska pojawia sie
   wylacznie na hover. Klasa .active z makiety pozostaje niezaimplementowana, pod
   przyszle decyzje. NIE przywracac podpiecia pod current-menu-item bez zgody. */

/* Wyszarzone pozycje "wkrótce" (np. kategoria, ktora jeszcze nie powstala) */
#prinex-header .prinex-nav .menu-item-disabled > a {
  color: #a8b4be !important;
  pointer-events: none !important;
  cursor: default !important;
}
#prinex-header .prinex-nav .menu-item-disabled > a:hover { color: #a8b4be !important; }
/* Kreska hover wisi teraz na spanie etykiety (transform), nie na <a> (width).
   pointer-events:none i tak nie dopuszcza hoveru — to zabezpieczenie warstwowe. */
#prinex-header .prinex-nav .menu-item-disabled > a .prinex-lbl::after,
#prinex-header .prinex-nav .menu-item-disabled > a:hover .prinex-lbl::after {
  transform: scaleX(0) !important;
}

/* Współpraca — link tekstowy w header-actions (prawy panel), styl nav */
.prinex-action.prinex-action--text {
  font-size: 15px;
  font-weight: 500;
  gap: 8px;
  padding: 0;
}
/* Hover kreska — wszystkie akcje w prawej kolumnie nagłówka */
.prinex-header-actions .prinex-action::after {
  content: '';
  position: absolute;
  left: 0;
  width: 0;
  bottom: -3px;
  height: 2px;
  background: var(--prinex-green);
  transition: width .2s ease;
}
.prinex-header-actions .prinex-action:hover::after { width: 100%; }

/* Powitanie — subtelny tekst, bez kreski hover.
   Zalogowany z imieniem: "Serwus <em>Marcin</em>!" — em BEZ kursywy, ten sam granat.
   Wylogowany ORAZ zalogowany bez wypelnionego imienia: samo "Serwus". */
.prinex-greeting {
  font-size: 15px;
  font-weight: 500;
  color: var(--prinex-navy);
  white-space: nowrap;
  cursor: default;
  user-select: none;
}
.prinex-greeting em {
  font-style: normal;
  color: var(--prinex-navy);
}

/* ============================================================
   PRINEX — Stopka (tło jasne, wg mockupu strona-glowna-unpacked.html)
   ============================================================ */
.prinex-footer {
  background: var(--prinex-bg);
  color: var(--prinex-navy);
  width: 100%;
  border-top: 1px solid #d6dce0;
}
.prinex-footer .prinex-container { padding-top: 64px; }

.prinex-footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 54px;
}

/* Kolumna lewa — brand */
.prinex-footer-brand svg {
  width: 130px;
  height: auto;
  display: block;
  margin-bottom: 24px;
}

.prinex-footer-sig {
  width: 52px;
  height: 2px;
  background: var(--prinex-green);
  margin-bottom: 18px;
}
.prinex-footer-brand p {
  font-size: 15px;
  color: #5a6570;
  max-width: 280px;
  line-height: 1.6;
}

/* Kolumny linków */
.prinex-footer-col h5 {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: 18px;
  color: var(--prinex-navy);
}
.prinex-footer-col a {
  display: block;
  font-size: 15px;
  color: #5a6570;
  margin-bottom: 8px;
  text-decoration: none;
  transition: color .15s;
}
.prinex-footer-col a:hover { color: var(--prinex-green-dark); }

/* Dolny pasek stopki */
.prinex-footer-bottom {
  padding: 22px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(11,69,125,.16);
}
.prinex-footer-bottom p {
  font-size: 14px;
  color: #5a6570;
}
.prinex-footer-bottom-right {
  display: flex;
  gap: 22px;
}
.prinex-footer-bottom-right a {
  font-size: 14px;
  color: #5a6570;
  text-decoration: none;
  transition: color .15s;
}
.prinex-footer-bottom-right a:hover { color: var(--prinex-green-dark); }

/* ============================================================
   PRINEX — Stopka, responsywność (witryna globalna, nie tylko strona główna)
   ============================================================ */
@media (max-width: 768px) {
  .prinex-footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .prinex-footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
}
@media (max-width: 480px) {
  .prinex-footer-top { grid-template-columns: 1fr; gap: 28px; }
  .prinex-footer-bottom-right { flex-wrap: wrap; gap: 14px; }
}

/* ============================================================
   PRINEX — Sticky header JS-class
   ============================================================ */
/* MOBILE — BEZ ZMIAN wobec stanu sprzed przebudowy naglowka (28.07.2026):
   topbar ukryty, wysokosc 68 + 1 px obramowania, logo 130 px wysrodkowane w lewej
   kolumnie, akcje po prawej bez etykiet. Desktop przeszedl na flex, wiec siatke
   trzeba tu przywrocic JAWNIE — inaczej logo przeskoczyloby na lewa krawedz. */
@media (max-width: 1023px) {
  .prinex-topbar { display: none; }
  .prinex-header .prinex-container {
    height: 68px;
    display: grid;
    grid-template-columns: 1fr auto;
    justify-content: initial;
  }
  .prinex-hd-left { gap: 0; }
  .prinex-brand { flex: 1; }
  .prinex-nav { display: none; }
  .prinex-header-actions .prinex-action span { display: none; }
  /* Powitanie goscia nie istnialo na mobile przed przebudowa — nie dodajemy go. */
  .prinex-greeting--out { display: none; }
}

/* ============================================================
   PRINEX — Trust Badges (globalny — strona główna + koszyk + inne)
   Użycie: <?php get_template_part('inc/prinex-trust'); ?>
   ============================================================ */
.ic { stroke: currentColor; stroke-width: 1.75; fill: none; stroke-linecap: round; stroke-linejoin: round; }
/* KANON paska trust (jedno źródło — komponent #61). Karta identyczna wszędzie; szerokość
   zewnętrzna wg kontenera strony (polityka B): max-width 1400 + padding 24 → home i stopka
   inner 1352 (cols 311); produkt zostaje w kontenerze GP .inside-article (inner 1312, cols 301).
   Margines pozycyjny (margin-bottom) = per kontekst (home 36, stopka 0, produkt -4), NIE tutaj. */
.trust { background: var(--white); max-width: 1400px; margin-left: auto; margin-right: auto; border-radius: 10px; box-sizing: border-box; padding-left: 24px; padding-right: 24px; }
.trust .container {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 32px 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
}
.trust-item { display: flex; align-items: flex-start; gap: 16px; }
.trust-item .t-ic {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50px;
  background: var(--bg-light);
  display: flex;
  align-items: center;
  justify-content: center;
}
.trust-item .t-ic svg { width: 26px; height: 26px; color: var(--green); }
.trust-item h4 { font-size: 17px; font-weight: 700; color: var(--navy); margin-bottom: 5px; }
.trust-item p { font-size: 15px; color: #5a6570; line-height: 1.5; margin: 0; }

/* WYRÓWNANIE DO STOPKI na stronach z KONTENEROWYM układem GP (kasa page-11 + thankyou/order-received):
   tam `.inside-article` ma padding → kolumna treści węższa/wcięta, a `.trust{max-width:1400}` jest przycięty
   (nie własnym max-width, lecz paddingiem rodzica) → nie licuje ze stopką (globalną, pełna szerokość).
   Wyłamujemy pasek z tego paddingu: margin-inline = padding `.inside-article` → pasek dochodzi do krawędzi
   `.grid-container` = stopka. WARTOŚĆ SPRZĘŻONA z GP (zmierzone: padding 40 dla ≥769px, 30 dla ≤768px —
   przełącznik na max-width:768). Równość margin==padding gwarantuje ZERO przewisu (brak poziomego scrolla
   na 380). HOME i KOSZYK = pełna szerokość, INNY body-class → NIETKNIĘTE. Wnętrze karty (#61) bez zmian.
   KONTO (body.woocommerce-account) świadomie POMINIĘTE — do zmierzenia po zalogowaniu (pomiar zablokowany). */
body.woocommerce-checkout .trust,
body.woocommerce-order-received .trust { margin-left: -40px; margin-right: -40px; }
@media (max-width: 768px) {
  body.woocommerce-checkout .trust,
  body.woocommerce-order-received .trust { margin-left: -30px; margin-right: -30px; }
}

/* ============================================================
   PRINEX — Complianz: „Ustawienia cookies" jako przycisk revoke w kolumnie INFORMACJE
   Complianz binduje click na `button.cmplz-manage-consent` → otwiera panel zgody
   (RODO: ścieżka wycofania zgody). Styl = jak linki .prinex-footer-col a (blok, 15px).
   position:static/float:none — zabezpieczenie przed position:fixed z reguł Complianz.
   ============================================================ */
.prinex-footer-col button.cmplz-manage-consent {
  display: block;
  font-family: inherit;
  font-size: 15px;
  font-weight: inherit;
  color: #5a6570;
  background: none;
  border: 0;
  padding: 0;
  margin: 0 0 8px;
  line-height: inherit;
  text-align: left;
  position: static;
  float: none;
  cursor: pointer;
  text-decoration: none;
  transition: color .15s;
}
.prinex-footer-col button.cmplz-manage-consent:hover { color: var(--prinex-green-dark); }

/* PRINEX — Complianz: pływający tab „Ustawienia cookies" ukryty.
   Rewokacja zgody dostępna w stopce (button.cmplz-manage-consent). Chowamy sam
   kontener po ID — footer button (po klasie) pozostaje widoczny i działa. */
#cmplz-manage-consent { display: none !important; }
