/* Baner zgód na cookies + okno ustawień (16.10.2026, wspólne dla domen). Wygląd domeny: zmienne --zg-* w arkuszu strony (wed.css / style.css).
   Miejsce: POD nagłówkiem (--zg-top liczy zgoda.js), po prawej / na telefonie na całą szerokość. Na dole ekranu są przyciski hero, strzałki
   sliderów, telefon i formularze (pomiar qa-2026-10-16-ga4/cta.py: dół = kolizje na 6 stronach, góra = 0 na 18 stronach x 6 ekranów). */
:where(:root){
  --zg-bg:#1b2433; --zg-fg:#f6f2ec; --zg-dim:rgba(246,242,236,.78); --zg-line:rgba(246,242,236,.28); --zg-akc:#f6f2ec; --zg-akc-fg:#1b2433;
  --zg-btn-bg:transparent; --zg-btn-fg:var(--zg-fg); --zg-btn-bd:var(--zg-line); --zg-btn-h-bg:var(--zg-akc); --zg-btn-h-fg:var(--zg-akc-fg);
  --zg-r:0; --zg-btn-r:0; --zg-f-t:Georgia, serif; --zg-f:system-ui, sans-serif; --zg-f-btn:var(--zg-f);
  --zg-btn-fs:11px; --zg-btn-ls:.12em; --zg-btn-tt:uppercase; --zg-btn-fw:600; --zg-shadow:0 18px 50px rgba(0,0,0,.35);
}
.zg-baner{
  position:fixed; right:24px; top:var(--zg-top, 96px); z-index:114; /* nad treścią, pod menu mobilnym (115), nagłówkiem (120) i lightboxami */ width:min(440px, calc(100vw - 48px)); box-sizing:border-box;
  background:var(--zg-bg); color:var(--zg-fg); border:1px solid var(--zg-line); border-radius:var(--zg-r); box-shadow:var(--zg-shadow);
  padding:22px 22px 20px; font-family:var(--zg-f); font-size:14px; line-height:1.55; opacity:0; transform:translateY(-12px); transition:opacity .3s ease, transform .3s ease;
}
.zg-baner.on{ opacity:1; transform:none; }
.zg-baner .zg-t, .zg-okno .zg-t{ font-family:var(--zg-f-t); font-size:20px; font-weight:400; line-height:1.25; margin:0 0 8px; color:var(--zg-fg); letter-spacing:normal; text-transform:none; }
.zg-baner .zg-p, .zg-okno .zg-p{ margin:0; color:var(--zg-dim); font-size:14px; line-height:1.55; letter-spacing:normal; text-transform:none; text-align:left; }
.zg-baner a, .zg-okno a{ color:var(--zg-fg); text-decoration:underline; text-underline-offset:2px; }
.zg-btns{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin-top:16px; }
.zg-btn{
  -webkit-appearance:none; appearance:none; margin:0; min-height:44px; padding:10px 8px; box-sizing:border-box; cursor:pointer;
  background:var(--zg-btn-bg); color:var(--zg-btn-fg); border:1px solid var(--zg-btn-bd); border-radius:var(--zg-btn-r);
  font-family:var(--zg-f-btn); font-size:var(--zg-btn-fs); letter-spacing:var(--zg-btn-ls); text-transform:var(--zg-btn-tt); font-weight:var(--zg-btn-fw); line-height:1.25;
  transition:background .2s, color .2s, border-color .2s;
}
.zg-btn:hover{ background:var(--zg-btn-h-bg); color:var(--zg-btn-h-fg); border-color:var(--zg-btn-h-bg); }
.zg-btn:focus-visible, .zg-x:focus-visible, .zg-sw:focus-visible, .zg-stopka:focus-visible, .zg-baner a:focus-visible, .zg-okno a:focus-visible{ outline:2px solid var(--zg-fg); outline-offset:3px; }
.zg-stopka{ -webkit-appearance:none; appearance:none; background:none; border:0; padding:0; margin:0; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.zg-stopka:hover{ opacity:.8; }

/* okno ustawień (modal) */
.zg-tlo{ position:fixed; inset:0; z-index:9100; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; opacity:0; transition:opacity .2s; }
.zg-tlo.on{ opacity:1; }
.zg-okno{
  position:relative; width:min(560px, 100%); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow:auto; box-sizing:border-box;
  background:var(--zg-bg); color:var(--zg-fg); border:1px solid var(--zg-line); border-radius:var(--zg-r); box-shadow:var(--zg-shadow);
  padding:28px 28px 24px; font-family:var(--zg-f); font-size:14px; line-height:1.55; outline:none;
}
.zg-okno .zg-t{ font-size:24px; padding-right:36px; }
.zg-x{ position:absolute; top:12px; right:12px; width:40px; height:40px; background:none; border:0; color:var(--zg-fg); font-size:26px; line-height:1; cursor:pointer; border-radius:var(--zg-btn-r); }
.zg-kats{ margin-top:18px; border-top:1px solid var(--zg-line); }
.zg-kat{ padding:14px 0; border-bottom:1px solid var(--zg-line); }
.zg-kat-g{ display:flex; align-items:center; gap:12px; }
.zg-kat-n{ flex:1; font-weight:600; color:var(--zg-fg); cursor:pointer; }
.zg-zawsze{ font-size:12px; color:var(--zg-dim); }
.zg-kat-o{ margin:6px 0 0; font-size:13px; color:var(--zg-dim); line-height:1.5; }
.zg-sw{ -webkit-appearance:none; appearance:none; position:relative; flex:none; width:46px; height:26px; margin:0; border-radius:13px; background:var(--zg-line); border:1px solid var(--zg-line); cursor:pointer; transition:background .2s; }
.zg-sw::after{ content:''; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:var(--zg-fg); transition:transform .2s; }
.zg-sw:checked{ background:var(--zg-akc); border-color:var(--zg-akc); }
.zg-sw:checked::after{ transform:translateX(20px); background:var(--zg-akc-fg); }
.zg-sw:disabled{ opacity:.55; cursor:default; }
html.zg-modal{ overflow:hidden; }

@media (max-width:600px){
  .zg-baner{ left:8px; right:8px; width:auto; padding:16px 16px 14px; }
  .zg-baner .zg-t{ font-size:17px; margin-bottom:4px; }
  .zg-baner .zg-p{ font-size:13px; line-height:1.5; }
  .zg-btns{ gap:6px; margin-top:12px; }
  .zg-btn{ padding:8px 4px; font-size:10px; letter-spacing:.06em; }
  .zg-tlo{ padding:0; align-items:flex-end; }
  .zg-okno{ max-height:92vh; max-height:92dvh; padding:22px 18px 18px; }
}
@media (prefers-reduced-motion:reduce){ .zg-baner, .zg-tlo, .zg-sw, .zg-sw::after{ transition:none; } }
@media print{ .zg-baner, .zg-tlo{ display:none !important; } }
