/* =======================================================
   WCAG panel + High Contrast (clean, dedupe, fixed bracket)
   ======================================================= */

/* === Bazowe zmienne i rozmiar fontu (sterowane z JS) === */
:root{
  --wcag-top: 8px;
  --base-font-size: 100%;
}
html{ font-size: var(--base-font-size); }

/* header jest kotwicą dla oczka/panelu */
.header{ position:relative; z-index:5; }

/* === „Oczko” – kompaktowe, nieinwazyjne === */
#wcag-trigger{
  position:absolute;
  top:8px; right:16px;
  width:38px; height:26px;
  display:grid; place-items:center;
  padding:0;
  font-size:16px; line-height:1;
  color:#1a2a4f; background:#fff;
  border:1px solid rgba(0,0,0,.25);
  border-radius:6px;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
  cursor:pointer;
  z-index:300001 !important; /* ponad nawigacją/submenu */
}
#wcag-trigger:hover{ background:#f7f9fc; }
#wcag-trigger:focus-visible{ outline:2px solid #0aa; outline-offset:2px; }

/* Panel – przyklejony do headera */
#wcag-panel{
  position:absolute;
  top:calc(8px + 26px + 8px); /* oczko + odstęp */
  right:16px;
  width:260px;
  background:#fff; color:#111;
  border:1px solid #d7dbe1; border-radius:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
  padding:.5rem;
  z-index:300000 !important;
}
#wcag-panel[hidden]{ display:none !important; }

