/* Podstrona „Zajęcia i wydarzenia”: skróty, kalendarz z panelu, weekendowy grafik, oś roku, warsztaty, półkolonie. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.zw-skroty, .zw-sek, .zw-polk { max-width: 1880px; width: calc(100% - 2 * clamp(.6rem, 1.4vw, 1.5rem)); margin-left: auto; margin-right: auto; }
.zw-sek, .zw-polk { scroll-margin-top: 90px; }
.zw-skroty { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 1.4rem; }
.zw-skroty a { padding: .5rem 1.1rem; border-radius: 999px; background: #FFEEF4; color: #B8245E; font-family: var(--font-naglowek); font-weight: 700; text-decoration: none; transition: background .2s, color .2s; }
.zw-skroty a:hover { background: var(--roz); color: #fff; }
.zw-sek { padding-top: clamp(3.5rem, 7vw, 6rem); }
.zw-sek h2, .zw-polk h2 { font-size: clamp(2.2rem, 4.5vw, 4.2rem); font-weight: 800; line-height: .95; margin: .8rem 0 1rem; }
.zw-sek h2 span { color: var(--roz); }
.zw-glowa { text-align: center; max-width: 46rem; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.zw-glowa p:last-child { color: var(--tusz-2); font-size: 1.1rem; }
.zw-glowa--lewo { text-align: left; margin-left: 0; }

/* kalendarz: nagłówek z lewej, lista w ramce z przerywaną linią */
.zw-terminy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.zw-terminy__glowa p:not(.nadtytul) { color: var(--tusz-2); font-size: 1.1rem; margin-bottom: 1.5rem; }
.zw-terminy__lista { border: 3px dashed #FFC2D9; border-radius: 28px; padding: clamp(1.2rem, 3vw, 2rem); min-height: 12rem; display: grid; align-content: center; }
.zw-terminy__lista .terminy { margin: 0; }
.zw-pusto { text-align: center; color: var(--tusz-2); font-size: 1.1rem; max-width: 30rem; margin: 0 auto; }

/* weekendy: dwie kolumny jak tablica z grafikiem */
.zw-dni { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2vw, 1.6rem); }
.zw-dzien { border-radius: 28px; padding: clamp(1.6rem, 3vw, 2.4rem); color: #fff; background: var(--roz); }
.zw-dzien--nd { background: var(--nieb); }
.zw-dzien__naz { font-family: var(--font-naglowek); font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.6rem); margin-bottom: 1rem; }
.zw-dzien ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .2rem; }
.zw-dzien li { display: grid; grid-template-columns: 4.2rem 1fr; gap: 1rem; padding: .75rem 0; border-top: 1px solid rgba(255,255,255,.3); font-weight: 700; font-size: 1.05rem; }
.zw-dzien time { font-family: var(--font-naglowek); font-weight: 800; font-variant-numeric: tabular-nums; opacity: .85; }

