/* ==========================================================================
   Kalendarz Świąt Nietypowych — wspólny arkusz (kierunek L)
   Źródło: mockupy public_html/mockup/l-*.html (zatwierdzone 2026-10-28).
   Warianty stron: <body class="p-home|p-day|p-holiday|p-month|p-cat">.
   Reguły różniące się między stronami są przypięte przez :where(.p-…),
   więc NIE zmieniają specyficzności (kolejność kaskady jak w mockupach).
   Mapa zmian nazw klas: _projekt/CSS-MAPA.md · Szkielety HTML: _projekt/HTML-KONTRAKT.md
   ========================================================================== */
/* ===== Fonty: Instrument Sans, self-hosting (zmienne osie: wght 400–700, wdth 75–100) ===== */
@font-face{font-family:'Instrument Sans';font-style:italic;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(../fonts/instrument-sans-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Sans';font-style:italic;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(../fonts/instrument-sans-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(../fonts/instrument-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url(../fonts/instrument-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ===== Tokeny: biel + chłodna szarość, jeden akcent UI (niebieski link) ===== */
:root{
  --bg:#fff;
  --g:#F5F5F7;
  --g2:#E8E8ED;
  --ink:#1D1D1F;
  --mute:#6E6E73;
  --line:#D9D9DE;
  --acc:#0066CC;
  --r:28px;
  --rs:18px;
  --sh:0 1px 2px rgba(20,33,61,.04),0 10px 30px -14px rgba(20,33,61,.16);
  --sh2:0 2px 6px rgba(20,33,61,.06),0 24px 48px -20px rgba(20,33,61,.24);
  --ease:cubic-bezier(.16,1,.3,1);
  --hot:#E8432F;
  --or:#F0531C;
  --l1:#DCE9F8;
  --l2:#AECDF0;
  --l3:#5E9DE0;
  --l4:#0066CC;
  --s-off:#0066CC;
  --s-org:#5E9DE0;
  --s-zw:#AECDF0;
  --s-nn:repeating-linear-gradient(135deg,#D9D9DE 0 3px,#EFEFF2 3px 6px)}
html{-webkit-text-size-adjust:100%;scroll-padding-top:76px}
html:has(>body.p-holiday){scroll-behavior:smooth}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Instrument Sans',system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:10px}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1360px;margin:0 auto;padding:0 40px}
[hidden]{display:none!important}
.wrap.w{max-width:1200px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
svg.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* ===== Header ===== */
.hdr{position:sticky;top:0;z-index:50;height:60px;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}
.hdr .wrap{height:100%;display:flex;align-items:center;gap:36px}
.logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;letter-spacing:-.01em;white-space:nowrap}
.logo svg{width:30px;height:30px;flex:none}
.logo b{font-weight:600}
.logo span{color:var(--mute);font-weight:500}
.nav{display:flex;gap:28px;font-size:14px;color:#424245}
.nav a:hover{color:var(--ink)}
.nav a[aria-current]{color:var(--ink);font-weight:500}
.hdr .sp{flex:1}
.ib{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .2s}
.ib:hover{background:var(--g)}
.btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 20px;border-radius:999px;font-size:15px;font-weight:600;white-space:nowrap;transition:transform .2s var(--ease),background .2s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn-d{background:var(--ink);color:#fff}
/* święto bez źródła = bez własnej strony (zasada SEO z CONCEPT.md) */
:where(body:not(.p-month):not(.p-cat)) .nopg{font-size:13.5px;color:var(--mute);align-self:center}
:where(.p-month,.p-cat) .nopg{font-size:12.5px;color:var(--mute)}
.btn-d:hover{background:#000}
.btn-o{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.btn-o:hover{box-shadow:inset 0 0 0 1px #b7b7bd}
.btn-s{height:36px;padding:0 16px;font-size:14px}
.lnk{color:var(--acc);font-weight:500;display:inline-flex;align-items:center;gap:4px}
.lnk:hover{text-decoration:underline}
.mob{display:none}
/* ===== HERO: dzień ===== */
:where(body:not(.p-day):not(.p-month):not(.p-cat)) .hero{background:var(--g);padding:20px 0 28px}
:where(.p-day) .hero{background:var(--g);padding:14px 0 40px}
:where(.p-month) .hero{background:var(--g);padding:14px 0 30px}
:where(.p-cat) .hero{background:var(--g);padding:14px 0 36px}
.hhead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;margin-bottom:22px}
.dw{width:72px;height:72px;border-radius:18px;background:#fff;box-shadow:var(--sh);flex-direction:column;align-items:center;justify-content:center;line-height:1;display:none}
.dw small{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#E8432F}
.dw strong{font-size:34px;font-weight:600;letter-spacing:-.03em;margin-top:4px}
.hero>.wrap{position:relative}
.ht{min-width:0}
:where(body:not(.p-month):not(.p-cat)) .eye{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
:where(.p-month,.p-cat) .eye{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.eye b{color:#E8432F;font-weight:600}
.eye .mwd{display:none}
:where(body:not(.p-day):not(.p-month):not(.p-cat)) .ht h1{font-size:60px;line-height:1;font-weight:600;letter-spacing:-.035em}
:where(.p-day) .ht h1{font-size:64px;line-height:1;font-weight:600;letter-spacing:-.035em}
:where(.p-month) .ht h1{font-size:76px;line-height:.96;font-weight:600;letter-spacing:-.045em}
:where(.p-cat) .ht h1{font-size:68px;line-height:.98;font-weight:600;letter-spacing:-.04em}
.ht h1 em{font-style:normal;font-weight:400;color:var(--mute)}
:where(body:not(.p-day)) .hsub{font-size:16px;color:var(--mute);margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(.p-day) .hsub{font-size:16px;color:var(--mute);margin-top:12px}
.hsub b{color:var(--ink);font-weight:500}
/* link „zobacz wszystkie” przy liczbie świąt — widoczny nad zgięciem, gdy świąt jest > 5 */
.hsub .all{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:#C7C7CC;text-underline-offset:3px}
.hsub .all:hover{text-decoration-color:currentColor}
.week{display:flex;align-items:center;gap:6px}
.seg{display:flex;background:var(--g2);border-radius:16px;padding:4px;gap:2px}
.seg button,.seg a{width:54px;height:56px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;transition:background .25s,box-shadow .25s,color .25s;color:#424245;position:relative}
.seg button small,.seg a small{font-size:11px;font-weight:500;color:var(--mute)}
.seg button span,.seg a span{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.seg button i,.seg a i{font-style:normal;font-size:10px;color:var(--mute);font-variant-numeric:tabular-nums}
.seg button:hover,.seg a:hover{background:rgba(255,255,255,.55)}
.seg button[aria-current=true],.seg a[aria-current=true]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px -4px rgba(0,0,0,.12);color:var(--ink)}
.seg button.today::after,.seg a.today::after{content:"";position:absolute;top:6px;right:8px;width:5px;height:5px;border-radius:50%;background:#E8432F}
.arr{width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:var(--sh);display:grid;place-items:center;transition:transform .2s var(--ease)}
.arr:hover{transform:scale(1.06)}
.arr:active{transform:scale(.95)}
/* Siatka kafli */
:where(body:not(.p-day)) .grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(2,288px);gap:16px}
:where(.p-day) .grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(2,248px);gap:16px}
.t{position:relative;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform .5s var(--ease),box-shadow .5s var(--ease);min-width:0;isolation:isolate}
.t::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 60% at 72% 34%,var(--tint),rgba(255,255,255,0) 70%);opacity:.9}
.t:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.t a.cover{position:absolute;inset:0;z-index:1;border-radius:inherit}
.t a.cover:focus-visible{outline-offset:-3px}
/* tekst i pieczęć nie przechwytują kliknięć — cały kafel prowadzi do strony święta; przyciski zostają aktywne */
.t .t-body,.t .seal{pointer-events:none}
.t .t-act{pointer-events:auto}
/* ilustracje + pieczęcie (ze strony głównej) */
.art{display:block;width:100%;height:100%;overflow:visible}
:where(body:not(.p-month)) .art g[data-d]{transition:transform .9s var(--ease);will-change:transform}
:where(.p-month) .art g[data-d]{transition:transform .9s var(--ease)}
.seal{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;line-height:1.2;min-width:0}
.seal svg{width:20px;height:20px;flex:none}
.seal em{font-style:normal;font-weight:400;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seal .s-l{white-space:nowrap}
.t-name{font-weight:600;letter-spacing:-.02em;text-wrap:balance}
.t-desc{color:var(--mute)}
/* duży kafel (święto dnia) */
.tb{grid-row:1/3;display:flex;flex-direction:column}
.tb .t-art{flex:1;min-height:0;padding:30px 26px 0 26px}
.tb .seal{position:absolute;top:24px;left:28px}
:where(body:not(.p-day)) .tb .t-body{padding:0 32px 28px;position:relative;z-index:2}
:where(.p-day) .tb .t-body{padding:0 32px 26px;position:relative;z-index:2}
.tb .t-cat{font-size:13px;color:var(--mute);margin-bottom:6px}
:where(body:not(.p-day)) .tb .t-name{font-size:40px;line-height:1.04;max-width:16ch}
:where(.p-day) .tb .t-name{font-size:36px;line-height:1.04;max-width:16ch}
:where(body:not(.p-day)) .tb .t-desc{font-size:16.5px;line-height:1.45;margin-top:10px;max-width:52ch}
:where(.p-day) .tb .t-desc{font-size:16px;line-height:1.45;margin-top:8px;max-width:52ch}
:where(body:not(.p-day)) .t-act{display:flex;align-items:center;gap:10px;margin-top:18px}
:where(.p-day) .t-act{display:flex;align-items:center;gap:10px;margin-top:16px}
:where(body:not(.p-holiday)) .cel{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 12px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:inset 0 0 0 1px var(--line);background:#fff;transition:box-shadow .2s,transform .2s var(--ease)}
:where(.p-holiday) .cel{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px 0 16px;border-radius:999px;font-size:15px;font-weight:600;box-shadow:inset 0 0 0 1px var(--line);background:#fff;transition:box-shadow .2s,transform .2s var(--ease)}
.cel:hover{box-shadow:inset 0 0 0 1px #b7b7bd}
.cel:active{transform:scale(.96)}
:where(.p-home) .cel svg{width:18px;height:18px}
.cel[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:none}
.cel .num{font-weight:500;opacity:.75}
.pop{animation:pop .45s var(--ease)}
@keyframes pop{40%{transform:scale(1.08)}}
/* mały kafel */
:where(body:not(.p-day)) .ts .t-art{position:absolute;top:0;left:0;right:0;height:162px;padding:16px 18px 0 18px}
:where(.p-day) .ts .t-art{position:absolute;top:0;left:0;right:0;height:140px;padding:14px 18px 0 18px}
.ts .t-art .art{margin-left:auto;width:auto;max-width:100%}
.ts .seal{position:absolute;top:20px;left:22px;z-index:2;max-width:40%;flex-direction:column;align-items:flex-start;gap:6px}
.ts .seal em{font-size:12.5px;max-width:100%}
.ts .t-body{position:absolute;left:0;right:0;bottom:0;padding:0 24px 20px}
:where(body:not(.p-day)) .ts .t-name{font-size:20px;line-height:1.16}
:where(.p-day) .ts .t-name{font-size:19px;line-height:1.16}
:where(body:not(.p-day)) .ts .t-desc{font-size:14px;line-height:1.4;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
:where(.p-day) .ts .t-desc{font-size:14px;line-height:1.4;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts .t-name .full{display:inline}
.ts .t-name .short{display:none}
/* szeroki mały kafel (dni z 2-3 świętami) */
.ts.wide{grid-column:2/4}
.ts.wide .t-art{left:auto;width:52%;height:100%;padding:18px 20px}
.ts.wide .t-body{right:46%;top:auto}
.ts.wide .seal{max-width:44%}
.ts.tall{grid-column:2/4;grid-row:1/3}
:where(body:not(.p-day)) .ts.tall .t-art{height:72%;padding:30px}
:where(.p-day) .ts.tall .t-art{height:66%;padding:30px}
.ts.tall .t-art .art{margin:0 auto}
.ts.tall .t-name{font-size:30px}
:where(body:not(.p-day)) .tb.solo{grid-column:1/-1;flex-direction:row}
:where(.p-day) .tb.solo{grid-column:1/-1;grid-row:1;flex-direction:row}
.grid .tb[style*="1/4"]{grid-row:1/4}
:where(body:not(.p-day)) .tb.solo .t-art{order:2;width:55%;flex:none;padding:30px}
:where(.p-day) .tb.solo .t-art{order:2;width:52%;flex:none;padding:26px}
.tb.solo .t-body{align-self:flex-end;flex:1}
/* pasek pozostałych świąt (dzień > 5 świąt) */
.morebox{margin-top:16px}
.mb{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;background:#fff;border-radius:var(--r);padding:16px 18px 16px 28px;box-shadow:var(--sh);transition:box-shadow .25s}
.mb:hover{box-shadow:var(--sh2)}
.mb:hover .mb-b svg{transform:translateX(3px)}
.mb-n{display:flex;align-items:center;gap:14px}
.mb-n strong{font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1}
.mb-n span{font-weight:600;font-size:16px;line-height:1.25}
.mb-n em{display:block;font-style:normal;font-weight:400;font-size:13.5px;color:var(--mute)}
.mb-l{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;min-width:0}
.mb-l li{display:flex;align-items:center;gap:7px;background:var(--g);border-radius:99px;padding:7px 13px 7px 9px;font-size:14px;font-weight:500;white-space:nowrap}
.mb-l li svg{width:15px;height:15px;flex:none}
.mb-l .mb-x{background:none;color:var(--mute);padding-left:4px}
.mb-b{white-space:nowrap}
.mb-b svg{width:18px;height:18px;margin-left:8px;transition:transform .25s}
/* przejście dnia */
.grid.out .t{opacity:0;transform:translateX(calc(var(--dir,1) * -28px)) scale(.985);transition:opacity .22s ease,transform .22s ease}
.grid.in .t{animation:tin .7s var(--ease) both;animation-delay:calc(var(--i,0) * 55ms)}
@keyframes tin{from{opacity:0;transform:translateX(calc(var(--dir,1) * 36px)) scale(.985)}}
.film{animation:film 1.1s linear infinite}
@keyframes film{to{stroke-dashoffset:-44}}
.flick{animation:flick 2.6s ease-in-out infinite;transform-origin:50% 100%;transform-box:fill-box}
@keyframes flick{50%{transform:scale(.94,1.06) skewX(-2deg)}}
.wave{animation:wave 6s ease-in-out infinite alternate}
@keyframes wave{to{transform:translateX(-14px)}}
.steam{animation:steam 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
@keyframes steam{50%{transform:translateY(-6px);opacity:.45}}
.bcr{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
/* breadcrumb */
:where(body:not(.p-month):not(.p-cat):not(.p-holiday)) .bc{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mute);list-style:none;margin-bottom:18px;white-space:nowrap;overflow:hidden}
:where(.p-month) .bc{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mute);list-style:none;white-space:nowrap;overflow:hidden;min-width:0}
:where(.p-cat) .bc{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mute);list-style:none;margin-bottom:22px;white-space:nowrap;overflow:hidden}
:where(.p-holiday) .bc{font-size:13.5px;color:var(--mute);padding-top:20px}
.bc ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;row-gap:2px}
/* ===== Sekcje ===== */
:where(body:not(.p-home):not(.p-month)) .sec{padding:72px 0}
:where(.p-home) .sec{padding:120px 0}
:where(.p-month) .sec{padding:64px 0}
.sec.g{background:var(--g)}
.h2{font-size:56px;line-height:1.04;font-weight:600;letter-spacing:-.032em;text-wrap:balance}
.h2 .m{color:var(--mute)}
.lead{font-size:19px;line-height:1.5;color:var(--mute);max-width:46ch;margin-top:18px}
.lead b{color:var(--ink);font-weight:500}
/* ===== Kalendarz roczny ===== */
.yr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:44px}
.yr-ctl{display:flex;flex-direction:column;align-items:flex-end;gap:16px}
.yr-sw{display:flex;align-items:center;gap:6px;background:var(--g);border-radius:99px;padding:4px}
.yr-sw button{width:38px;height:38px;border-radius:50%;display:grid;place-items:center}
.yr-sw button:hover:not(:disabled){background:#fff}
.yr-sw button:disabled{opacity:.3;cursor:default}
.yr-sw b{font-size:17px;font-weight:600;min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.yr-leg{display:flex;align-items:center;gap:18px;font-size:13px;color:var(--mute);flex-wrap:wrap;justify-content:flex-end}
.yr-leg .yr-sc{display:flex;align-items:center;gap:3px}
.yr-leg .yr-sc i{width:16px;height:16px;border-radius:5px;display:block}
.yr-leg .hd{display:flex;align-items:center;gap:6px}
.yr-leg .hd i{width:6px;height:6px;border-radius:50%;background:#E8432F}
.yr-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.mo{background:var(--g);border-radius:22px;padding:18px 16px 14px;min-width:0}
.mo-h{display:flex;justify-content:space-between;align-items:baseline;margin:0 4px 10px}
.mo-h a{font-weight:600;font-size:16px}
.mo-h a:hover{color:var(--acc)}
.mo-h small{font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums}
.mo.cur{background:#fff;box-shadow:0 0 0 1.5px var(--ink)}
.wk,.dd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.wk span{font-size:10.5px;color:var(--mute);text-align:center;padding-bottom:4px;font-weight:500}
.dd a,.dd span{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;font-size:12.5px;font-variant-numeric:tabular-nums;position:relative;transition:transform .15s,box-shadow .15s}
.dd a.l1{background:#DCE9F8}
.dd a.l2{background:#AECDF0}
.dd a.l3{background:#5E9DE0;color:#fff}
.dd a.l4{background:#0066CC;color:#fff}
.dd a.su{color:#C9341F}
.dd a.l3.su,.dd a.l4.su{color:#FFE1DB}
.dd a.ph::after{content:"";position:absolute;bottom:3px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#E8432F}
.dd a.l3.ph::after,.dd a.l4.ph::after{background:#fff}
.dd a:hover,.dd a:focus-visible{transform:scale(1.18);box-shadow:0 4px 14px rgba(0,40,90,.25);z-index:2;outline:none}
.dd a.td{background:var(--ink);color:#fff;font-weight:600;opacity:1}
.dd a.td::before{content:"";position:absolute;inset:-3px;border-radius:10px;border:1.5px solid var(--ink)}
.yr-tip{position:fixed;z-index:60;pointer-events:none;background:var(--ink);color:#fff;border-radius:14px;padding:11px 14px;font-size:13.5px;line-height:1.35;max-width:270px;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.yr-tip.on{opacity:1;transform:none}
.yr-tip b{display:block;font-size:14.5px;margin-bottom:2px}
.yr-tip em{font-style:normal;color:#A1A1A6;display:block;margin-top:4px;font-size:12px}
.yr-foot{display:flex;justify-content:space-between;gap:20px;margin-top:28px;font-size:14px;color:var(--mute);flex-wrap:wrap}
.yr-foot b{color:var(--ink);font-weight:500}
/* Grafika dnia */
.gfx .h2{font-size:48px}
.gfx{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:64px;align-items:center}
:where(body:not(.p-day)) .fmt{display:inline-flex;background:var(--g);border-radius:14px;padding:4px;margin-top:34px}
:where(.p-day) .fmt{display:inline-flex;background:#fff;border-radius:14px;padding:4px;margin-top:22px;box-shadow:inset 0 0 0 1px var(--g2)}
:where(body:not(.p-day)) .fmt button{height:40px;padding:0 18px;border-radius:10px;font-size:14px;font-weight:600;color:#424245;transition:background .25s,box-shadow .25s}
:where(.p-day) .fmt button{height:36px;padding:0 14px;border-radius:10px;font-size:14px;font-weight:600;color:#424245;transition:background .25s,color .25s}
.fmt button small{font-weight:400;color:var(--mute);margin-left:6px;font-variant-numeric:tabular-nums}
:where(body:not(.p-day)) .fmt button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
:where(.p-day) .fmt button[aria-pressed=true]{background:var(--ink);color:#fff}
:where(body:not(.p-day)) .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;align-items:center}
:where(.p-day) .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.toast{font-size:14px;color:#1a7f37;margin-top:14px;min-height:21px}
.stage{position:relative;height:660px;border-radius:36px;background:linear-gradient(180deg,#F5F5F7,#EDEDF2);overflow:hidden}
.phone{position:absolute;top:30px;left:50%;margin-left:-10px;width:300px;height:620px;border-radius:52px;background:#1D1D1F;padding:11px;box-shadow:0 40px 80px -30px rgba(20,33,61,.45),inset 0 0 0 2px #3a3a3c;transition:transform .8s var(--ease),z-index 0s .3s}
.scr{width:100%;height:100%;border-radius:42px;background:#fff;overflow:hidden;position:relative;padding:50px 20px 18px;display:flex;flex-direction:column}
.isl{position:absolute;top:11px;left:50%;width:86px;height:25px;margin-left:-43px;background:#000;border-radius:20px}
.scr .sd{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#E8432F}
.scr h4{font-size:29px;line-height:1.02;font-weight:600;letter-spacing:-.03em;margin:6px 0 16px}
.srow{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;padding:7px 0}
.srow .mi{width:52px;height:52px;border-radius:15px;background:var(--tint);padding:4px}
.srow b{display:block;font-size:13.5px;line-height:1.2;font-weight:600;letter-spacing:-.01em}
.srow small{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--mute);margin-top:3px}
.srow small svg{width:12px;height:12px}
.sfoot{margin-top:auto;display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--mute)}
.sfoot svg{width:18px;height:18px}
.post{position:absolute;left:8%;bottom:56px;width:300px;height:300px;border-radius:24px;background:#fff;box-shadow:0 30px 60px -28px rgba(20,33,61,.45);overflow:hidden;transform:rotate(-5deg);transition:transform .8s var(--ease);display:flex;flex-direction:column}
.post .pa{height:178px;background:var(--tint);padding:10px 20px 0}
.post .pb{padding:14px 20px 16px;display:flex;flex-direction:column;flex:1}
.post .pb small{font-size:11px;font-weight:600;color:#E8432F;letter-spacing:.05em;text-transform:uppercase}
.post .pb b{font-size:19px;line-height:1.12;font-weight:600;letter-spacing:-.02em;margin-top:3px}
.post .pb span{font-size:12px;color:var(--mute);margin-top:auto;display:flex;justify-content:space-between;align-items:center}
.stage.sq .post{transform:rotate(0) scale(1.18) translate(52px,-40px);z-index:3}
.stage.sq .phone{transform:translateX(70px) scale(.92)}
/* Pieczęcie */
.seals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:56px}
.sc{background:#fff;border-radius:var(--r);padding:30px 28px 28px;box-shadow:var(--sh);display:flex;flex-direction:column}
.sc>svg{width:46px;height:46px}
.sc h3{font-size:21px;font-weight:600;letter-spacing:-.02em;margin-top:28px;line-height:1.2}
.sc p{font-size:15px;line-height:1.5;color:var(--mute);margin-top:8px}
.sc .ex{margin-top:auto;padding-top:22px;font-size:14px}
.sc .ex span{color:var(--mute)}
.stat{display:flex;gap:56px;margin-top:44px;flex-wrap:wrap}
.stat div{font-size:15px;color:var(--mute)}
.stat b{display:block;font-size:40px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.1}
/* Narzędzia: data + quiz */
.tools{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px}
.tool{border-radius:36px;padding:48px;min-width:0;position:relative;overflow:hidden}
.tool.a{background:var(--g)}
.tool.b{background:var(--qt,#E9F6EF);transition:background .6s}
.tool h2{font-size:40px;line-height:1.05;font-weight:600;letter-spacing:-.03em}
.tool .lead{font-size:17px;margin-top:12px}
.dform{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) auto;gap:10px;margin-top:30px;align-items:end}
:where(body:not(.p-day)) .fld{display:flex;flex-direction:column;gap:7px;min-width:0}
:where(.p-day) .fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld label{font-size:13px;font-weight:600;color:#424245}
.sel{height:50px;border-radius:14px;border:1px solid #C7C7CC;background:#fff;padding:0 14px;font-size:16px;width:100%;min-width:0;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 8l4 4 4-4' fill='none' stroke='%236E6E73' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:38px}
:where(body:not(.p-home):not(.p-day)) .inp{height:46px;border-radius:14px;border:1px solid #C7C7CC;background:#fff;padding:0 14px 0 42px;font-size:16px;width:100%;min-width:0;appearance:none;-webkit-appearance:none}
:where(.p-home) .inp{height:50px;border-radius:14px;border:1px solid #C7C7CC;background:#fff;padding:0 14px;font-size:16px;width:100%;min-width:0;appearance:none;-webkit-appearance:none}
:where(.p-day) .inp{height:46px;border-radius:13px;border:1px solid #C7C7CC;background:#fff;padding:0 14px;font-size:16px;width:100%;min-width:0;appearance:none;-webkit-appearance:none}
.sel:focus,.inp:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 4px rgba(0,102,204,.15)}
.dform .btn{height:50px;border-radius:14px}
.dres{margin-top:26px;display:flex;flex-direction:column;gap:10px;min-height:150px}
.dr{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border-radius:20px;padding:10px 18px 10px 10px;animation:tin .6s var(--ease) both}
.dr .mi{width:64px;height:64px;border-radius:14px;background:var(--tint);padding:6px}
.dr b{display:block;font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.dr .seal{font-size:12.5px;margin-top:4px;font-weight:500}
.dr .seal svg{width:16px;height:16px}
.dempty{font-size:15px;color:var(--mute);background:#fff;border-radius:20px;padding:20px}
.qcard{margin-top:30px;background:#fff;border-radius:24px;padding:26px;box-shadow:var(--sh)}
.qcard .qd{font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums}
.qcard h3{font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.02em;margin-top:4px;text-wrap:balance}
:where(body:not(.p-holiday)) .qbtn{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
:where(.p-holiday) .qbtn{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;max-width:420px}
:where(body:not(.p-holiday)) .qbtn button{height:52px;border-radius:14px;font-weight:600;font-size:16px;box-shadow:inset 0 0 0 1px var(--line);background:#fff;transition:all .25s var(--ease)}
:where(.p-holiday) .qbtn button{height:52px;border-radius:14px;font-weight:600;font-size:16px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);background:#fff;transition:all .25s var(--ease)}
.qbtn button:hover{box-shadow:inset 0 0 0 1px #9a9aa0}
:where(body:not(.p-holiday)) .qbtn button.ok{background:#1D1D1F;color:#fff;box-shadow:none}
:where(.p-holiday) .qbtn button.ok{background:var(--ink);color:#fff;box-shadow:none}
.qbtn button.no{opacity:.4}
:where(body:not(.p-holiday)) .qans{margin-top:18px;font-size:15.5px;line-height:1.5;display:none}
:where(.p-holiday) .qans{margin-top:20px;font-size:16.5px;line-height:1.6;max-width:580px}
:where(.p-home) .qans.on{display:block;animation:tin .5s var(--ease) both}
:where(.p-home) .qans .seal{margin-bottom:8px}
.qnext{margin-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--mute)}
/* ilustracja święta z pytania: w karcie, obok treści — nie wychodzi poza obszar */
.qhd{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:14px;align-items:center}
.qart{width:128px;height:96px;overflow:hidden;pointer-events:none}
/* Subskrypcja */
.sub{background:var(--g);border-radius:40px;padding:64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:56px;align-items:center}
.sform{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:30px;max-width:520px}
.sform .btn{height:50px;border-radius:14px}
.shelp{font-size:13.5px;color:var(--mute);margin-top:10px}
.cal{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.ntf{background:rgba(255,255,255,.9);border-radius:24px;padding:16px 18px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;box-shadow:var(--sh2);max-width:420px;margin-left:auto}
.ntf+.ntf{margin-top:12px;transform:scale(.96);opacity:.7;transform-origin:top}
.ntf .nlg{width:44px;height:44px;border-radius:11px}
.ntf .top{display:flex;justify-content:space-between;font-size:12.5px;color:var(--mute)}
.ntf b{display:block;font-size:15px;font-weight:600;margin-top:2px;letter-spacing:-.01em}
.ntf p{font-size:14.5px;line-height:1.4;color:#3a3a3c;margin-top:2px}
.ntfw{position:relative}
/* Stopka */
:where(body:not(.p-holiday)) .ftr{background:var(--g);padding:64px 0 40px;font-size:14px;color:var(--mute)}
:where(.p-holiday) .ftr{background:#fff;padding:64px 0 40px;font-size:14px;color:var(--mute);border-top:1px solid var(--g2)}
.fg{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px}
.ftr h4{font-size:13px;color:var(--ink);font-weight:600;margin-bottom:12px}
.ftr li{list-style:none;margin:7px 0}
.ftr a:hover{color:var(--ink)}
.fnote{max-width:44ch;margin-top:14px;line-height:1.55}
.fbot{border-top:1px solid var(--line);margin-top:48px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
/* pasek mobilny */
.mbar{display:none}
.ad[data-size]{display:flex;align-items:center;justify-content:center;width:100%;margin:0 auto;background:var(--g);border:0;border-radius:18px;color:#8E8E93;font-size:12px;font-weight:500;line-height:1.3;letter-spacing:.02em;text-align:center;padding:0 12px;overflow:hidden}
.ad[data-size=billboard]{max-width:970px;min-height:250px}
.ad[data-size=rectangle]{max-width:300px;min-height:250px}
.ad[data-size=halfpage]{max-width:300px;min-height:600px;position:sticky;top:84px}
.ad[data-size=infeed]{max-width:728px;min-height:90px}
/* opakowania: wiersz między sekcjami, pozycja w liście, segment kolumny bocznej (zakres sticky) */
.ad-li{list-style:none;padding:20px 0}
.noads .ad[data-size],.noads .ad-row,.noads .ad-li,.noads .ad-seg{display:none!important}
:where(body:not(.p-holiday)) .bc a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
:where(.p-holiday) .bc a:hover{color:var(--ink)}
:where(body:not(.p-holiday)) .bc li{display:flex;align-items:center;gap:6px;min-width:0}
:where(.p-holiday) .bc li{display:flex;align-items:center;min-width:0}
:where(body:not(.p-holiday)) .bc li+li::before{content:"";width:6px;height:6px;border-right:1.4px solid #A1A1A6;border-top:1.4px solid #A1A1A6;transform:rotate(45deg);margin-right:4px;flex:none}
:where(.p-holiday) .bc li+li::before{content:"›";margin:0 9px;color:#a1a1a6}
:where(body:not(.p-holiday):not(.p-month)) .bc [aria-current]{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis}
:where(.p-holiday,.p-month) .bc [aria-current]{color:var(--ink);font-weight:500}
/* nagłówek: data najważniejsza */
.dh{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px}
.hsub a.cnt{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:#C7C7CC;text-underline-offset:3px}
.hsub a.cnt:hover{text-decoration-color:currentColor}
/* nawigacja dzień ← → + kalendarz */
.dnav{display:flex;align-items:stretch;gap:8px}
.pn{display:flex;align-items:center;gap:10px;height:60px;padding:0 16px 0 12px;border-radius:18px;background:#fff;box-shadow:var(--sh);min-width:0;max-width:240px;transition:box-shadow .25s,transform .2s var(--ease)}
.pn:hover{box-shadow:var(--sh2)}
.pn:active{transform:scale(.98)}
.pn.nx{padding:0 12px 0 16px;text-align:right}
.pn .tx{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.pn small{font-size:12.5px;color:var(--mute);white-space:nowrap}
.pn b{font-size:14.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pn svg.ic{color:var(--mute)}
.calw{position:relative}
.calb{width:60px;height:60px;border-radius:18px;background:#fff;box-shadow:var(--sh);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--mute);transition:box-shadow .25s}
.calb:hover,.calb[aria-expanded=true]{box-shadow:var(--sh2)}
.calb svg.ic{color:var(--ink)}
.calpop{position:absolute;right:0;top:calc(100% + 10px);width:312px;background:#fff;border-radius:22px;box-shadow:0 2px 6px rgba(20,33,61,.08),0 30px 60px -20px rgba(20,33,61,.35);padding:16px 16px 14px;z-index:45;transform-origin:top right;animation:popin .28s var(--ease)}
.calpop[hidden]{display:none}
@keyframes popin{from{opacity:0;transform:scale(.96) translateY(-4px)}}
.cph{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cph b{font-size:15px;font-weight:600;text-transform:capitalize}
.cph .ib{width:34px;height:34px}
.cph .ib:disabled{opacity:.3;cursor:default;background:none}
.cg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.cg .wd{font-size:11px;font-weight:600;color:var(--mute);padding:4px 0 6px;text-transform:uppercase}
.cg a{position:relative;height:38px;border-radius:11px;display:grid;place-items:center;font-size:14px;font-variant-numeric:tabular-nums;color:#424245;transition:background .2s}
.cg a:hover{background:var(--g)}
.cg a.has{color:var(--ink);font-weight:600}
.cg a.has::after{content:"";position:absolute;bottom:5px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#C7C7CC}
.cg a.td{box-shadow:inset 0 0 0 1.5px #E8432F}
.cg a[aria-current]{background:var(--ink);color:#fff}
.cg a[aria-current]::after{background:rgba(255,255,255,.6)}
.cpf{font-size:12px;color:var(--mute);margin-top:10px;display:flex;align-items:center;gap:6px}
.cpf i{width:4px;height:4px;border-radius:50%;background:#C7C7CC;display:inline-block}
/* skrót redakcji */
.sk{margin-top:22px;max-width:780px;font-size:18px;line-height:1.55;color:#3A3A3C;text-wrap:pretty}
.sk .skl{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-right:10px;vertical-align:1px}
/* poprzedni / następny miesiąc */
.mnav{display:flex;gap:8px;flex:none}
.pm{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px 0 10px;border-radius:14px;background:#fff;box-shadow:var(--sh);font-size:14px;transition:box-shadow .25s,transform .2s var(--ease)}
.pm.nx{padding:0 10px 0 14px}
.pm:hover{box-shadow:var(--sh2)}
.pm:active{transform:scale(.98)}
.pm b{font-weight:600}
.pm small{font-size:12.5px;color:var(--mute)}
.pm svg.ic{width:18px;height:18px;color:var(--mute)}
:where(body:not(.p-cat)) .hg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr);gap:56px;align-items:center}
:where(.p-cat) .hg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:56px;align-items:center}
.hl1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:16px;font-size:17px;color:var(--mute)}
.hl1 b{color:var(--ink);font-weight:600}
.hl1 i{width:4px;height:4px;border-radius:50%;background:#C7C7CC}
.nofree{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px 0 10px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--g2);font-size:14px;color:#424245}
.nofree::before{content:"";width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #E8432F}
:where(body:not(.p-cat)) .intro{font-size:18px;line-height:1.55;color:#3A3A3C;margin-top:18px;max-width:60ch;text-wrap:pretty}
:where(.p-cat) .intro{font-size:18px;line-height:1.55;color:#3A3A3C;margin-top:18px;max-width:58ch;text-wrap:pretty}
.intro b{color:var(--ink);font-weight:600}
.intro a{color:var(--ink);text-decoration:underline;text-decoration-color:#C7C7CC;text-underline-offset:3px}
.intro a:hover{text-decoration-color:currentColor}
/* statusy miesiąca w jednej linii */
.sts{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.sts li{list-style:none;display:flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 11px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--g2);font-size:13.5px;color:var(--mute)}
.sts li svg{width:18px;height:18px}
.sts li b{font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
/* pasek proporcji statusów */
.stb{margin-top:26px;max-width:620px}
.stb-h{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--mute);margin-bottom:9px}
.stb-h b{color:var(--ink);font-weight:600}
.sbar{display:flex;gap:3px;height:12px;border-radius:99px;overflow:hidden}
.sbar i{display:block;min-width:6px}
.sbar .off{background:var(--s-off)}
.sbar .org{background:var(--s-org)}
.sbar .zw{background:var(--s-zw)}
.sbar .nn{background:var(--s-nn)}
.sleg{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.sleg li{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:13px;color:var(--mute);line-height:1.3}
.sleg li span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.sleg li span::before{content:"";width:10px;height:10px;border-radius:3px;flex:none;background:var(--sw)}
.sleg li.nn span::before{box-shadow:inset 0 0 0 1px #B7B7BD}
.sleg b{font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.sleg b small{font-size:13px;font-weight:400;color:var(--mute);margin-left:4px;letter-spacing:0}
/* kolaż ilustracji */
:where(body:not(.p-cat)) .cl{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:150px 130px;gap:12px}
:where(.p-cat) .cl{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:176px 150px;gap:12px}
.ct{position:relative;background:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--sh);isolation:isolate;min-width:0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.ct::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(75% 65% at 60% 40%,var(--tint),rgba(255,255,255,0) 72%)}
.ct:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
:where(body:not(.p-cat)) .ct .ca{position:absolute;inset:8px 10px 42px}
:where(.p-cat) .ct .ca{position:absolute;inset:8px 10px 44px}
:where(body:not(.p-cat)) .ct .cc{position:absolute;left:16px;right:12px;bottom:11px;line-height:1.2}
:where(.p-cat) .ct .cc{position:absolute;left:16px;right:12px;bottom:12px;line-height:1.2}
.ct .cc b{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(body:not(.p-cat)) .ct .cc small{display:block;font-size:12.5px;color:var(--mute)}
:where(.p-cat) .ct .cc small{font-size:12.5px;color:var(--mute);display:block}
.ct.c1{grid-row:1/3}
:where(body:not(.p-cat)) .ct.c1 .ca{inset:16px -8% 76px}
:where(.p-cat) .ct.c1 .ca{inset:10px -22% 70px}
/* ===== HERO święta ===== */
.sh{background:var(--g);padding-bottom:56px}
.shg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:56px;align-items:center;margin-top:26px}
.cat{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.cat a:hover{color:var(--ink)}
.sh h1{font-size:58px;line-height:1.02;font-weight:600;letter-spacing:-.035em;margin-top:10px;text-wrap:balance}
.ld{font-size:19px;line-height:1.5;color:#424245;margin-top:16px;max-width:44ch}
/* data: najważniejszy element po nazwie */
.when{display:flex;align-items:center;gap:18px;background:#fff;border-radius:24px;padding:14px 26px 14px 14px;box-shadow:var(--sh);margin-top:28px;width:fit-content;max-width:100%}
.dchip{width:70px;height:74px;border-radius:17px;background:var(--g);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:none}
.dchip small{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--hot)}
.dchip strong{font-size:36px;font-weight:600;letter-spacing:-.03em;margin-top:5px}
.wtx{min-width:0}
.wday{font-size:27px;font-weight:600;letter-spacing:-.025em;line-height:1.15}
.wday span{font-weight:400;color:var(--mute)}
.wn{display:flex;align-items:center;gap:8px;font-size:15px;color:#424245;margin-top:6px}
.wn b{color:var(--hot);font-weight:600}
.dot{width:8px;height:8px;border-radius:50%;background:var(--hot);flex:none;animation:ping 2s infinite}
.dot.off{background:#a1a1a6;animation:none}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(232,67,47,.45)}70%,100%{box-shadow:0 0 0 9px rgba(232,67,47,0)}}
.sealp{display:inline-flex;margin-top:20px;background:rgba(255,255,255,.6);border-radius:999px;padding:8px 16px 8px 10px;box-shadow:inset 0 0 0 1px var(--line);font-size:14px;max-width:100%}
.sealp em{color:var(--mute)}
.hact{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.drop{position:relative}
.menu{position:absolute;left:0;top:calc(100% + 8px);z-index:20;background:#fff;border-radius:18px;box-shadow:var(--sh2),0 0 0 1px rgba(0,0,0,.04);padding:6px;min-width:250px;animation:tinUp .35s var(--ease) both}
.menu a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;font-size:15px;font-weight:500}
.menu a small{display:block;font-size:12.5px;color:var(--mute);font-weight:400}
.menu a:hover{background:var(--g)}
@keyframes tinUp{from{opacity:0;transform:translateY(6px)}}
/* duża ilustracja */
.hart{position:relative;height:520px;background:#fff;border-radius:36px;box-shadow:var(--sh);overflow:hidden;isolation:isolate}
.hart::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 60% at 60% 38%,var(--tint,#FEEDE7),rgba(255,255,255,0) 72%)}
.hart .ai{position:absolute;inset:44px 36px 64px}
.hcap{position:absolute;left:28px;right:28px;bottom:22px;font-size:13px;color:var(--mute);line-height:1.4}
.hcap b{color:var(--ink);font-weight:600}
/* ===== Układ: artykuł + kolumna boczna ===== */
.body{padding:72px 0 104px}
.lay{display:grid;grid-template-columns:minmax(0,1fr) 336px;column-gap:72px;align-items:stretch}
.lay>article{grid-column:1;grid-row:1;min-width:0}
.side{grid-column:2;grid-row:1;min-width:0}
.side.stk .sti{position:sticky;top:84px}
.side:not(.stk) .sti{height:100%}
.side:not(.stk) .toc{position:sticky;top:84px}
/* metryczka */
.metr{background:var(--g);border-radius:var(--r);padding:22px 24px 20px}
.metr h2{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.metr dl{margin-top:8px}
.metr dl>div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid rgba(0,0,0,.07);font-size:14.5px;line-height:1.4}
.metr dl>div:first-child{border-top:0}
.metr dt{color:var(--mute)}
.metr dd{min-width:0;font-weight:500}
.metr dd small{display:block;font-weight:400;color:var(--mute);font-size:13px;margin-top:4px;line-height:1.4}
.metr dd .seal{font-size:14px}
.metr dd .seal svg{width:18px;height:18px}
.metr .lnk{font-weight:500}
.chk{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.07);font-size:13px;color:var(--mute)}
.chk svg{width:16px;height:16px;color:#1a7f37}
.chk b{color:var(--ink);font-weight:500}
/* spis treści */
.toc{margin-top:16px;padding:6px 4px}
.toc summary{list-style:none;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);padding:8px 0 10px 20px;display:flex;align-items:center;gap:8px}
.toc summary::-webkit-details-marker,.toc summary .cur{display:none}
.toc ol{list-style:none;border-left:2px solid var(--g2)}
.toc a{display:block;padding:6px 0 6px 18px;margin-left:-2px;border-left:2px solid transparent;font-size:15px;color:var(--mute);transition:color .2s,border-color .2s}
.toc a:hover{color:var(--ink)}
.toc a[aria-current=true]{color:var(--ink);font-weight:600;border-left-color:var(--or)}
.prog{height:2px;background:var(--g2);border-radius:2px;margin:14px 0 0 20px;overflow:hidden}
.prog i{display:block;height:100%;width:0;background:var(--or);transition:width .2s}
/* ===== Artykuł ===== */
.prose{font-size:18px;line-height:1.72;color:#2b2b2e}
.prose>p,.prose>.np{max-width:580px}
.prose>p+p{margin-top:1.05em}
.prose h2{font-size:34px;line-height:1.12;font-weight:600;letter-spacing:-.028em;color:var(--ink);margin:80px 0 18px;scroll-margin-top:84px;text-wrap:balance}
.prose h2:first-child{margin-top:0}
.prose .kk{display:block;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--or);margin-bottom:8px}
.prose em{font-style:italic}
.prose b{font-weight:600;color:var(--ink)}
.fn{font-size:.68em;line-height:0;vertical-align:super}
.fn a{color:var(--acc);font-weight:600}
.fn a:hover{text-decoration:underline}
.np{font-size:16px;color:var(--mute);margin-top:14px}
/* liczby */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:34px 0}
.stats div{background:var(--g);border-radius:22px;padding:18px 20px 20px;font-size:14.5px;line-height:1.4;color:var(--mute)}
.stats b{display:block;font-size:34px;line-height:1.1;font-weight:600;letter-spacing:-.03em;color:var(--ink);margin-bottom:4px}
/* oś czasu */
.fig{margin:36px 0 8px;background:var(--g);border-radius:var(--r);padding:30px 26px 22px}
.fig svg{display:block;width:100%;height:auto;overflow:visible}
.fig text{font-family:'Instrument Sans',system-ui,sans-serif}
.fig figcaption{font-size:13.5px;color:var(--mute);margin-top:14px;line-height:1.45}
.tl-v{display:none!important}
.tlp{animation:tlp 2.2s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes tlp{0%{transform:scale(.6);opacity:.5}100%{transform:scale(1.8);opacity:0}}
/* Polska: karty faktów */
.pl3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px 0}
.pc{background:var(--g);border-radius:24px;padding:20px 20px 22px;display:flex;flex-direction:column;min-width:0}
.pc .pi{width:44px;height:44px;border-radius:13px;background:#fff;display:grid;place-items:center;box-shadow:var(--sh)}
.pc .pi svg{width:26px;height:26px}
.pc .y{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1;margin-top:18px}
.pc h3{font-size:17px;line-height:1.25;font-weight:600;letter-spacing:-.01em;margin-top:8px}
.pc p{font-size:14.5px;line-height:1.45;color:var(--mute);margin-top:6px}
/* Jak świętować */
.ideas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}
.idea{background:#fff;border-radius:26px;box-shadow:var(--sh);overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.idea:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.idea .ia{height:156px;position:relative;isolation:isolate;padding:14px 24px 0}
.idea .ia::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(75% 80% at 50% 40%,var(--tint),rgba(255,255,255,0) 75%)}
.idea .ib2{padding:6px 24px 24px}
.idea .no{font-size:12.5px;font-weight:600;color:var(--mute);letter-spacing:.04em}
.idea h3{font-size:19px;line-height:1.22;font-weight:600;letter-spacing:-.015em;margin-top:3px}
.idea p{font-size:15px;line-height:1.5;color:var(--mute);margin-top:7px}
/* prawda czy mit */
.mit{margin-top:28px;background:#FEF0EA;border-radius:var(--r);padding:32px 34px;position:relative;overflow:hidden}
.mit .mk{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#B23A12}
.mit h3{font-size:25px;line-height:1.2;font-weight:600;letter-spacing:-.02em;margin-top:8px;max-width:30ch;text-wrap:balance}
:where(.p-holiday) .qans[hidden]{display:none}
:where(.p-holiday) .qans:not([hidden]){animation:tinUp .5s var(--ease) both}
:where(.p-holiday) .qans b{font-weight:600}
/* FAQ */
.faq{margin-top:22px;border-bottom:1px solid var(--line)}
.faq details{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{transition:transform .3s var(--ease);color:var(--mute)}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;max-width:580px}
/* źródła */
.srcl{list-style:none;counter-reset:z;margin-top:18px;font-size:15px;line-height:1.5}
.srcl li{counter-increment:z;display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px;padding:10px 12px 10px 0;border-radius:12px;scroll-margin-top:100px;transition:background .6s}
.srcl li::before{content:"[" counter(z) "]";color:var(--mute);font-weight:600;font-variant-numeric:tabular-nums;padding-left:2px}
.srcl li:target{background:#FFF1E0}
.srcl a{color:var(--acc);word-break:break-word}
.srcl .bk{color:var(--mute);margin-left:6px;font-size:13px}
/* ===== Sekcja dolna: ten sam dzień + podobne ===== */
.low{background:var(--g);padding:96px 0 88px}
.lh{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}
.lh h2{font-size:38px;line-height:1.08;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
.lh h2 span{color:var(--mute)}
.mts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mt{position:relative;background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;display:flex;flex-direction:column;min-width:0;isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.mt:not(.np):hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.mt a.cover{position:absolute;inset:0;z-index:3;border-radius:inherit}
.mt .ma{height:150px;padding:14px 18px 0;position:relative}
.mt .ma::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 70% at 60% 40%,var(--tint),rgba(255,255,255,0) 72%)}
.mt .mb2{padding:8px 22px 22px;display:flex;flex-direction:column;flex:1}
.mt .seal{font-size:12.5px}
.mt .seal svg{width:17px;height:17px}
.mt h3{font-size:18px;line-height:1.2;font-weight:600;letter-spacing:-.015em;margin-top:10px;text-wrap:balance}
.mt p{font-size:14px;line-height:1.45;color:var(--mute);margin-top:6px}
.mt .go{margin-top:auto;padding-top:12px;font-size:14px;font-weight:500;color:var(--acc)}
.mt.np{box-shadow:inset 0 0 0 1.5px var(--g2);background:rgba(255,255,255,.55)}
.mt.np .go{color:var(--mute);font-weight:400;font-size:13px}
.sims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.si{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center;background:#fff;border-radius:24px;padding:12px 20px 12px 12px;box-shadow:var(--sh);transition:box-shadow .3s;min-width:0}
.si:hover{box-shadow:var(--sh2)}
.si .mi{width:92px;height:92px;border-radius:18px;background:var(--tint);padding:6px}
.si small{font-size:12.5px;font-weight:600;color:var(--hot);letter-spacing:.03em}
.si b{display:block;font-size:16px;line-height:1.25;font-weight:600;letter-spacing:-.01em;margin-top:2px}
.si .seal{font-size:12.5px;font-weight:500;margin-top:6px}
.si .seal svg{width:16px;height:16px}
.low2{margin-top:72px}
/* notka redakcyjna */
.ed{margin-top:72px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:22px;align-items:center;background:#fff;border-radius:var(--r);padding:26px 30px;box-shadow:var(--sh)}
.ed>svg{width:52px;height:52px}
.ed h2{font-size:18px;font-weight:600;letter-spacing:-.01em}
.ed p{font-size:14.5px;line-height:1.55;color:var(--mute);margin-top:4px;max-width:78ch}
.ed .bt{display:flex;gap:10px;flex-wrap:wrap}
/* nagłówki sekcji */
:where(body:not(.p-month):not(.p-cat)) .shd{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:34px 0 14px}
:where(.p-month) .shd{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
:where(.p-cat) .shd{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:40px 0 14px}
:where(body:not(.p-month)) .shd h2{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
:where(.p-month) .shd h2{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.15}
.shd h2 span{color:var(--mute);font-weight:400}
.shd .lnk{font-size:15px;white-space:nowrap}
.grid.n1{grid-template-rows:320px}
:where(.p-day) .ts.tall .t-desc{font-size:16px;-webkit-line-clamp:3;max-width:52ch}
/* ===== Lista świąt ===== */
:where(body:not(.p-month)) .all{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:56px;align-items:start}
:where(.p-month) .all{display:grid;grid-template-columns:minmax(0,310px) minmax(0,1fr);gap:56px;align-items:start}
:where(body:not(.p-day)) .all-side{position:sticky;top:84px}
:where(.p-day) .all-side{position:sticky;top:96px}
.all-side h2{font-size:34px;line-height:1.08;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
:where(body:not(.p-day)) .all-side .lead{font-size:15px;line-height:1.5;color:var(--mute);margin-top:10px}
:where(.p-day) .all-side .lead{font-size:15.5px;line-height:1.5;color:var(--mute);margin-top:10px}
:where(body:not(.p-month):not(.p-cat)) .lg{display:flex;flex-direction:column;gap:8px;margin-top:22px;font-size:13.5px;color:var(--mute)}
:where(.p-month) .lg{display:flex;flex-direction:column;gap:8px;margin-top:22px;font-size:13px;color:var(--mute)}
:where(.p-cat) .lg{display:flex;flex-direction:column;gap:8px;margin-top:24px;font-size:13px;color:var(--mute)}
.lg span{display:flex;align-items:center;gap:10px}
.lg i{width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center}
.lg .l1{background:#FDEBDC}
.lg .l1 svg{width:14px;height:14px;color:var(--ink)}
.lg .l2{background:var(--g);font-style:normal;font-weight:600;font-size:12px;color:#8E8E93}
/* filtr statusu: chipy */
:where(body:not(.p-month):not(.p-cat)) .flt{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}
:where(.p-month) .flt{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
:where(.p-cat) .flt{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
:where(body:not(.p-month)) .chip{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px 0 11px;border-radius:999px;background:var(--g);font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s,color .2s}
:where(.p-month) .chip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px 0 11px;border-radius:999px;background:var(--g);font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s,color .2s}
.chip svg{width:16px;height:16px;flex:none}
.chip .num{color:var(--mute);font-weight:400}
.chip:hover{background:var(--g2)}
.chip[aria-pressed=true]{background:var(--ink);color:#fff}
.chip[aria-pressed=true] .num{color:rgba(255,255,255,.65)}
.chip[aria-pressed=true] svg *{stroke:#fff}
.chip[aria-pressed=true] svg [fill="#1D1D1F"]{fill:#fff}
.chip[aria-pressed=true] svg path[stroke="#fff"]{stroke:#1D1D1F}
.chip:disabled{opacity:.38;cursor:default;background:var(--g)}
:where(body:not(.p-month)) .chip.c0{padding-left:14px}
:where(.p-month) .chip.c0{padding-left:13px}
:where(body:not(.p-month)) .hl{list-style:none;min-width:0}
:where(.p-month) .hl{list-style:none;min-width:0;margin-left:58px}
:where(body:not(.p-month):not(.p-cat)) .hr{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 40px;gap:18px;align-items:start;padding:16px 14px;border-radius:20px;transition:background .2s}
:where(.p-month) .hr{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 40px;gap:18px;align-items:start;padding:14px;border-radius:20px;transition:background .2s}
:where(.p-cat) .hr{position:relative;display:grid;grid-template-columns:52px 56px minmax(0,1fr) 40px;gap:16px;align-items:start;padding:14px;border-radius:20px;transition:background .2s}
:where(body:not(.p-cat)) .hr+.hr::before{content:"";position:absolute;left:88px;right:14px;top:0;border-top:1px solid var(--g2)}
:where(.p-cat) .hr+.hr::before{content:"";position:absolute;left:152px;right:14px;top:0;border-top:1px solid var(--g2)}
.hr .mi{width:56px;height:56px;border-radius:16px;background:var(--tint);padding:4px;flex:none}
.hr .mi.ini{background:var(--g);display:grid;place-items:center;font-size:20px;font-weight:600;color:#A1A1A6;padding:0}
.hr h3{font-size:18px;line-height:1.25;font-weight:600;letter-spacing:-.015em;text-wrap:balance}
.hr .meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13.5px;color:var(--mute);margin-top:4px}
.hr .meta .seal{font-size:13px;gap:6px;color:var(--ink)}
.hr .meta .seal svg{width:16px;height:16px}
.hr .meta i{width:3px;height:3px;border-radius:50%;background:#C7C7CC;flex:none}
.hr p{font-size:15px;line-height:1.5;color:#515154;margin-top:6px;max-width:68ch}
/* wiersz ze stroną: cała karta jest linkiem, strzałka po prawej */
.hr.ln:hover{background:var(--g)}
.hr.ln:focus-within{background:var(--g);box-shadow:0 0 0 2px var(--acc)}
.hr.ln:hover+.hr::before,.hr.ln:focus-within+.hr::before{opacity:0}
.hr.ln h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.hr.ln h3 a:focus-visible{outline:none}
.hr .go{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line);align-self:center;transition:background .2s,color .2s,box-shadow .2s,transform .25s var(--ease)}
.hr.ln:hover .go{background:var(--ink);color:#fff;box-shadow:none;transform:translateX(2px)}
.hr .go svg.ic{width:18px;height:18px}
/* wiersz bez strony: zwykły tekst, źródło inline */
.hr.nl .src b{font-weight:500;color:#424245}
.hr[hidden]{display:none}
.hl .ex{font-size:12.5px;color:var(--mute);padding:14px 14px 0 88px}
/* ===== Grafika dnia + Zgłoś ===== */
.duo{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}
:where(body:not(.p-cat)) .card{background:var(--g);border-radius:32px;padding:36px;min-width:0}
:where(.p-cat) .card{background:var(--g);border-radius:var(--r);padding:30px 32px 26px;min-width:0;display:flex;flex-direction:column}
:where(body:not(.p-cat)) .card h2{font-size:30px;line-height:1.1;font-weight:600;letter-spacing:-.025em}
:where(.p-cat) .card h2{font-size:28px;line-height:1.1;font-weight:600;letter-spacing:-.025em}
:where(body:not(.p-cat)) .card .lead{font-size:15.5px;line-height:1.5;color:var(--mute);margin-top:8px;max-width:40ch}
:where(.p-cat) .card .lead{font-size:15px;line-height:1.5;color:var(--mute);margin-top:6px;max-width:56ch}
.gx{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}
.fmt button[aria-pressed=true] small{color:rgba(255,255,255,.6)}
:where(.p-day) .acts .btn{height:40px;padding:0 16px;font-size:14px}
/* podglądy */
.pv{display:flex;align-items:flex-end;gap:14px}
.pv>div{cursor:pointer;transition:transform .4s var(--ease),box-shadow .3s,opacity .3s;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 20px 40px -24px rgba(20,33,61,.45);opacity:.55}
.pv>div.on{opacity:1;box-shadow:0 0 0 2px var(--ink),0 24px 48px -24px rgba(20,33,61,.5)}
.pv>div:hover{transform:translateY(-2px)}
.psq{width:228px;height:228px;padding:18px 18px 14px;display:flex;flex-direction:column}
.pst{width:132px;height:236px;padding:16px 12px 10px;display:flex;flex-direction:column;border-radius:20px!important}
.pv .d{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#E8432F}
.psq h4{font-size:22px;line-height:1;font-weight:600;letter-spacing:-.03em;margin:4px 0 10px}
.pst h4{font-size:17px;line-height:1.02;font-weight:600;letter-spacing:-.03em;margin:4px 0 8px}
.pr{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:center;padding:2.5px 0}
.pr .m{width:22px;height:22px;border-radius:7px;background:var(--tint);padding:1px}
.pr b{font-size:11px;line-height:1.15;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pst .pr{grid-template-columns:26px minmax(0,1fr);padding:3px 0}
.pst .pr .m{width:26px;height:26px}
.pst .pr b{font-size:9.5px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pmore{font-size:10.5px;color:var(--mute);margin-top:4px}
.pft{white-space:nowrap;overflow:hidden;margin-top:auto;display:flex;align-items:center;gap:6px;font-size:9px;color:var(--mute)}
.pft svg{width:14px;height:14px}
/* zgłoś */
.zg h2{font-size:24px}
.zg .lead{font-size:15px}
.zf{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.fld label small{font-weight:400;color:var(--mute)}
.inp.err{border-color:#C4281C}
.zf .btn{height:46px;border-radius:13px;justify-content:center;margin-top:4px}
.zhelp{font-size:12.5px;color:var(--mute);margin-top:10px;line-height:1.45}
/* dzień bez listy (1-2 święta): odstęp od hero */
#wszystkie[hidden]+#grafika{padding-top:56px}
/* ===== Sąsiednie dni ===== */
.nb{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.nd{display:flex;flex-direction:column;min-width:0;background:var(--g);border-radius:22px;padding:16px 16px 14px;min-height:150px;transition:background .2s,box-shadow .25s,transform .2s var(--ease)}
a.nd:hover{background:#fff;box-shadow:var(--sh2)}
a.nd:active{transform:scale(.98)}
.nd .w{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}
.nd .ndd{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin-top:2px}
.nd .ndd small{font-size:15px;font-weight:500;letter-spacing:-.01em;color:var(--mute)}
.nd .hn{font-size:14px;line-height:1.3;font-weight:500;margin-top:auto;padding-top:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nd .c{font-size:12.5px;color:var(--mute);margin-top:3px}
.nd.cur{background:var(--ink);color:#fff}
.nd.cur .w{color:#FF8A78}
.nd.cur .dd small,.nd.cur .c{color:rgba(255,255,255,.65)}
/* toast (globalny) */
.tst{position:fixed;left:50%;bottom:28px;z-index:80;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:rgba(29,29,31,.94);color:#fff;font-size:14.5px;padding:12px 18px;border-radius:14px;max-width:calc(100vw - 32px);box-shadow:var(--sh2);transition:opacity .25s,transform .4s var(--ease);backdrop-filter:blur(12px)}
.tst.on{opacity:1;transform:translate(-50%,0)}
.ct.c1 .cc{left:20px;bottom:18px}
.ct.c1 .cc b{font-size:19px;white-space:normal}
:where(.p-month) .cl .c2,:where(.p-month) .cl .c3{grid-column:2}
.cl.n4{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}
.cl.n4 .c2{grid-column:2/4}
.cl.n4 .c2 .ca{inset:6px 10px 8px 44%}
.cl.n4 .c2 .cc{right:58%;bottom:auto;top:50%;transform:translateY(-50%)}
.cl.n4 .c2 .cc b{white-space:normal}
.cl.n4 .c3{grid-column:2}
.cl.n4 .c4{grid-column:3}
/* ===== DUŻY KALENDARZ ===== */
.calsec{padding-top:34px}
.calh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.calh h2{font-size:40px;line-height:1.05;font-weight:600;letter-spacing:-.03em}
.calh h2 span{color:var(--mute);font-weight:400}
.calh p{font-size:15px;color:var(--mute);margin-top:6px}
.calc{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.ysw{display:inline-flex;background:var(--g);border-radius:14px;padding:4px}
.ysw button{height:36px;padding:0 16px;border-radius:10px;font-size:14.5px;font-weight:600;color:#424245;font-variant-numeric:tabular-nums;transition:background .25s,box-shadow .25s,color .25s}
.ysw button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px -4px rgba(0,0,0,.12)}
.leg{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--mute);flex-wrap:wrap}
.leg .yr-sc{display:flex;align-items:center;gap:3px}
.leg .yr-sc i{width:16px;height:16px;border-radius:5px;display:block}
.leg .hd{display:flex;align-items:center;gap:6px}
.leg .hd i{width:6px;height:6px;border-radius:50%;background:#E8432F}
.leg .tdx{display:flex;align-items:center;gap:6px}
.leg .tdx i{width:14px;height:14px;border-radius:5px;box-shadow:0 0 0 2px var(--ink);display:block}
.cg7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cg7 .wkd{font-size:12px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;padding:0 12px 2px}
.cg7 .wkd.su{color:#C9341F}
.dc{position:relative;display:flex;flex-direction:column;min-width:0;min-height:122px;padding:11px 12px 11px 13px;border-radius:18px;background:var(--l1);color:var(--ink);transition:transform .25s var(--ease),box-shadow .25s}
.dc.l2{background:var(--l2)}
/* l3: ciemny granat zamiast bieli, bo biały 13 px na #5E9DE0 nie spełnia kontrastu AA */
.dc.l3{background:var(--l3);color:#0A2540}
.dc.l4{background:var(--l4);color:#fff}
.dc:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(0,40,90,.45);z-index:2;outline:none}
.dc:focus-visible{transform:translateY(-3px);z-index:2;outline:none;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--acc)}
.dc .top{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:8px}
.dc .dn{font-size:25px;font-weight:600;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.dc .dk{font-size:12px;font-weight:500;opacity:.62;white-space:nowrap;font-variant-numeric:tabular-nums}
.dc .nm{display:block;font-size:13px;line-height:1.32;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc .nm+.nm{opacity:.7;font-weight:400}
.dc .tg{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:6px;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;min-width:0}
.dc .tg span{overflow:hidden;text-overflow:ellipsis}
.dc .tg svg.ic{width:13px;height:13px;stroke-width:2}
.dc.su .dn{color:#C9341F}
.dc.l3.su .dn{color:#8E1B0E}
.dc.l4.su .dn{color:#FFE1DB}
/* dzień ustawowo wolny: kropka jak w kalendarzu rocznym */
.dc.ph .dn::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#E8432F;margin-left:5px;vertical-align:4px}
.dc.td{box-shadow:0 0 0 2.5px var(--ink)}
.dc.td:hover{box-shadow:0 0 0 2.5px var(--ink),0 14px 30px -14px rgba(0,40,90,.45)}
.dc .tdl{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:#fff;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:5px}
.dc.past:not(.td){opacity:.82}
.calf{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:14px;color:var(--mute)}
.calf b{color:var(--ink);font-weight:500}
/* dymek dnia */
.tip{position:fixed;z-index:60;pointer-events:none;background:var(--ink);color:#fff;border-radius:14px;padding:11px 14px;font-size:13.5px;line-height:1.38;max-width:290px;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.tip.on{opacity:1;transform:none}
.tip b{display:block;font-size:14.5px;margin-bottom:3px}
.tip ul{list-style:none}
.tip li{padding-left:12px;position:relative}
.tip li::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;border-radius:50%;background:#A1A1A6}
.tip em{font-style:normal;color:#A1A1A6;display:block;margin-top:5px;font-size:12px}
/* agenda: tylko mobile */
.ag{display:none}
/* ===== Najważniejsze ===== */
.top6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tc{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);min-height:184px;background:#fff;border-radius:24px;box-shadow:var(--sh);overflow:hidden;isolation:isolate;min-width:0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tc::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 80% at 80% 45%,var(--tint),rgba(255,255,255,0) 72%)}
.tc:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.tc .tcb{padding:20px 0 18px 22px;display:flex;flex-direction:column;min-width:0}
.tc .tdt{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;font-size:13px;color:var(--mute)}
.tc .tdt b{font-size:15px;color:var(--ink);font-weight:600;white-space:nowrap}
.tc .tdt .now{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#E8432F;border-radius:6px;padding:2px 6px}
.tc h3{font-size:20px;line-height:1.15;font-weight:600;letter-spacing:-.02em;margin-top:8px;text-wrap:balance}
.tc .seal{margin-top:auto;padding-top:12px;font-size:12.5px;font-weight:500;gap:6px;color:#424245}
.tc .seal svg{width:16px;height:16px}
.tc .ta{padding:14px 12px 10px 0;min-width:0}
/* ===== Święta ruchome ===== */
.mvbox{background:var(--g);border-radius:36px;padding:44px 44px 40px}
.mvh{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}
.mvh h2{font-size:34px;line-height:1.08;font-weight:600;letter-spacing:-.03em}
.mvh p{font-size:15.5px;line-height:1.5;color:var(--mute);margin-top:8px;max-width:62ch}
.rul{margin-top:26px;background:#fff;border-radius:22px;padding:18px 18px 10px;box-shadow:var(--sh)}
.rul svg{display:block;width:100%;overflow:visible}
.mvg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.mc{position:relative;background:#fff;border-radius:22px;padding:18px 18px 16px;display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 14px;min-width:0;box-shadow:var(--sh);transition:box-shadow .25s}
.mc.ln:hover{box-shadow:var(--sh2)}
.mc .mi{width:52px;height:52px;border-radius:15px;background:var(--tint);padding:3px;grid-row:1/3;position:relative}
.mc .ix{position:absolute;top:-6px;left:-6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:#fff;background:var(--mc);box-shadow:0 0 0 2.5px #fff}
.mc h3{font-size:17px;line-height:1.22;font-weight:600;letter-spacing:-.015em;text-wrap:balance}
.mc h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.mc .seal{font-size:12.5px;font-weight:500;gap:6px;color:#424245;margin-top:3px}
.mc .seal svg{width:15px;height:15px}
.mc .seal span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .rl{grid-column:1/-1;margin-top:12px;display:flex;align-items:center;gap:6px;font-size:13.5px;color:#424245;background:var(--g);border-radius:10px;padding:6px 10px}
.mc .rl svg.ic{width:15px;height:15px;color:var(--mute)}
.mc .yy{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}
.mc .yy div{border-radius:12px;box-shadow:inset 0 0 0 1px var(--g2);padding:7px 10px;line-height:1.25;min-width:0}
.mc .yy small{display:block;font-size:11.5px;color:var(--mute);font-weight:600;letter-spacing:.03em}
.mc .yy b{font-size:15px;font-weight:600;white-space:nowrap}
.mc .yy em{font-style:normal;font-size:12.5px;color:var(--mute);display:block}
.mc .yy div.on{box-shadow:inset 0 0 0 1.5px var(--ink)}
.vf{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8A5A00;background:#FFF1D1;border-radius:6px;padding:2px 6px;margin-left:4px;vertical-align:2px;white-space:nowrap}
.mc.info{background:linear-gradient(180deg,#fff,#FAFAFC)}
.mc .inf{font-size:12.5px;color:var(--mute);margin-top:3px}
.mc.fixed .yy div{box-shadow:inset 0 0 0 1px var(--g2)}
:where(.p-cat) .ct.c4{grid-column:2/4}
:where(.p-cat) .ct.c4 .ca{inset:8px 12px 10px 42%}
:where(.p-cat) .ct.c4 .cc{right:60%;bottom:auto;top:50%;transform:translateY(-50%)}
:where(.p-cat) .ct.c4 .cc b{white-space:normal}
.nxg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.nc{position:relative;background:#fff;border-radius:22px;box-shadow:var(--sh);overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.nc.ln:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.nc a.cover{position:absolute;inset:0;z-index:2;border-radius:inherit}
.nc a.cover:focus-visible{outline-offset:-3px}
.nc .na{height:108px;background:var(--tint);padding:6px 18px 0}
.nc .nbd{padding:13px 16px 15px;display:flex;flex-direction:column;flex:1;min-width:0}
.ncw{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--mute)}
.ncw b{color:var(--ink);font-weight:600;font-size:14px}
.cd{font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--g);color:#424245;white-space:nowrap}
.cd.soon{background:#FDE7E3;color:#B4271A}
.nc h3{font-size:16.5px;line-height:1.22;font-weight:600;letter-spacing:-.015em;margin-top:8px;text-wrap:balance}
.nc .nf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:12px}
.nc .seal{font-size:12.5px;font-weight:500;gap:6px}
.nc .seal svg{width:16px;height:16px}
.nc .go{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line);flex:none;transition:background .2s,color .2s,box-shadow .2s}
.nc .go svg.ic{width:15px;height:15px}
.nc.ln:hover .go{background:var(--ink);color:#fff;box-shadow:none}
.ov{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px}
.card .lead b{color:var(--ink);font-weight:500}
.ch{margin-top:18px;position:relative}
.ch svg{display:block;width:100%;overflow:visible}
.ch .bar{cursor:pointer;outline:none}
.ch .bar .hit{fill:transparent;rx:12}
.ch .bar:hover .hit{fill:rgba(255,255,255,.7)}
.ch .bar:focus-visible .hit{stroke:var(--acc);stroke-width:2;fill:rgba(255,255,255,.7)}
.ch .bar *{transition:fill .25s}
.chf{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:var(--mute)}
.chl{display:flex;gap:16px;flex-wrap:wrap}
.chl span{display:flex;align-items:center;gap:6px}
.chl i{width:10px;height:10px;border-radius:3px;display:block}
.tps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:1fr;gap:8px;margin-top:20px;flex:1}
.tp{justify-content:center;display:flex;flex-direction:column;gap:8px;text-align:left;background:#fff;border-radius:16px;padding:13px 14px 12px;min-width:0;transition:box-shadow .2s,background .2s,color .2s}
.tp:hover{box-shadow:var(--sh)}
.tp .tr{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%}
.tp b{font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp .num{font-size:14px;color:var(--mute)}
.tp .tpb{display:block;height:4px;border-radius:99px;background:var(--g2);overflow:hidden;width:100%}
.tp .tpb i{display:block;height:100%;border-radius:inherit;background:var(--s-org)}
.tp[aria-pressed=true]{background:var(--ink);color:#fff}
.tp[aria-pressed=true] .num{color:rgba(255,255,255,.65)}
.tp[aria-pressed=true] .tpb{background:rgba(255,255,255,.18)}
.tp[aria-pressed=true] .tpb i{background:#fff}
.tpn{font-size:12.5px;color:var(--mute);margin-top:12px}
.all-side .lead b{color:var(--ink);font-weight:600}
.srch{position:relative;margin-top:20px}
.srch svg.ic{position:absolute;left:14px;top:50%;margin-top:-10px;color:var(--mute);pointer-events:none}
.fl{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);margin-top:18px}
.clr{color:var(--acc);font-weight:500;font-size:13.5px;margin-top:12px}
.clr:hover{text-decoration:underline}
.inp::-webkit-search-cancel-button{cursor:pointer}
/* aktywne filtry z wykresu / tematów */
.af{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:var(--mute)}
.af button.pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px 0 12px;border-radius:99px;background:#E8F0FB;color:#0B4F9C;font-size:13px;font-weight:500}
.af button.pill:hover{background:#D7E6F8}
.af button.pill svg{width:14px;height:14px}
.af .clr{color:var(--acc);font-weight:500;font-size:13px}
.af .clr:hover{text-decoration:underline}
:where(body:not(.p-cat)) .lg .l3{border:1.5px dashed #A1A1A6}
:where(.p-cat) .lg .l3{box-shadow:inset 0 0 0 1.5px #A1A1A6;border:0;background-image:none;outline:1.5px dashed #fff;outline-offset:-1.5px}
:where(body:not(.p-cat)) .grp+.grp{margin-top:18px}
:where(.p-cat) .grp+.grp{margin-top:26px}
:where(body:not(.p-cat)) .gh{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:16px;transition:background .2s}
:where(.p-cat) .gh{display:flex;align-items:baseline;gap:10px;padding:0 14px 8px;border-bottom:1px solid var(--g2);margin-bottom:4px}
:where(.p-month) .gh:hover{background:var(--g)}
.gh .gd{width:46px;height:50px;border-radius:13px;background:var(--l1);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:none}
.gh .gd b{font-size:20px;font-weight:600;letter-spacing:-.02em}
.gh .gd small{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:3px;opacity:.7}
.gh .gd.l2{background:var(--l2)}
.gh .gd.l3{background:var(--l3);color:#0A2540}
.gh .gd.l4{background:var(--l4);color:#fff}
.gh .gd.su small{color:#C9341F;opacity:1}
.gh .gd.l3.su small,.gh .gd.l4.su small{color:#FFE1DB}
.gh .gt{min-width:0;flex:1}
:where(body:not(.p-cat)) .gh h3{font-size:19px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
:where(.p-cat) .gh h3{font-size:20px;font-weight:600;letter-spacing:-.02em}
.gh .gs{font-size:13.5px;color:var(--mute)}
.gh .gm{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--acc);white-space:nowrap}
.gh .gm svg.ic{width:16px;height:16px}
.gh .tdl{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#E8432F;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:3px}
:where(.p-cat) .gh span{font-size:13.5px;color:var(--mute)}
.dt{width:52px;height:56px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--g2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.dt b{font-size:21px;font-weight:600;letter-spacing:-.02em}
.dt small{font-size:11px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
/* data ruchoma: przerywana ramka */
.dt.mv{box-shadow:none;background:#fff;border:1.5px dashed #A1A1A6}
:where(body:not(.p-cat)) .hr h4{font-size:17.5px;line-height:1.25;font-weight:600;letter-spacing:-.015em;text-wrap:balance}
:where(.p-cat) .hr h4{font-size:18px;line-height:1.25;font-weight:600;letter-spacing:-.015em;text-wrap:balance}
:where(.p-month,.p-cat) .hr .meta .src b{font-weight:500;color:#424245}
.hr .meta .mvt{display:inline-flex;align-items:center;gap:4px;color:#424245;border:1.5px dashed #A1A1A6;border-radius:8px;padding:0 7px;font-size:12.5px;line-height:20px}
.hr .rule{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:8px;font-size:13.5px;color:#424245;background:var(--g);border-radius:12px;padding:7px 12px;width:fit-content;max-width:100%}
.hr .rule svg.ic{width:16px;height:16px;color:var(--mute)}
.hr .rule b{font-weight:600;color:var(--ink)}
.hr .rule .y{color:var(--mute)}
.hr.ln:hover .rule,.hr.ln:focus-within .rule{background:#fff}
.hr.ln h4 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.hr.ln h4 a:focus-visible{outline:none}
.hm{margin-left:58px;padding:2px 14px 6px;font-size:14.5px;color:#515154}
.hm a{color:var(--acc);font-weight:500}
.hm a:hover{text-decoration:underline}
.gmore{margin-left:72px;padding:4px 14px 2px;font-size:14px}
/* znacznik „dziś” w liście */
.nowl{display:flex;align-items:center;gap:10px;padding:6px 14px;font-size:12.5px;font-weight:600;color:#E8432F;letter-spacing:.04em;text-transform:uppercase}
.nowl::after{content:"";flex:1;border-top:1.5px solid #F6B8AE}
.nowl+.hr::before{display:none}
.empty{background:var(--g);border-radius:20px;padding:22px 24px;font-size:15px;color:#424245}
.empty .lnk{margin-top:8px}
:where(body:not(.p-cat)) .mnote{font-size:12.5px;color:var(--mute);margin-top:20px;padding-left:14px}
:where(.p-cat) .mnote{font-size:12.5px;color:var(--mute);margin-top:18px;padding-left:14px}
/* ===== Inne miesiące ===== */
.mg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.mgt{display:flex;flex-direction:column;background:var(--g);border-radius:20px;padding:14px 14px 12px;min-width:0;transition:background .25s,box-shadow .25s,transform .25s var(--ease)}
a.mgt:hover{background:#fff;box-shadow:var(--sh2);transform:translateY(-2px)}
.mgt .mh{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:10px}
.mgt .mh b{font-size:15.5px;font-weight:600;letter-spacing:-.01em}
.mgt .mh small{font-size:12.5px;color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap}
.mgt.cur{background:#fff;box-shadow:0 0 0 1.5px var(--ink)}
.mgt.cur .mh small{color:var(--ink)}
.md{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.md i{aspect-ratio:1;border-radius:3px;background:var(--l1)}
.md i.l2{background:var(--l2)}
.md i.l3{background:var(--l3)}
.md i.l4{background:var(--l4)}
.md i.e{background:none}
.md i.ph{box-shadow:inset 0 0 0 1.5px #E8432F}
.md i.td{background:var(--ink)}
.pm .pms{display:none}
/* ===== Inne kategorie ===== */
.cats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ck{position:relative;background:var(--g);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:background .25s,box-shadow .25s,transform .25s var(--ease)}
.ck:hover{background:#fff;box-shadow:var(--sh2);transform:translateY(-2px)}
.ck .ka{height:118px;padding:10px 14px 0}
.ck .kb{padding:6px 16px 16px;display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.ck b{font-size:16px;font-weight:600;letter-spacing:-.015em;line-height:1.2}
.ck small{display:block;font-size:13px;color:var(--mute);margin-top:2px}
.ck svg.ic{width:18px;height:18px;color:var(--mute);flex:none;margin-bottom:2px}

/* ===== @media (min-width:1025px) ===== */
@media (min-width:1025px){
  .all-col{align-self:stretch;display:flex;flex-direction:column}
  .all-col>.side-seg{flex:1 1 0}
  .all-col>.ad-seg{flex:1 1 0;padding-top:40px}
  html:not(.noads) .side:has(>.ad-seg){display:flex;flex-direction:column}
  html:not(.noads) .side:has(>.ad-seg)>.sti{flex:1 1 0;height:auto;position:static}
  html:not(.noads) .side:has(>.ad-seg) .toc{position:sticky;top:84px}
  .side>.ad-seg{flex:1 1 0;padding:40px 0 480px}
}

/* ===== @media (max-width:1440px) and (min-width:1181px) ===== */
@media (max-width:1440px) and (min-width:1181px){
  .yr-w{display:none}
}

/* ===== @media (max-width:1180px) ===== */
@media (max-width:1180px){
  .yr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .nav{display:none}
  .seg button,  .seg a{width:46px}
  .seals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pn .tx{display:none}
  .pn,.pn.nx{width:60px;padding:0;justify-content:center}
  .nb{grid-template-columns:repeat(4,minmax(0,1fr))}
  .nb .nd:nth-child(1),.nb .nd:nth-child(7){display:none}
  .hg{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:36px}
  :where(body:not(.p-cat)) .ht h1{font-size:60px}
  :where(.p-cat) .ht h1{font-size:56px}
  .top6,.mvg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mg{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dc .nm+.nm{display:none}
  .nxg{grid-template-columns:repeat(3,minmax(0,1fr))}
  .nxg .nc:nth-child(n+4){display:none}
  .cats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ov{grid-template-columns:minmax(0,1fr)}
  .mts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sims{grid-template-columns:minmax(0,1fr)}
}

/* ===== @media (max-width:1024px) ===== */
@media (max-width:1024px){
  .gfx,.tools,.sub,.duo,.hg{grid-template-columns:minmax(0,1fr)}
  .shg{grid-template-columns:minmax(0,1fr);gap:28px}
  .hart{order:-1;height:380px}
  .lay{grid-template-columns:minmax(0,1fr)}
  .side{grid-column:1;grid-row:auto;margin-bottom:48px}
  .lay>article{grid-column:1;grid-row:auto}
  .side .toc,.side.stk .sti{position:static}
  .metr dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .metr dl>div:nth-child(2){border-top:0}
  .fg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .all{grid-template-columns:minmax(0,1fr);gap:20px}
  .all-side{position:static}
  .lg{flex-direction:row;flex-wrap:wrap;gap:8px 18px}
  .dc{min-height:104px;padding:9px 10px}
  .dc .dk{display:none}
  .ed{grid-template-columns:44px minmax(0,1fr)}
  .ed>svg{width:44px;height:44px;align-self:start}
  .ed .bt{grid-column:1/-1}
  .ad[data-size=halfpage],.ad-seg{display:none!important}
}

/* ===== @media (max-width:860px) ===== */
@media (max-width:860px){
  .yr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ===== @media (max-width:760px) ===== */
@media (max-width:760px){
  html{scroll-padding-top:64px}
  .yr-head{margin-bottom:24px;gap:18px}
  .yr-ctl{align-items:flex-start;width:100%}
  .yr-leg{justify-content:flex-start;gap:12px}
  /* mobile: karuzela miesięcy (kratki ~40 px, wygodne pod palec), start od bieżącego miesiąca */
  .yr-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -16px;padding:2px 16px 8px;scrollbar-width:none;overscroll-behavior-x:contain}
  .yr-grid::-webkit-scrollbar{display:none}
  .mo{flex:0 0 86%;scroll-snap-align:center;padding:16px 12px 12px;border-radius:22px}
  .mo-h{margin:0 4px 10px}
  .mo-h a{font-size:17px}
  .mo-h small{font-size:12.5px}
  .wk span{font-size:11px}
  .dd{gap:3px}
  .dd a,.dd span{font-size:14px;border-radius:10px}
  .dd a.ph::after{bottom:4px;width:5px;height:5px;margin-left:-2.5px}
  .dd a:hover{transform:none;box-shadow:none}
  body{font-size:16px}
  .wrap{padding:0 16px}
  .hdr{height:52px}
  .hdr .wrap{gap:12px}
  .logo{font-size:15px}
  .logo span{display:none}
  .logo svg{width:28px;height:28px}
  .hdr .btn,.hdr .dsk{display:none}
  .mob{display:grid}
  :where(body:not(.p-home):not(.p-cat)) .hero{padding:10px 0 24px}
  :where(.p-home) .hero{padding:12px 0 18px}
  :where(.p-cat) .hero{padding:10px 0 26px}
  .hhead{grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:14px}
  .bcr{margin-bottom:10px;gap:10px}
  :where(body:not(.p-month):not(.p-cat):not(.p-holiday)) .bc{font-size:12.5px;margin-bottom:8px;height:40px;padding-right:140px}
  :where(.p-month) .bc{font-size:12.5px}
  :where(.p-cat) .bc{font-size:12.5px;margin-bottom:12px}
  :where(.p-holiday) .bc{font-size:12.5px;padding-top:12px}
  :where(.p-day) .bc li:last-child{display:none}
  .dh{gap:10px;align-items:start;grid-template-columns:minmax(0,1fr)}
  .pm{height:36px;padding:0 10px 0 6px;border-radius:12px;font-size:13px;gap:4px}
  .pm.nx{padding:0 6px 0 10px}
  .pm small,.pm .pmn{display:none}
  .pm .pms{display:inline!important}
  .hg{gap:18px}
  :where(body:not(.p-month):not(.p-cat)) .eye{font-size:11px;margin-bottom:4px}
  :where(.p-month,.p-cat) .eye{font-size:11px;margin-bottom:6px}
  .eye .mwd{display:inline}
  .ht h1 em{display:none}
  .dw{width:54px;height:54px;border-radius:15px}
  .dw small{font-size:9.5px}
  .dw strong{font-size:25px;margin-top:2px}
  :where(body:not(.p-day):not(.p-month):not(.p-cat)) .ht h1{font-size:34px}
  :where(.p-day) .ht h1{font-size:36px}
  :where(.p-month) .ht h1{font-size:46px}
  :where(.p-cat) .ht h1{font-size:40px}
  :where(body:not(.p-day)) .hsub{font-size:12.5px;line-height:1.3;margin-top:3px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  :where(.p-day) .hsub{font-size:13.5px;line-height:1.35;margin-top:6px}
  .hsub .dsk,.week .seg{display:none}
  .week{gap:6px}
  .arr{width:36px;height:36px}
  .dnav{gap:6px;position:absolute;top:0;right:16px}
  .pn,.pn.nx,.calb{width:40px;height:40px;border-radius:50%}
  .calb span{display:none}
  .calb svg.ic{width:18px;height:18px}
  .pn svg.ic{width:18px;height:18px;color:var(--ink)}
  .calpop{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;transform-origin:bottom center;padding:16px 16px 18px;z-index:70}
  .cg a{height:42px}
  .sk{font-size:15px;line-height:1.5;margin-top:12px}
  .sk .skl{font-size:10.5px;margin-right:6px}
  .hl1{font-size:14.5px;margin-top:10px;gap:4px 8px}
  .nofree{height:28px;font-size:13px}
  .intro{font-size:15.5px;line-height:1.5;margin-top:12px}
  .sts{gap:6px;margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .sts li{height:38px;font-size:12.5px;padding:0 10px 0 9px;gap:6px;min-width:0}
  .sts li b{font-size:15px}
  .stb{margin-top:18px}
  .sleg{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
  .sleg b{font-size:17px}
  /* kolaż: pasek 4 kwadratów bez podpisów */
  .cl,.cl.n4{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;gap:8px}
  .ct,.ct.c1,:where(.p-month) .cl .c2,:where(.p-month) .cl .c3,.cl.n4 .c2,.cl.n4 .c3,.cl.n4 .c4,:where(.p-cat) .ct.c4{grid-row:auto;grid-column:auto;aspect-ratio:1;border-radius:18px}
  .ct .ca,.ct.c1 .ca,.cl.n4 .c2 .ca,:where(.p-cat) .ct.c4 .ca{inset:6px}
  .ct .cc{display:none}
  :where(.p-holiday) .bc li+li::before{margin:0 6px}
  .sh{padding-bottom:28px}
  .shg{margin-top:14px;gap:20px}
  .hart{border-radius:26px;height:256px}
  .hcap .hx{display:none}
  .hart .ai{inset:14px 14px 50px}
  .hcap{left:18px;right:18px;bottom:12px;font-size:11.5px;line-height:1.35}
  .sh h1{font-size:35px;line-height:1.04}
  .ld{font-size:16.5px;margin-top:10px}
  .when{margin-top:20px;gap:14px;padding:12px 18px 12px 12px;border-radius:20px;width:100%}
  .dchip{width:56px;height:60px;border-radius:14px}
  .dchip strong{font-size:28px;margin-top:3px}
  .dchip small{font-size:10px}
  .wday{font-size:21px}
  .wn{font-size:14px}
  .sealp{margin-top:14px;font-size:13px;padding:7px 14px 7px 9px}
  .sealp .s-l{white-space:normal}
  .hact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:12px}
  .hact .cel{grid-column:1/-1;justify-content:center}
  .hact .btn,.hact .drop>.btn{width:100%;justify-content:center;padding:0 12px;font-size:14.5px}
  .menu{min-width:0;width:calc(200% + 8px)}
  .body{padding:28px 0 64px}
  .side{margin-bottom:40px}
  .metr{padding:16px 18px 14px;border-radius:22px}
  .metr dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;margin-top:4px}
  .metr dl>div{grid-template-columns:minmax(0,1fr);gap:1px;padding:8px 0;font-size:14px}
  .metr dt{font-size:12px}
  .metr dl>.full{grid-column:1/-1}
  .metr dd small{font-size:12.5px}
  .chk{font-size:12.5px;margin-top:6px;padding-top:10px}
  .toc{margin-top:10px;background:var(--g);border-radius:18px;padding:0 16px}
  .toc summary{padding:14px 0;cursor:pointer;justify-content:space-between;text-transform:none;letter-spacing:0;font-size:15px;color:var(--ink)}
  .toc summary .cur{display:inline;color:var(--mute);font-weight:400;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .toc summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg) translateY(-3px);transition:transform .3s;flex:none}
  .toc details[open] summary::after{transform:rotate(225deg)}
  .toc ol{margin-bottom:14px}
  .prog{display:none}
  .prose{font-size:17.5px;line-height:1.68}
  .prose h2{font-size:27px;margin:56px 0 14px;scroll-margin-top:72px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:26px 0}
  .stats div{padding:14px 12px;font-size:12.5px;border-radius:18px}
  .stats b{font-size:22px}
  .fig{padding:22px 16px 16px;border-radius:22px;margin-top:28px}
  .tl-h{display:none!important}
  .tl-v{display:block!important;max-width:360px;margin:0 auto}
  .pl3{grid-template-columns:minmax(0,1fr);gap:10px}
  .pc{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;padding:18px}
  .pc .pi{grid-row:1/4}
  .pc .y{margin-top:0;font-size:24px}
  .ideas{grid-template-columns:minmax(0,1fr);gap:10px}
  .idea{display:grid;grid-template-columns:112px minmax(0,1fr);border-radius:22px}
  .idea .ia{height:auto;min-height:120px;padding:10px 0 10px 6px}
  .idea .ib2{padding:16px 16px 16px 4px}
  .idea h3{font-size:16.5px}
  .idea p{font-size:14px}
  .mit{padding:24px 20px;border-radius:24px}
  .mit h3{font-size:21px}
  :where(.p-holiday) .qans{font-size:16px}
  .faq summary{font-size:16.5px}
  .low{padding:56px 0}
  .lh{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:18px}
  .lh h2{font-size:26px}
  .mts{gap:10px}
  .mt{border-radius:22px}
  .mt .ma{height:96px;padding:8px 10px 0}
  .mt .mb2{padding:6px 14px 16px}
  .mt h3{font-size:15px;margin-top:8px}
  .mt p{font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .mt .seal em{display:none}
  .mt .go{font-size:13px}
  .si{grid-template-columns:72px minmax(0,1fr);padding:10px 14px 10px 10px;gap:14px;border-radius:20px}
  .si .mi{width:72px;height:72px;border-radius:15px}
  .low2{margin-top:48px}
  .ed{margin-top:48px;padding:22px 20px;gap:14px 16px;border-radius:22px}
  .ed .bt .btn{flex:1;justify-content:center}
  /* kafle: układ mobilny z głównej */
  .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:none;gap:10px}
  .t{border-radius:22px}
  :where(body:not(.p-day)) .tb{grid-column:1/-1;grid-row:auto;flex-direction:column;height:212px}
  :where(.p-day) .tb{grid-column:1/-1;grid-row:auto;flex-direction:column;height:200px}
  :where(body:not(.p-day)) .tb.solo{grid-column:1/-1;grid-row:auto;flex-direction:column;height:212px}
  :where(.p-day) .tb.solo{grid-column:1/-1;grid-row:auto;flex-direction:column;height:200px}
  :where(body:not(.p-day)) .tb .t-art{order:0;position:absolute;top:0;right:0;height:134px;width:58%;padding:12px 16px 0 0}
  :where(.p-day) .tb .t-art{order:0;position:absolute;top:0;right:0;height:128px;width:58%;padding:12px 16px 0 0}
  :where(body:not(.p-day)) .tb.solo .t-art{order:0;position:absolute;top:0;right:0;height:134px;width:58%;padding:12px 16px 0 0}
  :where(.p-day) .tb.solo .t-art{order:0;position:absolute;top:0;right:0;height:128px;width:58%;padding:12px 16px 0 0}
  .tb .seal{top:16px;left:18px;flex-direction:column;align-items:flex-start;gap:5px;max-width:40%}
  .tb .seal .s-l{white-space:normal}
  .tb .seal em{font-size:12px;white-space:normal}
  .tb .t-body{position:absolute;left:0;right:0;bottom:0;padding:0 18px 16px}
  .tb .t-cat,.tb .t-desc,.tb .t-act{display:none}
  .tb .t-name{font-size:23px;line-height:1.1;max-width:none}
  :where(body:not(.p-day)) .ts{grid-column:auto;height:178px}
  :where(.p-day) .ts{grid-column:auto;height:170px}
  :where(body:not(.p-day)) .ts.wide{grid-column:auto;height:178px}
  :where(.p-day) .ts.wide{grid-column:auto;height:170px}
  .ts.tall{grid-column:1/-1;grid-row:auto}
  :where(body:not(.p-day)) .ts .t-art{left:0;right:0;width:auto;height:78px;padding:10px 10px 0 8px}
  :where(.p-day) .ts .t-art{left:0;right:0;width:auto;height:76px;padding:10px 10px 0 8px}
  :where(body:not(.p-day)) .ts.wide .t-art{left:0;right:0;width:auto;height:78px;padding:10px 10px 0 8px}
  :where(.p-day) .ts.wide .t-art{left:0;right:0;width:auto;height:76px;padding:10px 10px 0 8px}
  :where(body:not(.p-day)) .ts.tall .t-art{left:0;right:0;width:auto;height:78px;padding:10px 10px 0 8px}
  :where(.p-day) .ts.tall .t-art{left:0;right:0;width:auto;height:76px;padding:10px 10px 0 8px}
  .ts .t-art .art{margin:0;width:auto}
  .ts .seal,.ts.wide .seal{position:absolute;top:auto;bottom:12px;left:14px;max-width:none;flex-direction:row;gap:5px;font-size:11.5px}
  .ts .seal svg{width:15px;height:15px}
  .ts .seal em{display:none}
  :where(body:not(.p-day)) .ts .t-body{top:92px;bottom:auto;right:0;padding:0 12px 0 14px}
  :where(.p-day) .ts .t-body{top:88px;bottom:auto;right:0;padding:0 12px 0 14px}
  :where(body:not(.p-day)) .ts.wide .t-body{top:92px;bottom:auto;right:0;padding:0 12px 0 14px}
  :where(.p-day) .ts.wide .t-body{top:88px;bottom:auto;right:0;padding:0 12px 0 14px}
  .ts .t-name,.ts.tall .t-name{font-size:15px;line-height:1.18;letter-spacing:-.01em}
  .ts .t-name .full{display:none}
  .ts .t-name .short{display:inline}
  .ts .t-desc{display:none}
  .grid.has-more{grid-template-rows:none}
  .morebox{margin-top:10px}
  .mb{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px 16px 14px;border-radius:22px}
  .mb-n strong{font-size:30px}
  .mb-l li{font-size:13px;padding:6px 11px 6px 8px}
  .mb-l li:nth-child(n+3):not(.mb-x){display:none}
  .mb-b{justify-content:center}
  /* lista */
  :where(body:not(.p-home)) .sec{padding:40px 0}
  :where(.p-home) .sec{padding:72px 0}
  .h2{font-size:36px}
  .lead{font-size:17px}
  .gfx{gap:32px}
  .stage{height:560px;border-radius:28px}
  .phone{transform:scale(.82);transform-origin:top center;left:50%;margin-left:-150px;top:20px}
  .gfx .h2{font-size:34px}
  .post{left:10px;bottom:14px;transform:rotate(-5deg) scale(.5);transform-origin:bottom left}
  .stage.sq .phone{transform:scale(.72) translateX(70px)}
  .stage.sq .post{transform:rotate(0) scale(1);transform-origin:bottom left;left:calc(50% - 150px);bottom:120px}
  .seals{grid-template-columns:minmax(0,1fr);margin-top:36px;gap:10px}
  .sc{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:16px;padding:22px 20px}
  .sc>svg{width:40px;height:40px;grid-row:1/4}
  .sc h3{margin-top:0;font-size:18px}
  .sc p{font-size:14.5px}
  .sc .ex{padding-top:8px}
  .stat{gap:28px}
  .stat b{font-size:30px}
  .tool{padding:28px 20px;border-radius:28px}
  .tool h2{font-size:30px}
  .dform{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}
  .dform .btn{grid-column:1/-1}
  .dr{grid-template-columns:52px minmax(0,1fr);padding-right:12px}
  .dr .mi{width:52px;height:52px}
  .dr .lnk{display:none}
  .qhd{grid-template-columns:minmax(0,1fr) 84px;gap:10px}
  .qart{width:84px;height:63px}
  .qcard{padding:20px}
  .qcard h3{font-size:22px}
  .sub{padding:32px 20px;border-radius:28px;gap:36px}
  .sform{grid-template-columns:minmax(0,1fr)}
  .ntf{margin:0}
  .calsec{padding-top:28px}
  :where(body:not(.p-month):not(.p-cat)) .shd{margin:20px 0 10px}
  :where(.p-month) .shd{margin-bottom:12px}
  :where(.p-cat) .shd{margin:28px 0 10px}
  :where(body:not(.p-month)) .shd h2{font-size:19px}
  :where(.p-month) .shd h2{font-size:22px}
  .shd .lnk{font-size:14px}
  .grid.n1{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:none;gap:10px}
  /* dni z 1-2 świętami: kafle niosą całą treść (lista jest ukryta), więc pokazujemy opis i źródło */
  .few .tb,.few .tb.solo,.few .ts.tall{height:auto;min-height:0}
  .few .tb .t-body,.few .ts.tall .t-body{position:relative;top:auto;padding:136px 18px 18px}
  .few .tb .t-desc,.few .ts.tall .t-desc{display:block;font-size:14.5px;line-height:1.45;margin-top:6px;-webkit-line-clamp:unset}
  .few .tb .t-cat{display:block;font-size:12.5px;margin-bottom:4px}
  .few .ts.tall .t-art{left:auto;right:0;width:58%;height:128px;padding:12px 16px 0 0}
  .few .ts.tall .seal{top:16px;bottom:auto;left:18px;flex-direction:column;align-items:flex-start;gap:5px;max-width:40%;font-size:13px}
  .few .ts.tall .seal svg{width:20px;height:20px}
  .few .ts.tall .seal em{display:block;font-size:12px;white-space:normal}
  .few .ts.tall .t-name{font-size:23px;line-height:1.1}
  .few .ts.tall .t-name .full{display:inline}
  .few .ts.tall .t-name .short,.few .tb .t-act{display:none}
  .calh{margin-bottom:14px;gap:12px}
  .calh h2{font-size:28px}
  .calh p{font-size:13.5px}
  .calc{justify-content:space-between;width:100%;gap:10px}
  .leg{gap:10px;font-size:12px}
  .leg .hd{display:none}
  .ysw button{height:32px;padding:0 12px;font-size:13.5px}
  /* kompaktowa siatka: same numery i kolor */
  .cg7{gap:4px}
  .cg7 .wkd{padding:0;text-align:center;font-size:11px;letter-spacing:.02em}
  .dc{min-height:0;aspect-ratio:1;padding:0;align-items:center;justify-content:center;border-radius:11px}
  .dc .top{margin:0;display:block}
  .dc .dn{font-size:16px;letter-spacing:-.01em}
  .dc .dk,.dc .nm,.dc .tg,.dc .tdl{display:none}
  .dc.mv::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;opacity:.75}
  .dc.td{box-shadow:0 0 0 2px var(--ink)}
  .dc:hover{transform:none;box-shadow:none}
  .dc.td:hover{box-shadow:0 0 0 2px var(--ink)}
  .dc.past:not(.td){opacity:1}
  .calf{font-size:13px;margin-top:12px}
  .calf .lnk{display:none}
  /* agenda pod siatką */
  .ag{display:block;margin-top:18px;list-style:none;border-top:1px solid var(--g2)}
  .ag li{border-bottom:1px solid var(--g2)}
  .ag a{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 2px;min-height:56px}
  .ag .agd{width:40px;height:42px;border-radius:11px;background:var(--l1);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
  .ag .agd b{font-size:16px;font-weight:600}
  .ag .agd small{font-size:9.5px;font-weight:600;text-transform:uppercase;margin-top:2px;opacity:.7}
  .ag .agd.l2{background:var(--l2)}
  .ag .agd.l3{background:var(--l3);color:#0A2540}
  .ag .agd.l4{background:var(--l4);color:#fff}
  .ag .agd.su small{color:#C9341F;opacity:1}
  .ag .agd.l3.su small,.ag .agd.l4.su small{color:#FFE1DB}
  .ag .an{min-width:0}
  .ag .an b{display:block;font-size:15px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ag .an small{display:block;font-size:12.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ag .an small em{font-style:normal;color:#424245}
  .ag .ac{font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:2px}
  .ag .ac svg.ic{width:16px;height:16px}
  .ag li.td a{background:var(--g);border-radius:14px;padding-left:8px;padding-right:8px;margin:0 -8px}
  .ag li.td .an b::after{content:"dziś";font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:#E8432F;border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:2px}
  /* najważniejsze: przewijane w swoim kontenerze */
  .top6{display:flex;overflow-x:auto;gap:10px;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-padding:0 16px;overscroll-behavior-x:contain}
  .top6::-webkit-scrollbar{display:none}
  .tc{flex:0 0 84%;scroll-snap-align:start;min-height:156px;border-radius:22px}
  .tc .tcb{padding:16px 0 14px 16px}
  .tc h3{font-size:17px}
  /* ruchome */
  .mvbox{border-radius:26px;padding:24px 16px 18px;margin:0 -4px}
  .mvh{grid-template-columns:minmax(0,1fr)}
  .mvh h2{font-size:25px}
  .mvh p{font-size:14.5px}
  .rul{padding:12px 10px 6px;border-radius:18px;margin-top:18px}
  .mvg{grid-template-columns:minmax(0,1fr);gap:10px}
  .mc{padding:16px 14px 14px;border-radius:18px}
  /* najbliższe: przewijane w swoim kontenerze */
  .nxg{display:flex;overflow-x:auto;gap:10px;margin:0 -16px;padding:2px 16px 8px;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-padding:0 16px;overscroll-behavior-x:contain}
  .nxg::-webkit-scrollbar{display:none}
  .nxg .nc,.nxg .nc:nth-child(n+4){display:flex;flex:0 0 72%;scroll-snap-align:start}
  .nc .na{height:96px}
  .fg{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
  .fg>div:first-child{grid-column:1/-1}
  :where(.p-home) .ftr{padding-bottom:110px}
  .mbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;align-items:center;gap:6px;position:fixed;left:12px;right:12px;bottom:12px;z-index:60;height:60px;padding:0 8px;border-radius:20px;background:rgba(29,29,31,.94);color:#fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateY(120%);transition:transform .5s var(--ease)}
  .mbar.on{transform:none}
  .mbar .ib{color:#fff;width:44px;height:44px}
  .mbar .ib:hover{background:rgba(255,255,255,.1)}
  .mbar .ml{font-size:14px;text-align:center;line-height:1.2}
  .mbar .ml small{display:block;font-size:11.5px;opacity:.65}
  .mbar .btn{height:40px;padding:0 14px;background:#fff;color:var(--ink);font-size:14px}
  .ad[data-size=billboard],.ad[data-size=infeed]{max-width:300px;min-height:250px}
  /* lista */
  .all-side h2{font-size:26px}
  .all-side .lead{font-size:14.5px}
  .lg{display:none}
  :where(body:not(.p-month):not(.p-cat)) .flt{flex-wrap:nowrap;overflow-x:auto;margin:16px -16px 0;padding:0 16px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  :where(.p-month) .flt{flex-wrap:nowrap;overflow-x:auto;margin:8px -16px 0;padding:0 16px 4px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding:0 16px}
  :where(.p-cat) .flt{flex-wrap:nowrap;overflow-x:auto;margin:12px -16px 0;padding:0 16px 4px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding:0 16px}
  .flt::-webkit-scrollbar{display:none}
  :where(body:not(.p-month)) .chip{flex:none;height:40px;scroll-snap-align:start}
  :where(.p-month) .chip{flex:none;height:38px;scroll-snap-align:start}
  :where(body:not(.p-month)) .hl{margin:0 -8px}
  :where(.p-month) .hl{margin:0 -8px 0 -8px}
  :where(body:not(.p-month):not(.p-cat)) .hr{grid-template-columns:44px minmax(0,1fr) 24px;gap:12px;padding:14px 8px;border-radius:16px}
  :where(.p-month) .hr{grid-template-columns:44px minmax(0,1fr) 22px;gap:12px;padding:12px 8px;border-radius:16px}
  :where(.p-cat) .hr{grid-template-columns:38px 40px minmax(0,1fr) 20px;gap:10px;padding:12px 8px;border-radius:16px}
  :where(body:not(.p-cat)) .hr+.hr::before{left:64px;right:8px}
  :where(.p-cat) .hr+.hr::before{left:106px;right:8px}
  :where(body:not(.p-cat)) .hr .mi{width:44px;height:44px;border-radius:13px;padding:3px}
  :where(.p-cat) .hr .mi{width:40px;height:40px;border-radius:12px;padding:2px}
  :where(body:not(.p-cat)) .hr .mi.ini{font-size:17px}
  :where(.p-cat) .hr .mi.ini{font-size:16px}
  .hr h3{font-size:16.5px}
  .hr .meta{font-size:12.5px;gap:3px 7px}
  .hr .meta .seal{font-size:12.5px}
  .hr .meta .sd{display:none}
  #wszystkie[hidden]+#grafika{padding-top:24px}
  .hr .meta .src{flex-basis:100%}
  .hr p{font-size:14.5px;line-height:1.45}
  :where(body:not(.p-month):not(.p-cat)) .hr .go{width:24px;height:24px;box-shadow:none;margin-top:10px;align-self:start}
  :where(.p-month) .hr .go{width:22px;height:22px;box-shadow:none;margin-top:10px;align-self:start}
  :where(.p-cat) .hr .go{width:20px;height:20px;box-shadow:none;margin-top:12px;align-self:start}
  :where(body:not(.p-day)) .hr .go svg.ic{width:18px;height:18px;color:var(--mute)}
  :where(.p-day) .hr .go svg.ic{width:20px;height:20px;color:var(--mute)}
  .hr.ln:hover .go{background:none;color:var(--ink);box-shadow:none}
  .hl .ex{padding:12px 8px 0 64px}
  :where(body:not(.p-cat)) .card{padding:24px 20px;border-radius:26px}
  :where(.p-cat) .card{padding:22px 18px 18px;border-radius:24px}
  :where(body:not(.p-cat)) .card h2{font-size:24px}
  :where(.p-cat) .card h2{font-size:23px}
  .gx{grid-template-columns:minmax(0,1fr);gap:20px}
  .pv{justify-content:center;gap:10px}
  .psq{width:200px;height:200px;padding:14px 14px 10px}
  .psq h4{font-size:19px;margin-bottom:6px}
  .psq .pr{padding:1px 0;grid-template-columns:18px minmax(0,1fr)}
  .psq .pr .m{width:18px;height:18px}
  .psq .pr b{font-size:10px}
  .pv .pmore{font-size:9.5px;margin-top:2px}
  .pst{width:116px;height:206px;padding:12px 9px 8px}
  .pst h4{font-size:14px}
  .pst .pr{grid-template-columns:20px minmax(0,1fr);gap:5px}
  .pst .pr .m{width:20px;height:20px}
  .pst .pr b{font-size:8px}
  :where(.p-day) .acts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  :where(.p-day) .acts .btn{justify-content:center;padding:0 10px}
  :where(.p-day) .acts .btn:first-child{grid-column:1/-1}
  :where(.p-day) .fmt{display:flex}
  :where(.p-day) .fmt button{flex:1}
  /* sąsiednie dni: poziomy pasek przewijany */
  .nb{display:flex;overflow-x:auto;gap:8px;margin:0 -16px;padding:0 16px 6px;scrollbar-width:none;scroll-snap-type:x mandatory}
  .nb::-webkit-scrollbar{display:none}
  .nb .nd,.nb .nd:nth-child(1),.nb .nd:nth-child(7){display:flex;flex:0 0 138px;min-height:136px;scroll-snap-align:start}
  :where(.p-cat) .card .lead{font-size:14px}
  .ch{margin-top:12px}
  .chf{font-size:12.5px}
  .ch .yl,.shd h2 .lg2,.hr .rule svg.ic{display:none}
  .tps{flex:none;display:flex;overflow-x:auto;gap:6px;margin:16px -18px 0;padding:0 18px 4px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding:0 16px}
  .tps::-webkit-scrollbar{display:none}
  .tp{flex:none;flex-direction:row;align-items:center;height:40px;padding:0 14px;border-radius:99px;scroll-snap-align:start}
  .tp .tr{gap:7px}
  .tp b{font-size:14px;font-weight:500}
  .tp .tpb{display:none}
  :where(body:not(.p-cat)) .gh{padding:8px 4px;margin:0 -4px}
  :where(.p-cat) .gh{padding:0 8px 8px;margin:0 -8px 4px}
  .gh .gd{width:40px;height:44px}
  .gh .gd b,:where(body:not(.p-cat)) .gh h3{font-size:17px}
  :where(.p-cat) .gh h3{font-size:18px}
  .gh .gs{font-size:12.5px}
  .gh .gm span{display:none}
  .dt{width:38px;height:42px;border-radius:11px}
  .dt b{font-size:16px}
  .dt small{font-size:9.5px;margin-top:2px}
  .hr h4{font-size:16px}
  .hr .meta .ct2,.hr .meta .cti{display:none}
  .hm{margin-left:48px;padding:0 4px 4px;font-size:14px}
  .gmore{margin-left:52px;padding:2px 4px;font-size:13.5px}
  .hr .meta .tpc,.hr .meta .tpi{display:none}
  .hr .rule{font-size:12.5px;padding:6px 10px;gap:2px 8px}
  .nowl{padding:6px 8px}
  :where(body:not(.p-cat)) .mnote{padding-left:4px}
  :where(.p-cat) .mnote{padding-left:8px}
  /* inne miesiące: 3 kolumny */
  .mg{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mgt{padding:11px 10px 10px;border-radius:16px}
  .mgt .mh{flex-direction:column;gap:0;margin-bottom:8px}
  .mgt .mh b{font-size:14px}
  .mgt .mh small{font-size:11.5px}
  .md{gap:1.5px}
  .md i{border-radius:2px}
  .cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ck .ka{height:96px}
  .ck b{font-size:15px}
  .tst{bottom:16px}
}

/* ===== @media (prefers-reduced-motion:reduce) ===== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
/* ==========================================================================
   Dodatki produkcyjne (nie było ich w mockupach jako CSS — w mockupach robił to JS z danymi)
   ========================================================================== */
/* Ilustracja ART: placeholder <span class="art" data-k data-c> dostaje te same wymiary co SVG (reguła .art wyżej) — zero CLS */
/* Wykres kategorii: zaznaczony miesiąc (PHP rysuje SVG, app.js przełącza aria-pressed i klasę .sel) */
.ch .bar[aria-pressed=true] .b-pg{fill:var(--ink)}
.ch .bar[aria-pressed=true] .b-nn{fill:#8E8E93}
.ch.sel .bar[aria-pressed=false]{opacity:.42}
.ch .bar{transition:opacity .25s}
/* „Wyczyść filtry” w pasku aktywnych filtrów: bez odstępu z listy miesiąca */
.af .clr{margin-top:0}
/* Licznik „Świętuję” w trakcie zapisu */
.cel[aria-busy=true]{opacity:.7}
/* Popover „Do kalendarza” na stronie święta: nad treścią */
.drop .menu[hidden]{display:none}
/* Lead w kolumnie listy: bez limitu 46ch z głównej */
.all-side .lead{max-width:none}
/* === szablon: layout (nagłówek, menu mobilne, stopka) === */
.nav{align-items:center}
.nmo{position:relative}
.nmo>button{display:inline-flex;align-items:center;gap:2px;font-size:14px;color:#424245}
.nmo>button:hover,.nmo>button[aria-expanded=true],.nmo>button.on{color:var(--ink)}
.nmo>button.on{font-weight:500}
.menu.mm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:360px;left:-14px;top:calc(100% + 14px)}
.menu.mm a,.mpm a{padding:9px 12px;font-size:14.5px;color:var(--ink)}
.menu.mm a.cur,.mpm a.cur{font-weight:600;background:var(--g)}
.hdr .ib[aria-current]{background:var(--g)}
.mpan.menu{position:absolute;left:0;right:0;top:100%;min-width:0;border-radius:0 0 22px 22px;padding:10px 16px 18px;max-height:calc(100vh - 60px);overflow:auto;box-shadow:0 24px 40px -24px rgba(20,33,61,.3);border-top:1px solid rgba(0,0,0,.06)}
.mpan nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.mpan nav a{font-size:16px;padding:12px}
.mpl{font-size:12.5px;color:var(--mute);font-weight:500;margin:10px 12px 4px}
.mpm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.mpm a{display:block;border-radius:12px}
.ftr .fh2{margin-top:26px}
.ftr ul.fc2{columns:2;column-gap:16px}
.ftr ul.fc2 li:first-child{margin-top:0}
@media (max-width:1180px){.hdr .mob{display:grid}}
@media (min-width:1181px){.mpan{display:none!important}}
@media (max-width:760px){.mpan.menu{max-height:calc(100vh - 52px)}}

/* === szablon: wspólne (znaczek „dla dzieci” — jeden dla wszystkich szablonów) === */
.kid{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 7px;border-radius:99px;background:#FFF6D6;color:#5C4500;font-size:11.5px;font-weight:600;line-height:1.5;letter-spacing:.01em;white-space:nowrap;vertical-align:middle}
.kid::before{content:"";width:6px;height:6px;border-radius:50%;background:#F2B705;flex:none}
.kdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#F2B705;margin-right:6px;vertical-align:middle}
.kage .kid{margin-right:6px}
.fgp{display:contents}

/* === szablon: dzień === */
/* skróty „Dziś / Jutro” w linii nad datą */
.eye .ejmp{margin-left:14px;white-space:nowrap}
.eye .ejmp a{color:var(--ink);text-decoration:underline;text-decoration-color:#C7C7CC;text-underline-offset:3px}
.eye .ejmp a:hover{text-decoration-color:currentColor}
.eye .ejmp a+a{margin-left:12px}
/* dzień ustawowo wolny: czerwona kropka */
.hsub .dfr{color:var(--ink);font-weight:500;white-space:nowrap}
.hsub .dfr i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#E8432F;margin-right:6px;vertical-align:2px}
/* podgląd grafiki dnia = gotowe PNG */
.pv>.pimg{padding:0}
.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.gxo{margin-top:14px;font-size:14px}
/* „Dni obok”: bieżący dzień (numer .ndd zamiast mockupowego .dd) */
.nd.cur .ndd small{color:rgba(255,255,255,.65)}
/* chip filtra „Dla dzieci”: żółta kropka jak w znaczku */
.chip.ckid::before{content:"";width:7px;height:7px;border-radius:50%;background:#F2B705;flex:none}
.chip.ckid{padding-left:13px}
@media (max-width:760px){
  .eye .ejmp{margin-left:10px}
  /* nieparzysta liczba małych kafli: ostatni na całą szerokość */
  .p-day .grid .ts:last-child:nth-child(even){grid-column:1/-1}
}

/* === szablon: category === */
/* „Najbliższe”: znaczek dla dzieci pod nazwą */
.nc .nck{margin-top:7px;line-height:1}
/* chip filtra „Dla dzieci” w osobnym rzędzie pod statusami */
.flt.fkid{margin-top:8px}
.fkid .chip .kdot{margin-right:0}
/* wiersz listy: dopisek „bez osobnej strony” pod opisem */
.hr p.nopg{font-size:12.5px;line-height:1.4;color:var(--mute);margin-top:4px}
@media (max-width:760px){
  .flt.fkid{margin-top:6px}
}
/* dzień: długie „kto, rok” w pieczęci dużego kafla ucinamy wielokropkiem */
@media (min-width:761px){.p-day .tb .seal{right:28px}}
/* lista dnia: po znaczku „dla dzieci” bez kropki-separatora (zawisała na końcu linii) */
.p-day .hr .meta .kid+.sd{display:none}
@media (max-width:760px){
  .hsub .dfr{white-space:normal}
  .p-day .tb .seal em{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
/* dzień bez świąt: biała karta z przejściem do najbliższych dni */
.dempty{background:#fff;border-radius:28px;padding:32px 36px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 24px 48px -32px rgba(20,33,61,.25);max-width:880px}
.dempty .de-t{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.25}
.dempty .de-d{font-size:16px;color:#515154;margin-top:8px;max-width:60ch;line-height:1.5}
.de-n{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.de-a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:center;background:var(--g);border-radius:18px;padding:12px 14px 12px 18px;min-width:200px;transition:background .2s}
.de-a:hover{background:var(--g2)}
.de-a small{font-size:12.5px;color:var(--mute)}
.de-a b{grid-row:2;font-size:15px;font-weight:600;letter-spacing:-.01em}
.de-a .ic{grid-row:1/3;grid-column:2;width:18px;height:18px;color:var(--mute)}
/* bez grafiki dnia karta zgłoszenia nie rozciąga się na całą szerokość */
#grafika .wrap:not(.duo) .zg{max-width:880px}
@media (max-width:760px){
  .dempty{padding:22px 20px;border-radius:22px}
  .dempty .de-t{font-size:19px}
  .dempty .de-d{font-size:15px}
  .de-n{flex-direction:column}
  .de-a{min-width:0}
}

/* === szablon: strony (kategorie, strona stała, szukaj, zgłoś, błąd — body.p-page) === */
/* kategorie: najważniejsze w każdej kategorii */
.kpg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kpc{background:var(--g);border-radius:22px;padding:18px 18px 16px;min-width:0;display:flex;flex-direction:column}
.kph{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.kph h3{font-size:17px;font-weight:600;letter-spacing:-.015em}
.kph h3 a:hover{text-decoration:underline}
.kph .num{font-size:13px;color:var(--mute);white-space:nowrap}
.kpc ul{list-style:none;flex:1}
.kpc li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:7px 0;border-top:1px solid rgba(0,0,0,.06)}
.kpc li:first-child{border-top:0}
.kpc .mi{width:44px;height:44px;border-radius:13px;background:var(--tint);padding:3px}
.kpc .mi.ini{background:#fff;display:grid;place-items:center;font-size:17px;font-weight:600;color:#A1A1A6;padding:0}
.kpt{min-width:0;font-size:15px;font-weight:500;line-height:1.3}
.kpt a:hover{text-decoration:underline}
.kpt small{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:400;color:var(--mute);margin-top:3px}
.kpt small .seal svg{width:14px;height:14px}
.kpc>.lnk{font-size:14px;margin-top:10px}
/* strona stała: proza z listami i linkami */
.pgb{padding-top:56px}
.p-page .prose ul,.p-page .prose ol{max-width:620px;margin:14px 0 0;padding-left:1.2em}
.p-page .prose li{margin-top:.5em}
.p-page .prose li::marker{color:var(--mute)}
.p-page .prose h3{font-size:22px;font-weight:600;letter-spacing:-.015em;color:var(--ink);margin:36px 0 10px}
.p-page .prose a:not(.btn){color:var(--acc);text-decoration:underline;text-decoration-color:rgba(0,102,204,.35);text-underline-offset:3px}
.p-page .prose a:not(.btn):hover{text-decoration-color:currentColor}
.p-page .prose blockquote{border-left:3px solid var(--g2);padding-left:16px;color:var(--mute);margin-top:14px}
.p-page .toc a[aria-current=true]{border-left-color:var(--ink)}
.p-page .prog i{background:var(--ink)}
.pgo{display:flex;flex-wrap:wrap;gap:8px;margin-top:56px}
/* wyszukiwarka (hero i 404) */
.sfm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;max-width:640px;margin-top:22px}
.sfm .btn{height:46px;border-radius:14px}
.sfm .srch .inp{background:#fff}
.p-page .ht h1 em{font-style:normal;color:var(--mute);font-weight:500}
.srs{padding-top:40px}
.sct{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.sc1{display:flex;align-items:center;gap:18px;background:#fff;border-radius:18px;padding:12px 16px 12px 18px;box-shadow:inset 0 0 0 1px var(--g2);transition:box-shadow .2s,transform .2s var(--ease)}
.sc1:hover{box-shadow:var(--sh2);transform:translateY(-1px)}
.sc1 b{display:block;font-size:16px;font-weight:600}
.sc1 small{font-size:13px;color:var(--mute)}
.sbr{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
/* zgłoś */
.zgw{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:start}
.zta{height:auto!important;min-height:110px;padding:12px 14px!important;line-height:1.5;resize:vertical}
.zg .zf .inp{padding-left:14px}
.zhp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.zerr{margin-top:16px;padding:12px 16px;border-radius:14px;background:#FDECEA;color:#8A1C12;font-size:14.5px;font-weight:500}
.zok{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px}
.zok>svg.ic{width:40px;height:40px;color:#1a7f37;stroke-width:1.5}
.zact{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.zsd{padding-top:10px}
.zsd h2{font-size:24px;font-weight:600;letter-spacing:-.02em}
.zst{list-style:none;counter-reset:z;margin:18px 0 20px}
.zst li{counter-increment:z;position:relative;padding:0 0 18px 44px;font-size:15px;line-height:1.5;color:#515154}
.zst li::before{content:counter(z);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--g);display:grid;place-items:center;font-size:14px;font-weight:600;color:var(--ink)}
.zst b{display:block;color:var(--ink);font-weight:600}
.zse{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}
.zse .seal{font-size:13px;font-weight:500;gap:6px}
.zse .seal svg{width:16px;height:16px}
/* 404/410 */
.erh .eye .num{color:#E8432F}
@media (max-width:1024px){
  .kpg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zgw{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media (max-width:760px){
  .kpg{grid-template-columns:minmax(0,1fr)}
  .pgb{padding-top:28px}
  .sfm{grid-template-columns:minmax(0,1fr)}
  .sc1{flex:1 1 100%;justify-content:space-between}
  .pgo{margin-top:40px}
}
.dempty .de-t,.de-a b{color:var(--ink)}

/* === szablon: holiday === */
/* Liczby w treści: 1–4 kafle (mockup ma zawsze 3) */
.stats.n1{grid-template-columns:minmax(0,320px)}
.stats.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stats.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stats.n4 b{font-size:30px}
/* Daty ruchome pod blokiem .when */
.mvd{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;list-style:none;padding:0}
.mvd li{background:#fff;border-radius:99px;padding:6px 14px;font-size:13.5px;color:var(--mute);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.mvd li .num{color:var(--ink);font-weight:600;margin-right:2px}
.mvd li.cur{box-shadow:inset 0 0 0 1.5px var(--ink);color:var(--ink)}
/* Znaczek „dla dzieci” w nadtytule, kafelkach i podobnych */
.cat .kid{margin-left:8px;text-transform:none;letter-spacing:.01em}
.cat a.kid:hover{color:#5C4500;background:#FFEDA8}
.mt h3 .kid,.si .seal .kid{margin-left:6px}
.si .seal{flex-wrap:wrap;row-gap:4px}
/* Lista źródeł: data dostępu */
.srcl small{color:var(--mute);font-size:12.5px;margin-left:4px;white-space:nowrap}
.metr dd small .lnk{font-weight:500}
@media (max-width:760px){
  .stats.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats.n4 b{font-size:22px}
  .stats.n2 b{font-size:22px}
  .mvd{margin-top:10px;gap:6px}
  .mvd li{padding:5px 11px;font-size:12.5px}
}

/* === szablon: home === */
/* sekcje „Najbliższe dni” i „Dla dzieci” zaraz pod hero: mniejszy odstęp niż .sec */
.p-home .hnx{padding:56px 0 0}
.p-home .hkid{padding:56px 0 0}
.p-home .hero .dempty.hem{max-width:none}
/* grafika dnia: gotowe PNG zamiast podglądu HTML (telefon w proporcji 9:16) */
.phone.gi{height:516px;top:52px}
.phone.gi .scr{padding:0;background:#F5F5F7}
.phone.gi .scr img,.post.gi img{display:block;width:100%;height:100%;object-fit:cover}
.post.gi{display:block;background:#F5F5F7}
/* pas „Dla dzieci”: karty z pomysłem na zajęcia i wiekiem */
.kg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kc{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start;background:#fff;border-radius:22px;padding:12px 18px 14px 12px;box-shadow:var(--sh);min-width:0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.kc:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.kc .ka{display:block;width:96px;height:96px;border-radius:16px;background:var(--tint);padding:6px}
.kc .kb{display:flex;flex-direction:column;min-width:0;padding-top:2px}
.kc .kw{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--mute)}
.kc .kw b{color:var(--ink);font-weight:600;font-size:14px}
.kc .kn{display:block;font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.22;margin-top:6px}
.kc .ki{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.45;color:#515154;margin-top:5px}
.kc .kx{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:600;color:#5C4500}
.kc .kx::before{content:"";width:7px;height:7px;border-radius:50%;background:#F2B705}
.p-home .sc .ex .lnk{font-size:inherit}
@media (max-width:1180px){
  .kg{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .p-home .hnx,.p-home .hkid{padding-top:36px}
  .phone.gi{height:516px;top:20px}
  .kg{display:flex;overflow-x:auto;gap:10px;margin:0 -16px;padding:2px 16px 8px;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-padding:0 16px;overscroll-behavior-x:contain}
  .kg::-webkit-scrollbar{display:none}
  .kc{flex:0 0 84%;scroll-snap-align:start;grid-template-columns:72px minmax(0,1fr);gap:12px}
  .kc .ka{width:72px;height:72px}
  .kc .kn{font-size:16px}
}
/* (home) link „zobacz wszystkie” ma klasę .all jak kontener listy (.all = grid) — tu musi zostać w linii */
.hsub a.all{display:inline}

/* === szablon: month === */
/* dzień bez świąt w bazie (l0) — kratka, agenda, nagłówek grupy, mini-heatmapa */
.dc.l0,.gh .gd.l0,.ag .agd.l0{background:var(--g)}
.md i.l0{background:var(--g2)}
.dc.l0 .dn{color:var(--mute)}
.dc.l0.su .dn{color:#C9341F}
/* karty świąt ruchomych przy 3 latach w przełączniku */
.mc .yy.y3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.mc .yy.y3 div{padding:6px 8px}
.mc .yy.y3 b{font-size:14px}
.rul text{font-family:'Instrument Sans',system-ui,sans-serif}
@media (max-width:760px){
  /* (home) nieparzysta liczba małych kafli: ostatni na całą szerokość */
  .p-home .grid .ts:last-child:nth-child(even){grid-column:1/-1}
}
/* (home) „Sprawdź datę”: pusty wynik nie rezerwuje miejsca (JS przechodzi od razu na stronę dnia) */
.p-home .dres:empty{min-height:0;margin-top:0}
/* szablon: strony — poprawki po zrzutach */
.sfm .srch{margin-top:0}
.sfm .btn{justify-content:center}
textarea.inp{font:inherit}
/* kolaż miesiąca z mniej niż 4 świętami ze stroną (n1–n3); n4 = wariant z mockupu */
:where(.p-month) .cl.n2 .c2{grid-row:1/3}
:where(.p-month) .cl.n2 .c2 .ca{inset:16px -8% 76px}
:where(.p-month) .cl.n1{grid-template-columns:minmax(0,1fr);max-width:420px}
/* holiday: długi ustanowiciel w pigułce nie rozpycha strony */
.sealp .s-l{min-width:0}
/* === koordynator: dzień bez świąt jaśniejszy niż dzień z 1 świętem === */
.md i.l0{background:#EDEDF0}

/* === SEO nagłówki: stały H1 na głównej, fraza zapytania w H1 dnia/miesiąca === */
.p-home .ht h1.hk{font-size:19px;line-height:1.3;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}
.p-home .ht h1.hk span{font-weight:500;color:var(--mute)}
.p-home .ht h1.hk span::before{content:"· "}
.p-home .hdate{font-size:60px;line-height:1;font-weight:600;letter-spacing:-.035em}
.p-home .hdate em{font-style:normal;font-weight:400;color:var(--mute)}
.ht h1 .hq{display:block;font-size:20px;line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--mute);margin-top:8px}
@media (max-width:1180px){.p-home .hdate{font-size:60px}}
@media (max-width:760px){
  .p-home .ht h1.hk{font-size:15px}
  .p-home .hdate{font-size:34px}
  .p-home .hdate em{display:none}
  .ht h1 .hq{font-size:16px;margin-top:6px}
}
.p-col .ht h1{font-size:54px;line-height:1.02}
@media (max-width:760px){.p-col .ht h1{font-size:34px}}

/* === wydajność/a11y === (audyt Lighthouse 2026-10-28; tylko kontrast WCAG AA i semantyka, bez zmiany układu) */
/* stopka: nagłówki kolumn h4 → h2 (kolejność nagłówków), ten sam wygląd */
.ftr h2{font-size:13px;color:var(--ink);font-weight:600;margin-bottom:12px}
/* czerwień akcentu jako TEKST (małe litery) — ciemniejszy odcień ≥ 4.5:1 na bieli i #F5F5F7; kropki/paski bez zmian */
.eye b,.dchip small,.si small,.nowl{color:#C42F1B}
.gh .tdl{background:#C9341F}
/* wyciszony tekst na szarym/niebieskim tle */
.seg button small,.seg a small{color:#5E5E63}
#quiz .lead{color:#5A5A5F}
/* kalendarz roczny: niedziele i poziom l3 (dotąd biały tekst 2.8:1) */
.dd a.su,.dc.su .dn,.dc.l0.su .dn,.gh .gd.su small,.ag .agd.su small{color:#B8301C}
.dd a.l2.su,.dc.l2.su .dn,.gh .gd.l2.su small,.ag .agd.l2.su small{color:#9C2213}
.dd a.l3{color:#0A2540}
.dd a.l3.su,.dc.l3.su .dn,.gh .gd.l3.su small,.ag .agd.l3.su small{color:#5C1209}
/* duży kalendarz miesiąca: liczba świąt i druga nazwa mniej przygaszone */
.dc .dk{opacity:.85}
.dc .nm+.nm{opacity:.88}
/* etykiety sekcji w kolorze święta: jasne kolory przyciemnione do L ≤ 0.52 (ciemne bez zmian) */
@supports (color:oklch(from red l c h)){.prose .kk{color:oklch(from var(--or) min(l,.52) c h)}}
/* linki źródeł w tekście: podkreślenie (rozróżnialne bez koloru) */
.srcl a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
/* dziś w kalendarzu rocznym (czarne tło) — zawsze biały tekst, także w niedzielę i na poziomie l3 */
.dd a.td,.dd a.td.su,.dd a.l3.td,.dd a.l3.su.td{color:#fff}
.ag li.td .an b::after{background:#C9341F}
/* minione dni miesiąca są już przygaszone całym kaflem (opacity .82) — bez podwójnego wyciszenia tekstu */
.dc.past:not(.td) .dk,.dc.past:not(.td) .nm+.nm{opacity:1}

/* === kafle: długie nazwy (koordynator) — wysokości kafli bez zmian; długie nazwy: mniejsza czcionka + limit linii, treść nigdy nie wchodzi na pieczęć === */
.t.tb.solo .t-body{padding-top:76px}
.t.tb.t-long .t-name{font-size:30px;max-width:20ch}
.t.tb.t-xlong .t-name{font-size:24px;max-width:28ch}
.t.ts.t-long .t-name{font-size:17px}
.t.ts.t-xlong .t-name{font-size:15.5px}
.t .t-name{overflow-wrap:anywhere}
/* bezpiecznik: nazwa max 4 linie (duży kafel) / 3 linie (mały), opis max 2 linie przy długich nazwach */
.t.tb .t-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.t.ts .t-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.t.t-long .t-desc,.t.t-xlong .t-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
@media (max-width:760px){
  .t.tb,.t.tb.solo{height:auto;min-height:212px}
  .t.tb .t-body,.t.tb.solo .t-body{position:relative;margin-top:auto;padding-top:124px}
  .t.tb.t-long .t-name{font-size:20px}
  .t.tb.t-xlong .t-name{font-size:18px}
}
