/* ==========================================================================
   /kalendarz-adwentowy/ (page-kalendarz-adwentowy.php) - ładowane tylko na tej stronie
   i na podstronach świąt adwentowych (ramka .kal-adw-polecane, single-swieto.php).
   Wspólne elementy (licznik, tabele, oś czasu, FAQ, karty, widget) - main.css (.kal-odl-*).
   Kolory: zieleń choinki, czerwień i złoto - tylko w tym pliku.
   ========================================================================== */

:root {
  --adw-zielen: #1F5C42;
  --adw-zielen-tlo: #E6F2EA;
  --adw-czerwien: #B8322F;
  --adw-czerwien-tlo: #FBE7E5;
  --adw-zloto: #B8913A;
  --adw-zloto-jasne: #F3D98B;
  --adw-krem: #FBF6EA;
}

.kal-licznik--adwent { --acc: var(--adw-zielen); --tint: var(--adw-zielen-tlo); }
.kal-odl-karta--adwent { --karta-kolor: var(--adw-zielen); --karta-tlo: var(--adw-zielen-tlo); }

.kal-adw-lista-punkty { margin: 12px 0 0; padding-left: 20px; line-height: 1.6; }
.kal-adw-lista-punkty li { margin-bottom: 6px; }

/* ---------- Kalendarz online ---------- */
.kal-adw-online {
  margin: 18px 0 0;
  padding: 18px;
  border-radius: 16px;
  background: var(--adw-zielen);
  background-image: radial-gradient(rgba(255, 255, 255, 0.10) 1.2px, transparent 1.6px);
  background-size: 22px 22px;
  color: #fff;
}
.kal-adw-zestawy { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 0; border: 0; }
.kal-adw-zestawy legend { width: 100%; margin-bottom: 6px; font-family: var(--kal-font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--adw-zloto-jasne); }
.kal-adw-zestaw { position: relative; cursor: pointer; }
.kal-adw-zestaw input { position: absolute; opacity: 0; pointer-events: none; }
.kal-adw-zestaw span {
  display: inline-block;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 600;
  transition: background 0.15s, color 0.15s;
}
.kal-adw-zestaw input:checked + span { background: var(--adw-zloto-jasne); border-color: var(--adw-zloto-jasne); color: #3A2A06; }
.kal-adw-zestaw input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }

.kal-adw-plansza { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; max-width: 640px; margin: 0 auto; }
.kal-adw-okno { max-width: 640px; margin-left: auto; margin-right: auto; }
.kal-adw-drzwi {
  --drzwi: var(--adw-czerwien);
  --drzwi-tekst: #fff;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  padding: 0;
  border: 2px solid rgba(255, 255, 255, 0.55);
  border-radius: 10px;
  background: var(--drzwi);
  color: var(--drzwi-tekst);
  font-family: var(--kal-font-display);
  cursor: pointer;
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.18);
  transition: transform 0.15s, box-shadow 0.15s, opacity 0.15s;
}
.kal-adw-drzwi--k1 { --drzwi: var(--adw-krem); --drzwi-tekst: var(--adw-zielen); }
.kal-adw-drzwi--k2 { --drzwi: #D4A84A; --drzwi-tekst: #3A2A06; }
.kal-adw-drzwi--k3 { --drzwi: #2E7D5B; --drzwi-tekst: #fff; }
.kal-adw-drzwi__nr { font-size: clamp(1.1rem, 3.4vw, 1.9rem); font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.kal-adw-drzwi:hover { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(0, 0, 0, 0.18); }
.kal-adw-drzwi:focus-visible { outline: 3px solid var(--adw-zloto-jasne); outline-offset: 2px; }
.kal-adw-drzwi.is-dzis { border-color: var(--adw-zloto-jasne); box-shadow: 0 0 0 3px var(--adw-zloto-jasne), 0 3px 0 rgba(0, 0, 0, 0.18); animation: kal-adw-puls 2.2s ease-in-out infinite; }
.kal-adw-drzwi.is-zamkniete { opacity: 0.78; }
.kal-adw-drzwi.is-zamkniete::after {
  content: '';
  position: absolute;
  right: 6px;
  bottom: 6px;
  width: 11px;
  height: 9px;
  border-radius: 2px;
  background: currentColor;
  opacity: 0.55;
  box-shadow: 0 -5px 0 -2px transparent;
}
.kal-adw-drzwi.is-zamkniete::before {
  content: '';
  position: absolute;
  right: 8px;
  bottom: 13px;
  width: 7px;
  height: 6px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 5px 5px 0 0;
  opacity: 0.55;
}
.kal-adw-drzwi.is-otwarte { background: rgba(255, 255, 255, 0.14); color: #fff; border-style: dashed; box-shadow: none; }
.kal-adw-drzwi.is-otwarte .kal-adw-drzwi__nr::after { content: ' ✓'; font-size: 0.6em; color: var(--adw-zloto-jasne); }
.kal-adw-drzwi.is-aktywne { box-shadow: 0 0 0 3px #fff; }
.kal-adw-drzwi.is-trzesie { animation: kal-adw-trzes 0.4s; }
.kal-adw-drzwi--wigilia .kal-adw-drzwi__nr::before { content: '★ '; font-size: 0.6em; color: var(--adw-zloto-jasne); }
.kal-adw-drzwi--k1.kal-adw-drzwi--wigilia .kal-adw-drzwi__nr::before,
.kal-adw-drzwi--k2.kal-adw-drzwi--wigilia .kal-adw-drzwi__nr::before { color: var(--adw-czerwien); }

@keyframes kal-adw-puls { 50% { box-shadow: 0 0 0 6px rgba(243, 217, 139, 0.55), 0 3px 0 rgba(0, 0, 0, 0.18); } }
@keyframes kal-adw-trzes { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }

.kal-adw-okno {
  margin: 16px 0 0;
  padding: 16px 18px;
  border-radius: 12px;
  background: var(--adw-krem);
  color: var(--kal-ink);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
  animation: kal-adw-otworz 0.35s ease-out;
}
.kal-adw-okno__dzien { margin: 0; font-family: var(--kal-font-mono); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--adw-czerwien); }
.kal-adw-okno__zadanie { margin: 6px 0 0; font-family: var(--kal-font-display); font-size: 1.18rem; font-weight: 600; line-height: 1.4; }
.kal-adw-okno__ciekawostka { margin: 12px 0 14px; padding: 10px 12px; border-left: 3px solid var(--adw-zloto); background: #fff; font-size: 0.9rem; line-height: 1.5; }
.kal-adw-okno__ciekawostka span:first-child { font-weight: 700; color: var(--adw-zielen); }
@keyframes kal-adw-otworz { from { opacity: 0; transform: perspective(600px) rotateX(-12deg) translateY(-6px); } }

.kal-adw-online__komunikat { margin: 14px 0 0; font-size: 0.9rem; }
.kal-adw-online__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 14px 0 0; }
.kal-adw-online__akcje .kal-dzis-btn { background: var(--adw-zloto-jasne); border-color: var(--adw-zloto-jasne); color: #3A2A06; }
.kal-adw-online__akcje .kal-dzis-btn--outline { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: #fff; }
.kal-adw-online__akcje .kal-dzis-btn--outline:hover { background: #fff; color: var(--adw-zielen); }
.kal-adw-podglad { display: flex; align-items: center; gap: 6px; font-size: 0.86rem; cursor: pointer; }
.kal-adw-online + .kal-odl-przypis,
.kal-adw-online .kal-odl-przypis { color: rgba(255, 255, 255, 0.85); }

/* ---------- Daty ---------- */
.kal-adw-daty {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap: 12px;
  margin: 16px 0 24px;
  padding: 0;
  list-style: none;
}
.kal-adw-data {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  background: var(--kal-paper-raised);
  border: 1px solid var(--kal-line);
  border-left: 4px solid var(--adw-zielen);
  border-radius: 8px;
  font-size: 0.84rem;
  color: var(--kal-ink-soft);
}
.kal-adw-data strong { font-family: var(--kal-font-display); font-size: 1.08rem; line-height: 1.25; color: var(--kal-ink); }
.kal-adw-data__co { font-family: var(--kal-font-mono); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.kal-adw-data--adwent { border-left-color: #6A55A8; }
.kal-adw-data--mikolajki,
.kal-adw-data--wigilia { border-left-color: var(--adw-czerwien); }
.kal-adw-lata tr.is-biezacy th,
.kal-adw-lata tr.is-biezacy td { background: var(--adw-zielen-tlo); font-weight: 700; }

/* ---------- Zestawy zadań ---------- */
.kal-adw-zakladki { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 0; }
.kal-adw-zakladki button {
  padding: 7px 14px;
  border: 1px solid var(--kal-line);
  border-radius: 999px;
  background: #fff;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--kal-navy);
  cursor: pointer;
}
.kal-adw-zakladki button[aria-selected="true"] { background: var(--adw-zielen); border-color: var(--adw-zielen); color: #fff; }
.kal-adw-lista { margin: 20px 0 0; }
.kal-adw-lista h3 { margin: 0 0 6px; }
.kal-adw-zadania {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: 8px 18px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.kal-adw-zadania li {
  padding: 9px 12px;
  background: var(--kal-paper-raised);
  border: 1px solid var(--kal-line);
  border-radius: 8px;
  font-size: 0.92rem;
  line-height: 1.5;
}
.kal-adw-zadania__dzien { display: block; font-family: var(--kal-font-mono); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--adw-czerwien); }
.kal-adw-lista__druk { margin: 14px 0 0; }

/* ---------- Do druku ---------- */
.kal-adw-arkusze { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 16px; margin: 18px 0 0; }
.kal-adw-arkusz-karta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: var(--kal-paper-raised);
  border: 1px solid var(--kal-line);
  border-radius: 12px;
}
.kal-adw-arkusz-karta h3 { margin: 4px 0 0; font-size: 1.02rem; }
.kal-adw-arkusz-karta p { margin: 0; font-size: 0.88rem; line-height: 1.5; }
.kal-adw-arkusz-karta .kal-dzis-btn { margin-top: auto; align-self: flex-start; }
.kal-adw-arkusz-karta__wybor { display: flex; flex-direction: column; gap: 4px; font-size: 0.8rem; font-weight: 600; }
.kal-adw-arkusz-karta__wybor select { padding: 6px 8px; border: 1px solid var(--kal-line); border-radius: 6px; font: inherit; font-weight: 400; background: #fff; }
.kal-adw-arkusz-karta__podglad {
  aspect-ratio: 210 / 297;
  width: 120px;
  margin: 0 auto 4px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--kal-line);
  box-shadow: 0 4px 12px rgba(22, 14, 14, 0.10);
  box-sizing: border-box;
}
.kal-adw-podglad--karty,
.kal-adw-podglad--numerki,
.kal-adw-podglad--puste { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(6, 1fr); gap: 2px; }
.kal-adw-arkusz-karta__podglad i { display: flex; align-items: flex-start; justify-content: flex-start; border: 1px dashed #B9B2A0; font-style: normal; }
.kal-adw-arkusz-karta__podglad b { padding: 1px 2px; font-size: 6px; color: var(--adw-czerwien); }
.kal-adw-podglad--karty i::after { content: ''; display: block; width: 60%; height: 2px; margin: 9px 0 0 -6px; background: #D5CFC0; box-shadow: 0 4px 0 #D5CFC0, 0 8px 0 #D5CFC0; }
.kal-adw-podglad--numerki i { align-items: center; justify-content: center; border-radius: 50%; border-style: solid; border-color: var(--adw-zielen); }
.kal-adw-podglad--numerki b { font-size: 8px; color: var(--adw-zielen); }
.kal-adw-podglad--choinka { display: flex; align-items: center; justify-content: center; padding: 6px; }
.kal-adw-podglad--choinka svg { width: 100%; height: auto; }

/* ---------- DIY ---------- */
.kal-adw-diy { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 16px; margin: 18px 0; }
.kal-adw-diy__sposob {
  padding: 16px 18px;
  background: var(--kal-paper-raised);
  border: 1px solid var(--kal-line);
  border-top: 4px solid var(--adw-czerwien);
  border-radius: 10px;
  font-size: 0.9rem;
  line-height: 1.55;
}
.kal-adw-diy__sposob:nth-child(3n+2) { border-top-color: var(--adw-zielen); }
.kal-adw-diy__sposob:nth-child(3n) { border-top-color: var(--adw-zloto); }
.kal-adw-diy__sposob h3 { display: flex; gap: 10px; align-items: baseline; margin: 0; font-size: 1.04rem; line-height: 1.35; }
.kal-adw-diy__nr { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--adw-zielen); color: #fff; font-size: 0.82rem; }
.kal-adw-diy__czas { margin: 6px 0 0; font-family: var(--kal-font-mono); font-size: 0.74rem; font-weight: 700; color: var(--kal-ink-soft); }
.kal-adw-diy__etykieta { margin: 10px 0 2px; font-weight: 700; }
.kal-adw-diy__potrzebne,
.kal-adw-diy__kroki { margin: 0; padding-left: 20px; }
.kal-adw-diy__potrzebne li,
.kal-adw-diy__kroki li { margin-bottom: 3px; }
.kal-adw-diy__rada { margin: 10px 0 0; padding: 8px 10px; background: var(--adw-zielen-tlo); border-radius: 6px; font-size: 0.86rem; }

/* ---------- Pomysły ---------- */
.kal-adw-pomysly { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 14px; margin: 18px 0 0; }
.kal-adw-pomysly__grupa { padding: 14px 16px; background: var(--kal-paper-raised); border: 1px solid var(--kal-line); border-radius: 10px; }
.kal-adw-pomysly__grupa h3 { margin: 0 0 8px; font-size: 1rem; color: var(--adw-zielen); }
.kal-adw-pomysly__grupa ul { margin: 0; padding-left: 18px; font-size: 0.9rem; line-height: 1.55; }

/* ---------- Oś grudnia ---------- */
.kal-adw-os .kal-odl-os__data small { display: block; font-family: var(--kal-font-body); font-size: 0.74rem; font-weight: 400; color: var(--kal-ink-soft); }
.kal-adw-os__pozycja--adwent { --os-kolor: #6A55A8; }
.kal-adw-os__pozycja--tradycja { --os-kolor: var(--adw-zloto); }
.kal-adw-os__pozycja--okienko { --os-kolor: var(--adw-zielen); }
.kal-adw-os__pozycja--swieto,
.kal-adw-os__pozycja--wigilia { --os-kolor: var(--adw-czerwien); }
.kal-adw-os .is-minione { opacity: 0.55; }
.kal-adw-os__opis { display: block; margin-top: 2px; font-size: 0.82rem; line-height: 1.45; color: var(--kal-ink-soft); }

/* ---------- Ramka na podstronach świąt ---------- */
.kal-adw-polecane {
  margin-top: 8px;
  margin-bottom: 32px;
  padding: 16px 20px;
  border-radius: 12px;
  background: var(--adw-zielen);
  background-image: radial-gradient(rgba(255, 255, 255, 0.10) 1.2px, transparent 1.6px);
  background-size: 22px 22px;
  color: #fff;
}
.kal-adw-polecane__tytul { margin: 0; font-family: var(--kal-font-display); font-size: 1.12rem; font-weight: 700; }
.kal-adw-polecane__tytul a { color: #fff; text-decoration: underline; text-decoration-color: var(--adw-zloto-jasne); text-underline-offset: 4px; }
.kal-adw-polecane__opis { margin: 6px 0 0; font-size: 0.9rem; line-height: 1.5; }

@media (max-width: 640px) {
  .kal-adw-online { padding: 14px 12px; margin-left: -4px; margin-right: -4px; }
  .kal-adw-plansza { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .kal-adw-okno__zadanie { font-size: 1.05rem; }
}

@media (prefers-reduced-motion: reduce) {
  .kal-adw-drzwi, .kal-adw-okno { transition: none; animation: none !important; }
}

/* ---------- Arkusze A4 (drukowane przez JS: #kal-adw-druk w body) ---------- */
#kal-adw-druk { display: none; }

@media print {
  @page { size: A4 portrait; margin: 8mm; }
  body.kal-adw-drukuje > :not(#kal-adw-druk) { display: none !important; }
  body.kal-adw-drukuje { background: #fff !important; }
  body.kal-adw-drukuje #kal-adw-druk { display: block; }

  .kal-adw-a4 { width: 194mm; margin: 0 auto; color: #111; font-family: Arial, Helvetica, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .kal-adw-a4 p { line-height: 1.25; }
  .kal-adw-a4__tytul { margin: 0 0 3mm; font-size: 13pt; font-weight: 700; text-align: center; }
  .kal-adw-a4__podtytul { margin: 0 0 4mm; font-size: 11pt; text-align: center; }
  .kal-adw-a4__stopka { margin: 2mm 0 0; font-size: 7.5pt; text-align: center; color: #666; }
  .kal-adw-a4__siatka { display: grid; grid-template-columns: repeat(4, 1fr); }

  .kal-adw-a4--karty .kal-adw-a4__karta {
    position: relative;
    height: 41mm;
    padding: 3mm 3.5mm;
    border: 0.3mm dashed #999;
    margin: 0 -0.15mm -0.3mm 0;
    box-sizing: border-box;
    overflow: hidden;
    page-break-inside: avoid;
  }
  .kal-adw-a4__nr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 9mm;
    height: 9mm;
    margin-bottom: 1.5mm;
    border-radius: 50%;
    background: #B8322F;
    color: #fff;
    font-size: 12pt;
    font-weight: 700;
  }
  .kal-adw-a4__karta:nth-child(4n+2) .kal-adw-a4__nr { background: #1F5C42; }
  .kal-adw-a4__karta:nth-child(4n+3) .kal-adw-a4__nr { background: #B8913A; }
  .kal-adw-a4__tekst { display: block; font-size: 9.5pt; line-height: 1.28; }
  .kal-adw-a4__linie { display: block; }
  .kal-adw-a4__linie i { display: block; height: 7.5mm; border-bottom: 0.25mm solid #BBB; }

  .kal-adw-a4--choinka { text-align: center; }
  .kal-adw-a4--choinka .kal-adw-choinka { width: 170mm; height: auto; }
  .kal-adw-a4__imie { margin: 3mm 0 0; font-size: 12pt; }

  .kal-adw-a4--numerki .kal-adw-a4__siatka { row-gap: 3mm; justify-items: center; margin-top: 2mm; }
  .kal-adw-a4__kolo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38mm;
    height: 38mm;
    border: 0.6mm solid #1F5C42;
    border-radius: 50%;
    box-sizing: border-box;
    background: #FBF6EA;
  }
  .kal-adw-a4__kolo span { font-size: 34pt; font-weight: 700; color: #B8322F; }
  .kal-adw-a4__kolo:nth-child(even) span { color: #1F5C42; }
}
