/* Baner i okno zgód cookie – arkusz **statyczny** dla biblioteki
   `static/vendor/cookieconsent/cookieconsent.min.js`.

   Dlaczego osobny plik, a nie styl wstrzykiwany przez bibliotekę. Biblioteka składa swój CSS
   w JavaScripcie i wkłada go do strony jako `<style>` z treścią – a `style-src 'self'` z naszej
   polityki (`main/settings.CONTENT_SECURITY_POLICY`) takiego bloku nie wykona, bo nie ma
   w niej `'unsafe-inline'` ani nonce'ów. W lg-www-2025, skąd komponent pochodzi, polityka ma
   `'unsafe-inline'` i problem nie występuje; tutaj nie wolno go dodać, więc:

   1. biblioteka (>= 1.2.0) ma opcję `cspStrict: true`, która wyłącza wstrzykiwanie `<style>`
      (nasza kopia nie ma już własnych łat; opcję ustawia `static/js/analityka.js`),
   2. treść jej arkusza stoi tutaj, w pliku – więc baner wygląda tak samo, a przeglądarka nie
      ma czego blokować (`tests/test_csp.py` nie zobaczy ani jednego inline'u).

   Reguły niżej, do sekcji „Marka Legal Geek”, są **zrzutem** arkusza biblioteki z naszym
   motywem (granat `#011126` + żółty `#FFCC05`). Po podmianie pliku biblioteki odtwarza się go
   tą samą drogą – procedura w `README.md`, sekcja o banerze zgód. Ręcznych poprawek nie
   wpisuj w tej części: wpisz je w sekcji „Marka Legal Geek”, która stoi po niej i wygrywa
   kolejnością.
*/