#wcag-panel h3{ font-size:1rem; margin:.25rem .25rem .5rem; }
#wcag-panel ul{ list-style:none; margin:0; padding:0; }
#wcag-panel li{ margin:.25rem 0; }
#wcag-panel .divider{ border-top:1px solid #e8e8e8; margin:.45rem 0; }
#wcag-panel .group{ display:flex; gap:.25rem; }
#wcag-panel button{
  width:100%; padding:.5rem .6rem; border-radius:8px;
  border:1px solid #d7dbe1; background:#f7f9fc; cursor:pointer;
}
#wcag-panel .group button{ flex:1; }
#wcag-panel button:hover{ background:#eef3fb; }
.wcag-panel button.is-active{ border-color:#1a2a4f; background:#e9f0ff; }

/* Gdy panel otwarty — submenu nie „łapie” klików nad panelem */
body.wcag-open .main-nav .submenu{ pointer-events:none !important; }

/* Wyraźny focus globalnie */
:focus-visible{ outline:3px solid #0aa; outline-offset:3px; }

/* Mobile dopasowanie */
@media (max-width:480px){
  #wcag-trigger{ top:6px; right:12px; }
  #wcag-panel{ top:calc(6px + 26px + 8px); right:12px; width:240px; }
}

/* =======================================================
   High Contrast (HC) — jedna definicja, spójna w całym serwisie
   ======================================================= */
body.wcag-contrast-high{
  /* Paleta HC */
  --hc-bg:#000;
  --hc-surface:#111;
  --hc-text:#fff;
  --hc-link:#0ff;
  --hc-border:#5f5f5f;
  --hc-focus:#ff0;

  background:var(--hc-bg) !important;
  color:var(--hc-text) !important;
}

/* Globalne tła + bez gradientów */
body.wcag-contrast-high,
body.wcag-contrast-high .page-root,
body.wcag-contrast-high .content{ background:var(--hc-bg) !important; color:var(--hc-text) !important; }
body.wcag-contrast-high *{ background-image:none !important; }

/* Header/nav/footer */
body.wcag-contrast-high .header,
body.wcag-contrast-high .main-nav,
body.wcag-contrast-high .footer{
  background:var(--hc-bg) !important;
  color:var(--hc-text) !important;
  border-color:var(--hc-border) !important;
}

/* Menu + submenu */
body.wcag-contrast-high #main-menu > li > a{ color:var(--hc-text) !important; }
body.wcag-contrast-high .submenu{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:1px solid var(--hc-border) !important; box-shadow:none !important;
}
body.wcag-contrast-high .submenu a{ color:var(--hc-text) !important; }

/* Karty/panele/boksy (szeroki wachlarz klas + contains) */
body.wcag-contrast-high :where(
  .card,.box,.panel,.tile,.widget,.callout,
  .notice,.komunikat,.message,.alert,.alert-info,.alert-warning,.alert-primary,
  .emergency-card,.oferta-widget,.aktualnosci-right .card,.content .card,
  .akty-blok,
  .insurance-card,.insurance-provider,.insurance-box,
  [class*="card"],[class*="panel"],[class*="notice"],[class*="komunikat"],[class*="alert"]
){
  background:var(--hc-surface) !important;
  color:var(--hc-text) !important;
  border-color:var(--hc-border) !important;
  box-shadow:none !important;
}

/* Tabele i separatory */
body.wcag-contrast-high table{ color:var(--hc-text) !important; }
body.wcag-contrast-high thead,
body.wcag-contrast-high tbody,
body.wcag-contrast-high th,
body.wcag-contrast-high td{
  background:var(--hc-surface) !important; color:var(--hc-text) !important; border-color:var(--hc-border) !important;
}
body.wcag-contrast-high tr:nth-child(odd),
body.wcag-contrast-high tr:nth-child(even){ background:var(--hc-surface) !important; }

body.wcag-contrast-high hr,
body.wcag-contrast-high .divider{
  background:var(--hc-border) !important; color:var(--hc-border) !important; border-color:var(--hc-border) !important; opacity:1 !important;
}

/* Linki / focus */
body.wcag-contrast-high a{ color:var(--hc-link) !important; text-decoration:underline !important; }
body.wcag-contrast-high :focus-visible{ outline:3px solid var(--hc-focus) !important; outline-offset:2px; }

/* Przyciski */
body.wcag-contrast-high .btn,
body.wcag-contrast-high button,
body.wcag-contrast-high .button{
  background:transparent !important; color:var(--hc-text) !important;
  border:2px solid var(--hc-text) !important; box-shadow:none !important;
}
body.wcag-contrast-high .btn.primary,
body.wcag-contrast-high .cookie-btn.primary{
  background:var(--hc-text) !important; color:#000 !important; border-color:var(--hc-text) !important;
}

/* Formularze */
body.wcag-contrast-high input,
body.wcag-contrast-high select,
body.wcag-contrast-high textarea{
  background:#000 !important; color:var(--hc-text) !important;
  border:2px solid var(--hc-border) !important;
}
body.wcag-contrast-high ::placeholder{ color:#aaa !important; opacity:1 !important; }

/* Badge/pigułki */
body.wcag-contrast-high .badge,
body.wcag-contrast-high [class*="badge"]{
  background:transparent !important; color:var(--hc-text) !important; border:1px solid var(--hc-text) !important;
}

/* Panel WCAG i cookies w HC */
body.wcag-contrast-high .wcag-panel,
body.wcag-contrast-high #cookie-banner,
body.wcag-contrast-high #cookie-preferences .cookie-modal{
  background:var(--hc-surface) !important; color:var(--hc-text) !important; border-color:var(--hc-border) !important;
}

/* ===== Podstrony, na których były „białe plamy” ===== */

/* Druki — nowy układ (.downloads), plus legacy klasy */
body.wcag-contrast-high .downloads{
  --card-bg: var(--hc-surface);
  --card-fg: var(--hc-text);
  --card-border: var(--hc-border);
  --card-shadow: none;
  --btn-bg: transparent;
  --btn-fg: var(--hc-text);
  --btn-border: var(--hc-text);
}
body.wcag-contrast-high .downloads-grid .download-card{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:1px solid var(--hc-border) !important; box-shadow:none !important;
}
body.wcag-contrast-high .downloads-grid .btn,
body.wcag-contrast-high .btn.btn-pdf{
  background:transparent !important; color:var(--hc-text) !important; border:2px solid var(--hc-text) !important;
}
/* legacy fallback (stary HTML) */
body.wcag-contrast-high .download-item,
body.wcag-contrast-high .download-list{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border-color:var(--hc-border) !important; box-shadow:none !important;
}

/* e-BOK */
body.wcag-contrast-high .ebok-documents .ebok-item{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:1px solid var(--hc-border) !important; box-shadow:none !important;
}
body.wcag-contrast-high .ebok-documents .btn{ border:2px solid var(--hc-text) !important; }

/* Akty */
body.wcag-contrast-high .akty-input-wrapper input.budynek-input{
  background:#000 !important; color:var(--hc-text) !important; border:2px solid var(--hc-border) !important;
}
body.wcag-contrast-high .akty-input-wrapper .clear-akty{ filter:grayscale(1) brightness(2); }
body.wcag-contrast-high .suggestions-list{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:1px solid var(--hc-border) !important; box-shadow:none !important;
}
body.wcag-contrast-high .suggestions-list li{ border-color:var(--hc-border) !important; }
body.wcag-contrast-high .akty-blok{
  background:var(--hc-surface) !important; color:var(--hc-text) !important; border:1px solid var(--hc-border) !important;
}
body.wcag-contrast-high .drukuj-akty-btn{
  background:transparent !important; color:var(--hc-text) !important; border:2px solid var(--hc-text) !important;
}

/* Awarie */
body.wcag-contrast-high .emergency-card{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:1px solid var(--hc-border) !important; box-shadow:none !important;
}

/* Opłaty */
body.wcag-contrast-high .page-root[data-page="oplaty"] .uwaga-box,
body.wcag-contrast-high .page-root[data-page="oplaty"] .alert,
body.wcag-contrast-high .page-root[data-page="oplaty"] .notice{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border:2px solid var(--hc-border) !important; box-shadow:none !important;
}
body.wcag-contrast-high .page-root[data-page="oplaty"] .card,
body.wcag-contrast-high .page-root[data-page="oplaty"] .panel,
body.wcag-contrast-high .page-root[data-page="oplaty"] .box{
  background:var(--hc-surface) !important; color:var(--hc-text) !important;
  border-color:var(--hc-border) !important; box-shadow:none !important;
}

/* ===== Dodatkowe opcje z panelu ===== */

/* Podświetlanie linków */
body.wcag-highlight-links a{
  outline:2px dashed currentColor; outline-offset:2px;
  background:rgba(255,255,0,.35);
}

/* Skala szarości */
body.wcag-gray{ filter:grayscale(1) contrast(1.1); }

/* Ostateczny „miotacz ognia” na inline white */
body.wcag-contrast-high [style*="background:#fff"],
body.wcag-contrast-high [style*="background: #fff"],
body.wcag-contrast-high [style*="background-color:#fff"],
body.wcag-contrast-high [style*="background-color: #fff"]{
  background:var(--hc-surface) !important;
}

/* ==== HC v3 — specyficzne podstrony: OFERTA / OPLATY / UBEZPIECZENIE ==== */

/* — OFERTA — */
body.wcag-contrast-high .page-root[data-page="oferta"] :where(
  .oferta-widget,.oferta-list,.oferta-card,.oferta-item,.oferta-row,
  .oferta-details,.oferta-box,.oferta-table,.oferta-grid,
  [class*="oferta"]
){
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
  box-shadow: none !important;
}
body.wcag-contrast-high .page-root[data-page="oferta"] :where(
  .oferta-widget-head,.oferta-header,.oferta-mini-sub,.oferta-meta
){
  background: transparent !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
}
body.wcag-contrast-high .page-root[data-page="oferta"] :where(.oferta-badge,[class*="badge"]){
  background: transparent !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-text) !important;
}

/* — OPLATY — (oprócz .uwaga-box, który już łapiemy) */
body.wcag-contrast-high .page-root[data-page="oplaty"] :where(
  .oplaty-grid,.oplaty-card,.oplaty-box,.oplaty-list,.oplaty-info,
  .oplaty-panel,.oplaty-tiles,
  [class*="oplat"],[class*="oplata"]
){
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
  box-shadow: none !important;
}
body.wcag-contrast-high .page-root[data-page="oplaty"] :where(hr,.divider){
  background: var(--hc-border) !important;
  color: var(--hc-border) !important;
  border-color: var(--hc-border) !important;
  opacity: 1 !important;
}

/* — UBEZPIECZENIE — */
body.wcag-contrast-high .page-root[data-page="ubezpieczenie"] :where(
  .insurance-grid,.insurance-provider,.insurance-card,.insurance-box,
  .insurance-info,.insurance-list,
  [class*="insurance"],[class*="ubezpiecz"]
){
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
  box-shadow: none !important;
}
body.wcag-contrast-high .page-root[data-page="ubezpieczenie"] :where(h3,h4,.title){
  color: var(--hc-text) !important;
}

/* wspólne dopinki dla tych trzech stron */
body.wcag-contrast-high .page-root[data-page="oferta"] table,
body.wcag-contrast-high .page-root[data-page="oplaty"] table,
body.wcag-contrast-high .page-root[data-page="ubezpieczenie"] table{
  color: var(--hc-text) !important;
}
body.wcag-contrast-high .page-root[data-page="oferta"] :where(thead,tbody,th,td),
body.wcag-contrast-high .page-root[data-page="oplaty"] :where(thead,tbody,th,td),
body.wcag-contrast-high .page-root[data-page="ubezpieczenie"] :where(thead,tbody,th,td){
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
}
/* ==== HC v5 — domknięcie hoverów i prześwitów na HOME / PRZETARGI ==== */

/* 1) Wyłącz jasne tła i efekty na wszystkich linkach/pozycjach menu w HC */
body.wcag-contrast-high a,
body.wcag-contrast-high .menu a,
body.wcag-contrast-high .akt-link,
body.wcag-contrast-high .btn,
body.wcag-contrast-high button{
  background: transparent !important;
  box-shadow: none !important;
  transition: none !important;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

body.wcag-contrast-high a:hover,
body.wcag-contrast-high a:focus,
body.wcag-contrast-high .menu a:hover,
body.wcag-contrast-high .menu a:focus,
body.wcag-contrast-high .akt-link:hover,
body.wcag-contrast-high .akt-link:focus{
  background: transparent !important;
  color: var(--hc-link) !important;
  text-decoration: underline !important;
}

/* 2) Zgaszenie białych overlay'ów z pseudo-elementów */
body.wcag-contrast-high :is(a,.akt-link,.menu a)::before,
body.wcag-contrast-high :is(a,.akt-link,.menu a)::after{
  background: none !important;
  box-shadow: none !important;
}

/* 3) HOME — prawa kolumna „Inwestycje w realizacji” (badge/pigułki/wiersze) */
body.wcag-contrast-high .page-root[data-page="home"]
:where(.inwestycje .row,.inwestycje .item,.inwestycje .entry,
       .inwestycje .stat,.inwestycje .pill,.inwestycje .label,
       .inwestycje .tag,.inwestycje .badge){
  background: transparent !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: none !important;
}

/* 4) HOME — link-kafelek z aktualnościami: bez rozjaśniania przy hover */
body.wcag-contrast-high .page-root[data-page="home"] .akt-link{
  border-color: var(--hc-border) !important;
}
body.wcag-contrast-high .page-root[data-page="home"] .akt-link:is(:hover,:focus){
  background: transparent !important;
  border-color: var(--hc-border) !important;
}

/* 5) PRZETARGI — komunikaty/alerty bez jaśnień na hover/focus */
body.wcag-contrast-high .page-root[data-page="przetargi"]
:where(.notice,.komunikat,.alert,.alert-info,.alert-warning,.alert-primary)
:is(:hover,:focus-within){
  background: var(--hc-surface) !important;
  box-shadow: none !important;
}

/* 6) Zapobiegnij białemu tle na li:hover (listy w kartach/menu) */
body.wcag-contrast-high li:hover{ background: transparent !important; }

/* 7) Bez „flickera” na przyciskach */
body.wcag-contrast-high .btn:hover,
body.wcag-contrast-high .button:hover,
body.wcag-contrast-high button:hover{
  background: transparent !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-text) !important;
}

/* 8) Tabele/separatory – że też nie „bieleją” przy interakcji */
body.wcag-contrast-high .page-root[data-page="home"] :where(hr,.divider),
body.wcag-contrast-high .page-root[data-page="przetargi"] :where(hr,.divider){
  background: var(--hc-border) !important;
  color: var(--hc-border) !important;
  border-color: var(--hc-border) !important;
  opacity: 1 !important;
}
body.wcag-contrast-high .page-root[data-page="home"] table,
body.wcag-contrast-high .page-root[data-page="przetargi"] table{
  color: var(--hc-text) !important;
}
body.wcag-contrast-high .page-root[data-page="home"] :where(thead,tbody,th,td),
body.wcag-contrast-high .page-root[data-page="przetargi"] :where(thead,tbody,th,td){
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
}