/* rok: pozioma oś z miesiącami */
.zw-os { list-style: none; padding: 2.2rem 0 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; position: relative; }
.zw-os::before { content: ''; position: absolute; top: .55rem; left: 0; right: 0; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--nieb), var(--tur), var(--pom), var(--roz)); }
.zw-os li { position: relative; display: grid; gap: .25rem; }
.zw-os li::before { content: ''; position: absolute; top: -2.15rem; left: 0; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: #fff; border: 5px solid var(--k); }
.zw-os span { font-weight: 800; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; color: var(--k); }
.zw-os b { font-family: var(--font-naglowek); font-size: 1.35rem; line-height: 1.1; }
.zw-os small { color: var(--tusz-2); font-size: .95rem; }

/* warsztaty: zdjęcie z lewej, chmurka tematów */
.zw-zajecia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.zw-foto { display: block; aspect-ratio: 5 / 4; border-radius: 28px 28px 28px 120px; overflow: hidden; background: #FFEEF4; }
.zw-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zw-tagi { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1.4rem; }
.zw-tagi span { padding: .5rem 1rem; border-radius: 14px; border: 2px solid #E8EBF2; font-weight: 700; }
.zw-tagi span:nth-child(3n+1) { border-color: var(--pom); } .zw-tagi span:nth-child(3n+2) { border-color: var(--nieb); } .zw-tagi span:nth-child(3n) { border-color: var(--roz); }
.zw-zajecia__opis { color: var(--tusz-2); font-size: 1.05rem; margin-bottom: 1.4rem; }

/* półkolonie: turkusowy pas, „tydzień turnusu” jak karteczki przypięte do tablicy */
.zw-polk { position: relative; overflow: hidden; isolation: isolate; margin-top: clamp(3.5rem, 7vw, 6rem); margin-bottom: clamp(1.5rem, 3vw, 2.5rem); background: var(--tur); color: #fff; border-radius: var(--r-xl);
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.4rem, 5vw, 5rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.zw-polk__kolo { position: absolute; z-index: -1; border-radius: 50%; }
.zw-polk__kolo--1 { width: 420px; height: 420px; right: -120px; top: -160px; background: rgba(255,255,255,.12); }
.zw-polk__kolo--2 { width: 180px; height: 180px; left: 38%; bottom: -90px; border: 26px solid rgba(255,210,63,.55); }
.zw-polk__kolo--3 { width: 70px; height: 70px; left: -20px; top: 30px; background: var(--roz); opacity: .8; }
.zw-polk .nadtytul { color: #fff; opacity: .85; }
.zw-polk h2 { color: #fff; }
.zw-polk h2 span { color: var(--tusz); }
.zw-polk__tekst p:not(.nadtytul) { font-size: 1.1rem; margin-bottom: 1.6rem; opacity: .95; }
.zw-sezony { list-style: none; padding: 0; margin: 0 0 1.2rem; display: flex; gap: .6rem; flex-wrap: wrap; }
.zw-sezony li { padding: .45rem 1rem .45rem 2.2rem; border-radius: 999px; font-family: var(--font-naglowek); font-weight: 700; position: relative; background: #fff; color: var(--tusz); }
.zw-sezony li::before { content: ''; position: absolute; left: .7rem; top: 50%; width: 1rem; height: 1rem; transform: translateY(-50%); border-radius: 50%; }
.zw-sezony--zima::before { background: var(--nieb); box-shadow: 0 0 0 3px #D6ECFD; }
.zw-sezony--lato::before { background: #FFD23F; box-shadow: 0 0 0 3px #FFF1C2; }
.zw-tydzien { background: rgba(255,255,255,.14); border-radius: 28px; padding: clamp(1.2rem, 3vw, 2rem); }
.zw-tydzien__tyt { font-family: var(--font-naglowek); font-weight: 800; font-size: 1.15rem; margin-bottom: 1rem; }
.zw-tydzien ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1.4rem 1rem; }
.zw-tydzien li { flex: 0 1 calc((100% - 2rem) / 3); min-width: 150px; }
.zw-tydzien li { position: relative; background: #fff; color: var(--tusz); border-radius: 16px; padding: 1.6rem .9rem 1rem; transform: rotate(var(--r)); box-shadow: 0 10px 22px rgba(30,35,64,.18); border-top: 8px solid var(--k); display: grid; gap: .3rem; transition: transform .25s; }
.zw-tydzien li::before { content: ''; position: absolute; top: -.85rem; left: 50%; width: .9rem; height: .9rem; margin-left: -.45rem; border-radius: 50%; background: var(--k); box-shadow: 0 2px 4px rgba(0,0,0,.25); }
.zw-tydzien li:hover { transform: rotate(0) translateY(-4px); }
.zw-tydzien span { font-weight: 800; text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; color: var(--k); }
.zw-tydzien b { font-family: var(--font-naglowek); font-size: 1.25rem; line-height: 1.1; }
.zw-tydzien small { color: var(--tusz-2); font-size: .95rem; line-height: 1.35; }

@media (max-width: 1000px) { .zw-os { grid-template-columns: repeat(5, minmax(150px, 1fr)); overflow-x: auto; padding-bottom: .6rem; scrollbar-width: thin; } }

@media (max-width: 900px) {
  .zw-terminy, .zw-zajecia, .zw-polk { grid-template-columns: minmax(0, 1fr); }
  .zw-dni { grid-template-columns: minmax(0, 1fr); }
  .zw-foto { border-radius: 28px; }
}
@media (max-width: 760px) {
  .zw-os { grid-template-columns: minmax(0, 1fr); overflow: visible; padding: 0 0 0 2.2rem; gap: 1.4rem; }
  .zw-os::before { top: 0; bottom: 0; left: .55rem; right: auto; width: 4px; height: auto; background: linear-gradient(180deg, var(--nieb), var(--tur), var(--pom), var(--roz)); }
  .zw-os li::before { top: .1rem; left: -2.15rem; }
  .zw-glowa--lewo { text-align: center; margin-left: auto; }
  .zw-tydzien li { flex-basis: calc((100% - 1rem) / 2); }
}

/* kalendarz z panelu w ramce: bez marginesów komponentu ze strony głównej, karty zwężają się do ramki */
.zw-terminy__lista .terminy { margin: 0; padding: 0; width: auto; max-width: none; }
.zw-terminy__lista .terminy__lista { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
@media (max-width: 760px) { .zw-terminy__lista { padding: .9rem; border-radius: 22px; } }