#cconsent-bar, #cconsent-bar * { box-sizing:border-box }
#cconsent-bar .visually-hide, #cconsent-modal .visually-hide { position: absolute !important; overflow: hidden !important; clip-path: rect(1px 1px 1px 1px) !important; width: 1px !important; height: 1px !important; }
#cconsent-bar { background-color:#FFCC05; color:#011126; padding:15px; text-align:right; font-family:inherit; font-size:14px; line-height:18px; position:fixed; bottom:0; inset-inline:0; z-index:9998; transform: translateY(0); transition: transform .6s ease-in-out; transition-delay: .3s;}
#cconsent-bar.ccb--hidden {transform: translateY(100%); display:block; visible:hidden;}
#cconsent-bar .ccb__wrapper { display:flex; flex-wrap:wrap; justify-content:space-between; max-width:1800px; margin:0 auto;}
#cconsent-bar .ccb__left { align-self:center; text-align:left; margin: 15px 0;}
#cconsent-bar .ccb__right { align-self:center; white-space: nowrap;}
#cconsent-bar .ccb__right > div {display:inline-block; color:#FFF;}
#cconsent-bar button { line-height:normal; font-size:14px; border:0; padding:10px 10px; color:#FFCC05; background-color:#011126;}
#cconsent-bar button.consent-give { line-height:normal; font-size:14px; border:none; padding:10px 10px; color:#FFCC05; background-color:#011126;}
#cconsent-bar button.consent-decline { line-height:normal; font-size:14px; border:none; padding:10px 10px; color:#011126; background-color:#FFCC05; margin-right: 10px; border: 1px solid #011126}
#cconsent-bar button.ccb__edit { appearance:none; margin-right:15px; border:0; padding:0; text-decoration:underline; color:#011126; background:none; }
#cconsent-bar a:hover, #cconsent-bar button:hover { cursor:pointer; }
#cconsent-bar button:focus-visible {box-shadow: 0 0 0 2px rgb(40 168 52 / 75%);}
#cconsent-modal, #cconsent-init-modal { display:none; font-size:14px; line-height:18px; color:#666; width: 100vw; height: 100vh; position:fixed; left:0; top:0; right:0; bottom:0; font-family:sans-serif; font-size:14px; background-color:rgba(0,0,0,0.6); z-index:9999; align-items:center; justify-content:center;}
@media (max-width: 600px) { #cconsent-modal, #cconsent-init-modal { height: 100% }
}
#cconsent-modal button, #cconsent-init-modal button { border: 0 }
#cconsent-modal strong, #cconsent-init-modal strong {color:#333; margin-top:0}
#cconsent-modal.ccm--visible, #cconsent-init-modal.ccm--visible {display:flex}
#cconsent-modal .ccm__content, #cconsent-init-modal .ccm__content { max-width:600px; max-height:600px; overflow-Y:auto; background-color:#EFEFEF; display:flex; flex-direction:column; justify-content:space-between; }
@media (max-width: 600px) { #cconsent-modal .ccm__content, #cconsent-init-modal .ccm__content { max-width:100vw; height:100%; max-height:initial; }}
#cconsent-modal .ccm__content > .ccm__content__heading, #cconsent-init-modal .ccm__content > .ccm__content__heading { border-bottom:1px solid #D8D8D8; padding:35px 35px 20px; background-color:#EFEFEF; position:relative; }
#cconsent-modal .ccm__content > .ccm__content__heading strong, #cconsent-init-modal .ccm__content > .ccm__content__heading strong { font-size:21px; font-weight:600; color:#333; margin:0 }
#cconsent-modal .ccm__content > .ccm__content__heading p, #cconsent-init-modal .ccm__content > .ccm__content__heading p { margin-top:1rem; margin-bottom:1rem; }
#cconsent-modal .ccm__content > .ccm__content__heading .ccm__cheading__close, #cconsent-init-modal .ccm__content > .ccm__content__heading .ccm__cheading__close { appearance:none; padding:0; border:0; font-weight:600; color:#888; cursor:pointer; font-size:26px; position:absolute; right:15px; top:15px; width:26px; height:26px; background:none; text-align:center; }
#cconsent-modal .ccm__content > .ccm__content__heading .ccm__cheading__close:focus-visible, #cconsent-init-modal .ccm__content > .ccm__content__heading .ccm__cheading__close:focus-visible { box-shadow: 0 0 0 0.25rem rgb(40 168 52 / 75%); }
#cconsent-modal .ccm__content > .ccm__content__body { background-color:#FFF; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup { margin:0; border-bottom: 1px solid #D8D8D8; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head {color:#333; font-weight:600; cursor:pointer; position:relative; padding:0; margin:0; transition: background-color .5s ease-out; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head:hover { background-color:#F9F9F9 }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head__status { order: 1; position:absolute; left:35px; font-weight: 600; display:inline-block; margin-right: 20px; pointer-events: none; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head__status.ccm__tab-head__status--checked { font-size:1em; color:#28a834; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head__status.ccm__tab-head__status--unchecked { font-size:1.4em; color:#e56385; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head__text { order: 2; pointer-events: none; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-head .ccm__tab-head__icon-wedge { transition: transform .3s ease-out; transform-origin: center; position:absolute;right:25px; top:50%; transform:rotate(0deg); transform:translateY(-50%); order: 3;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-head .ccm__tab-head__icon-wedge > svg { pointer-events: none; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-head .ccm__tab-head__icon-wedge { transform:translateY(-50%) rotate(-180deg) }
#cconsent-modal .ccm__tab-trigger { appearance: none; background: none; display: flex; flex-direction: row; width: 100%; padding:17px 35px 17px 56px; color:#333; font-weight:600; }
#cconsent-modal .ccm__tab-trigger:focus-visible {box-shadow: 0 0 0 2px rgb(40 168 52 / 75%);}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content {padding:0; margin:0}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-content { overflow: hidden; display: none; transition: all .5s ease-out; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-content__inner { display: flex; flex-direction: row; padding:25px 35px; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-head { background-color:#f9f9f9 }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-content { max-height: 900px; display: block; }
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose {order:1;}
@media (max-width: 600px) { #cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-content {flex-direction:column}
}
@media (max-width: 600px) { #cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose { margin-bottom:20px; }
}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch-component {display:flex; margin-right:35px; align-items:center;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch__status {font-weight:600;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch-group {background:none; width:40px; height:20px; margin:0 10px; position:relative;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch__slider {position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius:10px; transition: .4s; pointer-events: none;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch__slider:before {position: absolute; content: ""; height: 12px; width: 12px; left: 4px; bottom: 4px; background-color: white; border-radius:50%; transition: .4s;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch-group[aria-checked="true"] .ccm__switch__slider {background-color: #28A834;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch-group:focus-visible {box-shadow: 0 0 0 2px rgb(40 168 52 / 75%);}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__choose .ccm__switch-group[aria-checked="true"] .ccm__switch__slider:before {-webkit-transform: translateX(20px); -ms-transform: translateX(20px); transform: translateX(20px);}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__desc {order:2;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content strong {font-size:18px; margin-bottom:10px; line-height:1;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content p {color:#444; margin-bottom:0}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list:not(:empty) {margin-top:30px;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list .ccm__list__title {color:#333; font-weight:600;}
#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list ul { margin:15px 0; padding-left:15px }
#cconsent-modal .ccm__footer, #cconsent-init-modal .ccm__footer { padding:35px; background-color:#EFEFEF; text-align:center; display: flex; align-items:center; justify-content:flex-end; }
#cconsent-modal .ccm__footer button, #cconsent-init-modal .ccm__footer button { line-height:normal; font-size:14px; transition: background-color .5s ease-out; background-color:#011126; color:#FFCC05; border:none; padding:13px; min-width:110px; border-radius: 2px; cursor:pointer; height: 100%; }
#cconsent-modal .ccm__footer button:hover, #cconsent-init-modal .ccm__footer button:hover { background-color:#000012; }
#cconsent-modal .ccm__footer button:focus-within, #cconsent-init-modal .ccm__footer button:focus-within { box-shadow: 0 0 0 0.25rem rgb(40 168 52 / 75%); }
#cconsent-modal .ccm__footer button + button, #cconsent-init-modal .ccm__footer button + button { margin-left: 10px; }

/* ─── Marka Legal Geek ───────────────────────────────────────────────────────────────────
   Poprawki na nasz wygląd. Treść i zachowanie banera zostają takie jak w lg-www-2025 (ten
   sam komponent obsługuje oba serwisy Legal Geek) – tu zmienia się tylko to, co widać:
   typografia z tokenów marki, granatowy przycisk odmowy i żółty pierścień fokusu zamiast
   domyślnego zielonego z biblioteki.
   Tokeny (`--navy`, `--yellow`, …) wchodzą z `panel.css`, który ładuje się przed tym plikiem. */
#cconsent-bar, #cconsent-modal, #cconsent-init-modal {
  font-family: var(--font-body, system-ui, sans-serif);
}
#cconsent-bar {
  min-height: 25vh;
  display: flex;
  align-items: center;
  padding: var(--space-lg, 1.5rem) var(--space-md, 1rem);
  font-size: 1rem;
  line-height: 1.5;
  box-shadow: 0 -4px 16px rgb(1 17 38 / 18%);
}
#cconsent-bar .ccb__wrapper { width: 100%; align-items: center; gap: var(--space-md, 1rem); }
#cconsent-bar .ccb__left { flex: 1 1 60%; font-size: 1rem; line-height: 1.5; }
#cconsent-bar .cc-text { color: var(--navy, #011126); }
#cconsent-bar .cc-text a { color: var(--navy, #011126); font-weight: 600; text-decoration: underline; }
#cconsent-bar .cc-text a:hover, #cconsent-bar .cc-text a:focus { text-decoration: none; }
#cconsent-bar button.ccb__edit { color: var(--navy, #011126); text-decoration: underline; font-weight: 600; }
/* Odnośnik „Polityka cookies” dokładany do paska przez `analityka.js` – biblioteka nie ma na
   niego miejsca w swoim szablonie, więc odstęp i wygląd są tutaj (wzorzec z lg-www-2025). */
#cconsent-bar a.ccb__privacy {
  display: inline-block;
  margin-right: var(--space-md, 1rem);
  /* Cel dotykowy ≥ 24 px (Lighthouse `target-size`); odstępstwo od kopii z privatizer-sales. */
  padding: .5rem 0;
  border: 0;
  background: none;
  color: var(--navy, #011126);
  font-size: var(--fs-sm, 0.875rem);
  font-weight: 600;
  line-height: normal;
  text-decoration: underline;
}
#cconsent-bar a.ccb__privacy:hover, #cconsent-bar a.ccb__privacy:focus { text-decoration: none; }
#cconsent-bar button.consent-decline {
  background-color: transparent;
  color: var(--navy, #011126);
  border: 1px solid var(--navy, #011126);
}
#cconsent-bar button.consent-decline:hover {
  background-color: var(--navy, #011126);
  color: var(--yellow, #FFCC05);
}
#cconsent-bar button.consent-give { font-weight: 600; }
/* Pierścień fokusu w kolorze marki – biblioteka daje w tym miejscu zieleń, która nie jest nasza. */
#cconsent-bar button:focus-within,
#cconsent-modal .ccm__footer button:focus-within,
#cconsent-init-modal .ccm__footer button:focus-within {
  box-shadow: 0 0 0 0.25rem rgb(255 204 5 / 75%);
}
#cconsent-modal .ccm__content > .ccm__content__heading strong,
#cconsent-init-modal .ccm__content > .ccm__content__heading strong {
  font-family: var(--font-heading, system-ui, sans-serif);
  color: var(--navy, #011126);
}
@media (max-width: 48rem) {
  #cconsent-bar { padding: var(--space-md, 1rem); }
  #cconsent-bar .ccb__wrapper { flex-direction: column; align-items: stretch; }
  #cconsent-bar .ccb__left { margin: 0 0 var(--space-sm, 0.5rem); }
  #cconsent-bar .ccb__right { white-space: normal; text-align: center; }
}

/* Odnośnik „Ustawienia cookies” w stopkach obu ram (`base.html`, `pages/_strona.html`).
   To `<button>`, bo nie prowadzi pod żaden adres – wygląd odnośnika robi ten styl, nie
   atrybut `style=` (CSP go nie przepuści). Arkusz wchodzi razem z banerem, więc przycisk
   nigdy nie zostaje bez stylu. */
.zgody-link {
  appearance: none;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.zgody-link:hover { text-decoration-color: var(--yellow, #FFCC05); }
