/*
Theme Name: Zakład Litografii
Author: Warsztat Odbitek
Description: Motyw blogowy w estetyce druku offsetowego / plakatu litograficznego w wersji negatywowej: czarne tło z rastrem halftone, kremowe ramki i typografia (Anton), spalona czerwień jako akcent, błąd rejestru. Nisza: kultura / wydarzenia lokalne / społeczność.
Version: 2.3
Text Domain: zaklad-litografii
*/

:root{
  --papier:#15120d; --papier-jasny:#221e16; --czern:#efe8da; --czern-2:#2c2720;
  --farba:#c1462b; --farba-ciemna:#e0744c; --szary:#a29a8b; --linia:#efe8da;
  --font-heading:'Anton','Arial Narrow',Arial,sans-serif;
  --font-body:'PT Serif',Georgia,'Times New Roman',serif;
  --font-label:'Noto Sans',Arial,sans-serif;
  --font-hand:'Anton','Arial Narrow',Arial,sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html,body{ background:var(--papier); color:var(--czern); overflow-x:hidden; width:100%; }
body{
  font-family:var(--font-body); font-size:17px; line-height:1.6;
  background-color:var(--papier);
  background-image:radial-gradient(circle at 1px 1px, rgba(239,232,218,0.09) 1.3px, transparent 1.7px);
  background-size:8px 8px;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4,h5{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; line-height:1.05; color:var(--czern); }

.wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
.screen-reader-text{ position:absolute; left:-9999px; }
.screen-reader-text:focus{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.raster-farba{ background-color:var(--farba); background-image:radial-gradient(circle at center, rgba(0,0,0,0.16) 1px, transparent 1.2px); background-size:7px 7px; }

/* ===== TOP BAR ===== */
.top-strip{ background:var(--czern-2); color:var(--czern); font-family:var(--font-label); font-size:12px; letter-spacing:.06em; text-transform:uppercase; border-bottom:1px solid rgba(239,232,218,0.15); }
.top-strip-inner{ max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:7px 24px; flex-wrap:wrap; gap:6px; }
.top-strip .tag{ color:var(--farba-ciemna); font-weight:700; }

/* ===== MASTHEAD ===== */
.masthead{ background:var(--papier-jasny); position:relative; }
.masthead-inner{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:auto 1fr auto; align-items:start; gap:0 22px; padding:20px 24px 22px; }
.brand{ display:flex; align-items:flex-start; gap:14px; grid-column:1; transform:rotate(-0.6deg); margin-top:6px; }
.brand-mark{ width:58px; height:58px; border:3px solid var(--czern); display:flex; align-items:center; justify-content:center; background:var(--papier); flex-shrink:0; transform:rotate(2deg); box-shadow:3px 3px 0 var(--farba); }
.brand-mark svg{ width:36px; height:36px; }
.brand-mark svg{ stroke:var(--czern); }
.brand-text{ padding-top:3px; }
.brand-text .mark{ font-family:var(--font-heading); font-size:clamp(24px,4.6vw,34px); letter-spacing:.01em; line-height:.95; text-transform:uppercase; color:var(--czern); display:block; }
.brand-text .sub{ font-family:var(--font-label); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--farba-ciemna); font-weight:700; margin-top:5px; }
.masthead-note{ grid-column:2; justify-self:end; align-self:center; max-width:280px; font-family:var(--font-label); font-size:11.5px; line-height:1.5; color:var(--czern); border-left:3px solid var(--farba); padding:4px 0 4px 12px; margin-top:14px; transform:rotate(0.4deg); }
.masthead-note b{ color:var(--farba-ciemna); text-transform:uppercase; letter-spacing:.05em; font-size:10.5px; display:block; margin-bottom:2px; }
.masthead-stamp{ grid-column:3; justify-self:end; align-self:start; font-family:var(--font-heading); text-transform:uppercase; font-size:12px; letter-spacing:.04em; color:var(--czern); background:var(--papier); border:2px solid var(--czern); padding:9px 12px 7px; transform:rotate(3deg); white-space:nowrap; margin-top:2px; }

/* ===== NAWIGACJA ===== */
nav.main-nav{ background:var(--czern-2); position:relative; }
.main-nav-inner{ max-width:1180px; margin:0 auto; padding:0 24px; display:flex; align-items:stretch; }
nav.main-nav ul{ list-style:none; display:flex; flex-wrap:wrap; margin:0; }
nav.main-nav a,.more-toggle{ display:block; color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:13px; letter-spacing:.05em; text-transform:uppercase; padding:13px 17px; border-right:1px solid rgba(239,232,218,0.18); background:none; border-top:none; border-bottom:none; border-left:none; cursor:pointer; }
nav.main-nav li:first-child a{ border-left:1px solid rgba(239,232,218,0.18); }
nav.main-nav a:hover,.more-toggle:hover{ background:var(--farba); color:var(--czern); }
.main-nav .current-menu-item>a,.main-nav .current_page_item>a{ color:var(--farba-ciemna); }
.nav-toggle{ display:none; width:100%; text-align:left; background:var(--czern-2); color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase; padding:14px 20px; border:none; border-left:4px solid var(--farba); cursor:pointer; -webkit-appearance:none; appearance:none; }
.nav-toggle:hover{ background:var(--farba); color:var(--czern); border-left-color:var(--czern); }
.nav-toggle::after{ content:"▾"; float:right; transition:transform .2s; }
.nav-toggle[aria-expanded="true"]::after{ transform:rotate(180deg); }
/* dropdown „Więcej ▾" — kategorie ponad limit paska */
.main-nav .more-wrap{ position:relative; }
.main-nav .more-menu{ display:none; position:absolute; left:0; top:100%; z-index:60; min-width:220px; background:var(--czern-2); border:2px solid var(--czern); padding:4px 0; list-style:none; }
.main-nav .has-more:hover .more-menu, .main-nav .has-more.open .more-menu{ display:block; }
.main-nav .more-menu li{ display:block; }
.main-nav .more-menu a{ border:none; padding:11px 18px; white-space:nowrap; }
.main-nav .more-toggle .chev, .main-nav .more-toggle span{ font-size:.8em; }

/* ===== KARUZELA (najnowsze) — stała wysokość, kafel na kropkowanym tle ===== */
.hero-carousel-wrap{ padding:40px 0 6px; }
.hero-carousel{ position:relative; max-width:1180px; margin:0 auto; padding:0 24px; }
.carousel-slide{ display:none; }
.carousel-slide.is-active{ display:grid; grid-template-columns:1.15fr 1fr; height:440px; background:var(--papier-jasny); border:3px solid var(--czern); box-shadow:9px 9px 0 var(--farba); }
.carousel-fot{ position:relative; overflow:hidden; height:100%; border-right:3px solid var(--czern); background:var(--czern-2); filter:grayscale(15%) contrast(1.08); }
.carousel-fot .fot-link{ display:block; width:100%; height:100%; }
.carousel-fot img{ width:100%; height:100%; object-fit:cover; }
.carousel-kat{ position:absolute; top:16px; left:16px; z-index:2; background:var(--farba-badge,#a23a22); color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; }
.carousel-body{ padding:38px 40px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.carousel-kicker{ align-self:flex-start; background:var(--farba-badge,#a23a22); color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:5px 12px; margin-bottom:16px; }
.carousel-body h2{ font-family:var(--font-heading); text-transform:uppercase; font-size:clamp(28px,3.4vw,42px); line-height:1.04; color:var(--czern); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.carousel-body h2 a:hover{ color:var(--farba-ciemna); }
.carousel-body .lead{ font-family:var(--font-body); font-size:16px; color:var(--czern); opacity:.85; margin-top:16px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.carousel-body .c-meta{ margin-top:18px; display:flex; gap:18px; flex-wrap:wrap; font-family:var(--font-label); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--szary); }
.carousel-nav{ position:absolute; top:calc(50% - 22px); width:44px; height:44px; border:3px solid var(--czern); background:var(--papier); color:var(--czern); font-family:var(--font-heading); font-size:22px; line-height:1; cursor:pointer; z-index:3; }
.carousel-nav:hover{ background:var(--farba); }
.carousel-nav.prev{ left:6px; }
.carousel-nav.next{ right:6px; }
.carousel-dots{ display:flex; gap:9px; justify-content:center; margin-top:20px; }
.carousel-dot{ width:26px; height:26px; border:none; background:transparent; cursor:pointer; padding:0; position:relative; } /* cel dotykowy >=24px (Lighthouse target-size) */
.carousel-dot::before{ content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:13px; height:13px; border:2px solid var(--czern); background:var(--papier); }
.carousel-dot.is-active::before{ background:var(--farba); }
@media (max-width:760px){
  .carousel-slide.is-active{ grid-template-columns:1fr; height:auto; }
  .carousel-fot{ border-right:none; border-bottom:3px solid var(--czern); height:auto; aspect-ratio:16/10; }
  .carousel-body{ padding:26px 22px; }
  .carousel-nav{ display:none; }
}

/* ===== PASEK „OD REDAKCJI" ===== */
.strip{ background-color:var(--farba); background-image:radial-gradient(circle at center, rgba(0,0,0,0.18) 1px, transparent 1.2px); background-size:7px 7px; color:var(--czern); border-bottom:5px solid var(--czern); padding:16px 0; }
.strip-inner{ max-width:1180px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:16px; font-family:var(--font-label); font-weight:600; font-size:14px; flex-wrap:wrap; }
.strip .stempel{ font-family:var(--font-heading); text-transform:uppercase; font-size:15px; border:3px solid var(--czern); padding:6px 10px 4px; transform:rotate(-2deg); background:var(--papier); flex-shrink:0; }

/* ===== MAIN ===== */
main{ display:block; }
.sekcja{ max-width:1180px; margin:0 auto; padding:56px 24px 20px; }
.sekcja-head{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:5px solid var(--czern); padding-bottom:14px; margin-bottom:34px; flex-wrap:wrap; gap:10px; }
.sekcja-head h3,.sekcja-head h2{ font-family:var(--font-heading); text-transform:uppercase; font-size:clamp(26px,4vw,38px); }
.sekcja-head .liczba{ font-family:var(--font-label); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--szary); }

/* ===== SIATKA WPISÓW (3 kolumny; wyróżniony = obraz-góra, span 2 — ta sama linia obraz/tekst) ===== */
.posty{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:2px solid var(--czern); border-left:2px solid var(--czern); }
.post{ background:var(--papier-jasny); border-right:2px solid var(--czern); border-bottom:2px solid var(--czern); display:flex; flex-direction:column; position:relative; }

/* OCHRONA: `post_class()` w WordPressie ZAWSZE dokłada klase `post`, wiec
   <article class="article-main post ..."> na stronie WPISU przejmowalo powyzsze
   reguly karty z listy (display:flex + tlo karty + ramki 2px). Zdejmujemy je
   jawnie dla artykulu. Blad tej samej klasy zlapany 2026-08-12 w motywie
   cisza-i-przestrzen (tam rozsypywal caly uklad wpisu). */
article.article-main{ display:block; background:none; border-right:0; border-bottom:0; }
.post.wyroznione{ grid-column:span 2; }
.post-fot{ position:relative; display:block; height:232px; overflow:hidden; border-bottom:2px solid var(--czern); filter:grayscale(15%) contrast(1.08); background:var(--czern-2); }
.post.wyroznione .post-fot{ height:232px; }
.post-fot .fot-link{ display:block; width:100%; height:100%; }
.post-fot img,.post-img{ width:100%; height:100%; object-fit:cover; }
.post-kat{ position:absolute; top:10px; left:10px; background:var(--farba-badge,#a23a22); color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:4px 9px; z-index:2; }
.post-body{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; overflow:hidden; }
.post.wyroznione .post-body{ padding:24px 28px 24px; }
.post-data{ font-family:var(--font-label); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--szary); margin-bottom:8px; }
.post h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:22px; line-height:1.08; margin-bottom:10px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.post.wyroznione h3{ font-size:30px; -webkit-line-clamp:2; }
.post h3 a:hover{ color:var(--farba-ciemna); }
.post p.lead-short{ font-family:var(--font-body); font-size:15px; color:var(--czern); opacity:.82; line-height:1.55; flex:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.post.wyroznione p.lead-short{ -webkit-line-clamp:3; }
.post-foot{ margin-top:16px; padding-top:12px; border-top:2px solid var(--czern); display:flex; justify-content:space-between; align-items:center; gap:10px; font-family:var(--font-label); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.post-foot .autor{ font-weight:700; }
.post-foot .autor:hover{ color:var(--farba-ciemna); }
.post-foot .czytaj{ color:var(--farba-ciemna); font-weight:700; white-space:nowrap; }

/* ===== SPIS (crawlowalny hub) ===== */
.spis{ max-width:1180px; margin:0 auto; padding:20px 24px 10px; }
.spis-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:0; border-top:2px solid var(--czern); border-left:2px solid var(--czern); }
.spis-col{ background:var(--papier-jasny); border-right:2px solid var(--czern); border-bottom:2px solid var(--czern); padding:0 0 6px; }
.spis-col h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:17px; background:var(--czern-2); color:var(--czern); padding:10px 14px; border-bottom:2px solid var(--czern); }
.spis-col h3 a{ color:inherit; }
.spis-col h3 a:hover{ color:var(--farba-ciemna); }
.spis-col ul{ list-style:none; padding:6px 14px 8px; }
.spis-col li{ padding:7px 0; border-bottom:1px solid rgba(239,232,218,0.14); font-family:var(--font-label); font-size:13px; line-height:1.35; }
.spis-col li:last-child{ border-bottom:none; }
.spis-col li a{ font-weight:600; }
.spis-col li a:hover{ color:var(--farba-ciemna); }
.spis-empty{ font-family:var(--font-body); font-style:italic; font-size:13px; color:var(--szary); padding:8px 14px 10px; }
.spis-autorzy{ margin-top:30px; border-top:5px solid var(--czern); padding-top:22px; }
.spis-autorzy h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:24px; margin-bottom:18px; }
.autor-lista{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; align-items:stretch; }
.autor-karta{ display:flex; align-items:flex-start; gap:14px; background:var(--papier-jasny); border:2px solid var(--czern); padding:16px 18px; min-height:104px; }
.autor-karta:hover{ box-shadow:4px 4px 0 var(--farba); }
.autor-avatar{ width:54px; height:54px; border:3px solid var(--farba); background:var(--papier); color:var(--czern); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-heading); font-size:20px; letter-spacing:.02em; }
.autor-karta .ak-meta{ display:flex; flex-direction:column; min-width:0; }
.autor-karta .ak-nazwa{ font-family:var(--font-heading); text-transform:uppercase; font-size:16px; line-height:1.1; }
.autor-karta:hover .ak-nazwa{ color:var(--farba-ciemna); }
.autor-karta .ak-rola{ font-family:var(--font-label); font-size:12px; color:var(--szary); line-height:1.4; margin-top:5px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
/* zdjęcie wyróżniające w pojedynczym wpisie */
.article-foto{ margin:0 0 26px; border:2px solid var(--czern); overflow:hidden; }
.article-foto img{ display:block; width:100%; height:auto; filter:grayscale(15%) contrast(1.06); }
.article-foto figcaption{ font-family:var(--font-label); font-size:12px; color:var(--szary); padding:7px 10px; background:var(--czern-2); }

/* ===== CTA ROZDZIAŁ ===== */
.rozdzial{ padding:70px 0; text-align:center; color:var(--czern); }
.rozdzial-inner{ max-width:1180px; margin:0 auto; padding:0 24px; }
.rozdzial h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:clamp(30px,6vw,52px); line-height:1.05; max-width:20ch; margin:0 auto 18px; }
.rozdzial p{ font-family:var(--font-body); font-size:16.5px; max-width:56ch; margin:0 auto 26px; color:var(--czern); }
.btn-drukarski{ display:inline-block; font-family:var(--font-label); font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:13.5px; color:var(--czern); background:var(--papier); border:3px solid var(--czern); padding:13px 30px; }
.btn-drukarski:hover{ background:var(--czern); color:var(--papier); }

/* ===== BREADCRUMB ===== */
.breadcrumb{ font-family:var(--font-label); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--czern); background:var(--czern-2); display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:11px 16px; margin:16px 0 0; }
.breadcrumb a{ color:var(--czern); }
.breadcrumb a:hover{ color:var(--farba-ciemna); }
.breadcrumb .sep{ color:var(--farba-ciemna); }
.breadcrumb .current-crumb{ color:#fff; font-weight:700; }

/* ===== NAGŁÓWEK ARTYKUŁU / KATEGORII ===== */
.article-head{ position:relative; background:transparent; border-bottom:5px solid var(--czern); }
.article-head::after{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:2px; background:var(--farba); transform:translateX(8px); opacity:.9; }
.article-head-inner{ position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:44px 24px 40px; }
.art-kicker{ display:inline-block; background:var(--farba); color:var(--czern); font-family:var(--font-label); font-weight:700; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; padding:5px 12px; margin-bottom:20px; margin-left:-6px; transform:rotate(-1.6deg); box-shadow:2px 2px 0 rgba(0,0,0,0.35); }
.article-head h1{ font-family:var(--font-heading); text-transform:uppercase; font-size:clamp(30px,5.4vw,54px); line-height:1.04; max-width:24ch; color:var(--czern); }
.article-meta{ margin-top:22px; display:flex; gap:22px; flex-wrap:wrap; font-family:var(--font-label); font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--szary); }
.article-meta b{ color:var(--farba-ciemna); font-weight:700; }
.cat-desc{ font-family:var(--font-body); font-size:16px; color:var(--czern); opacity:.9; max-width:64ch; margin-top:16px; }

/* ===== TREŚĆ ARTYKUŁU ===== */
.article-body{ max-width:1180px; margin:0 auto; padding:56px 24px 20px; }
.article-layout{ display:grid; grid-template-columns:2.1fr 1fr; gap:50px; align-items:start; }
.article-layout .posty{ grid-template-columns:repeat(2,1fr); }
@media (max-width:560px){ .article-layout .posty{ grid-template-columns:1fr; } }
.article-main{ background:var(--papier-jasny); border:2px solid var(--czern); padding:38px 40px 42px; position:relative; }
.article-main::before{ content:""; position:absolute; left:0; right:0; top:-5px; height:2px; background:var(--farba); transform:translateX(6px); opacity:.9; }
.body-text{ font-family:var(--font-body); font-size:16.5px; line-height:1.7; color:var(--czern); }
.body-text p{ margin:0 0 20px; }
.body-text h2{ font-family:var(--font-heading); text-transform:uppercase; font-size:clamp(22px,3.4vw,30px); line-height:1.1; margin:34px 0 18px; padding-bottom:10px; border-bottom:3px solid var(--czern); color:var(--czern); }
.body-text h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:22px; margin:28px 0 14px; color:var(--czern); }
.body-text ul,.body-text ol{ margin:0 0 20px; padding-left:22px; }
.body-text li{ margin-bottom:8px; }
.body-text a{ color:var(--farba-ciemna); text-decoration:underline; text-underline-offset:2px; }
.body-text a:hover{ color:var(--farba); }
.body-text img{ margin:24px 0; border:2px solid var(--czern); filter:grayscale(15%) contrast(1.08); }
.body-text figure{ margin:28px 0; }
.body-text figcaption{ font-family:var(--font-label); font-size:12px; color:var(--szary); margin-top:8px; }
.body-text blockquote{ position:relative; font-family:var(--font-body); font-style:italic; font-size:18px; color:var(--farba-ciemna); padding:2px 0 2px 34px; margin:24px 0; }
.body-text blockquote::before{ content:"\201E"; position:absolute; left:0; top:-8px; font-family:var(--font-heading); font-style:normal; font-size:38px; color:var(--farba); line-height:1; }
.body-text blockquote p{ margin:0; }
/* tabele w treści — kremowe ramki na ciemnym tle, nagłówek na czerni-2 */
.body-text table{ width:100%; border-collapse:collapse; margin:0 0 22px; font-family:var(--font-label); font-size:14.5px; }
.body-text th,.body-text td{ border:2px solid var(--czern); padding:9px 13px; text-align:left; vertical-align:top; color:var(--czern); }
.body-text th{ background:var(--czern-2); font-weight:700; text-transform:uppercase; letter-spacing:.03em; font-size:12.5px; }
.body-text tbody tr:nth-child(even) td, .body-text table tr:nth-child(even) td{ background:rgba(239,232,218,0.05); }
.body-text table + *{ margin-top:22px; }
@media (max-width:560px){ .body-text table, .body-text thead, .body-text tbody, .body-text tr, .body-text th, .body-text td{ display:block; } .body-text th{ border-bottom:none; } .body-text td{ border-top:none; } }

/* tagi + autor-box */
.tag-row{ margin:26px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.tag-row a{ font-family:var(--font-label); font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--czern); background:var(--papier); border:2px solid var(--czern); padding:5px 11px; }
.tag-row a:hover{ background:var(--farba); }
.autor-box{ margin-top:36px; background:var(--czern-2); color:var(--czern); border:2px solid var(--czern); padding:26px 28px; display:flex; gap:20px; align-items:flex-start; }
.autor-box .autor-avatar{ width:60px; height:60px; font-size:22px; }
.autor-box .label{ font-family:var(--font-label); font-weight:700; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--farba-ciemna); margin-bottom:6px; }
.autor-box h3{ font-family:var(--font-heading); text-transform:uppercase; font-size:19px; margin:0 0 8px; color:var(--czern); }
.autor-box p{ font-family:var(--font-label); font-size:13.5px; line-height:1.6; color:var(--czern); opacity:.85; }

/* ===== SIDEBAR ===== */
.article-side,.rightcol{ display:flex; flex-direction:column; gap:26px; }
.side-box{ background:var(--papier-jasny); border:2px solid var(--czern); padding:22px 22px 20px; }
.side-box h2,.side-box h5,.side-heading{ font-family:var(--font-heading); text-transform:uppercase; font-size:16px; padding-bottom:12px; margin-bottom:16px; border-bottom:3px solid var(--czern); }
.side-box ul{ list-style:none; }
.side-box li{ padding:10px 0; border-bottom:1px solid rgba(239,232,218,0.15); font-family:var(--font-label); font-size:13px; line-height:1.4; }
.side-box li:last-child{ border-bottom:none; }
.side-box li a{ font-weight:600; }
.side-box li a:hover{ color:var(--farba-ciemna); }
.side-box .side-cat{ display:block; font-family:var(--font-label); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--farba-ciemna); margin-bottom:2px; }
.side-box.stempel-box{ background:var(--farba-badge,#a23a22); color:var(--czern); } /* kontrast >=4.5 (Lighthouse) */
.side-box.stempel-box h2,.side-box.stempel-box h5{ border-bottom:3px solid var(--czern); }
.side-box.stempel-box p{ font-family:var(--font-label); font-size:13px; line-height:1.55; margin-bottom:14px; }
.filter-box li{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.filter-box li .cnt{ font-family:var(--font-label); font-weight:700; font-size:11px; color:var(--papier); background:var(--czern); padding:1px 8px; }
.filter-box li.active a{ color:var(--farba-ciemna); }
.filter-box li.active .cnt{ background:var(--farba); color:var(--czern); }

/* ===== PAGINACJA ===== */
.pagination{ display:flex; gap:8px; flex-wrap:wrap; margin:36px 0 10px; }
.pagination a,.pagination span{ font-family:var(--font-label); font-weight:700; font-size:13px; padding:9px 15px; border:2px solid var(--czern); color:var(--czern); background:var(--papier-jasny); display:inline-block; }
.pagination .current-page{ background:var(--czern); color:var(--papier); }
.pagination .ellipsis{ border:none; background:none; }
.pagination a:hover{ background:var(--farba); color:var(--czern); }

/* ===== STOPKA ===== */
.site-footer{ background:var(--czern-2); color:var(--czern); border-top:6px solid var(--farba); padding-top:50px; margin-top:56px; }
.footer-inner{ max-width:1180px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(239,232,218,0.2); }
.footer-col h2,.footer-col .footer-h{ font-family:var(--font-heading); text-transform:uppercase; font-size:17px; margin-bottom:16px; letter-spacing:.02em; color:var(--czern); font-weight:400; }
.footer-col .mark{ font-family:var(--font-heading); text-transform:uppercase; font-size:22px; color:var(--czern); display:block; margin-bottom:12px; }
.footer-col p,.footer-col li{ font-family:var(--font-label); font-size:13.5px; line-height:1.7; color:var(--czern); opacity:.82; }
.footer-col ul{ list-style:none; }
.footer-col li{ margin-bottom:9px; }
.footer-col a:hover{ color:var(--farba-ciemna); }
.footer-note{ border:3px solid var(--farba); padding:22px; }
.footer-note .stempel-mini{ font-family:var(--font-label); font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--farba-ciemna); margin-bottom:10px; }
.footer-bottom{ max-width:1180px; margin:0 auto; padding:22px 24px 30px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-family:var(--font-label); font-size:12px; color:var(--czern); opacity:.7; }

/* ===== DO GÓRY ===== */
.to-top{ position:fixed; right:22px; bottom:22px; z-index:50; display:none; font-family:var(--font-label); font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; background:var(--czern-2); color:var(--czern); border:2px solid var(--farba); padding:10px 15px; cursor:pointer; }
.to-top:hover{ background:var(--farba); color:var(--czern); }
.to-top.show{ display:inline-block; }

/* ===== RESPONSYWNOŚĆ ===== */
@media (max-width:980px){
  .masthead-note{ display:none; }
  .masthead-inner{ grid-template-columns:auto auto; }
  .masthead-stamp{ grid-column:2; }
  .posty{ grid-template-columns:repeat(2,1fr); }
  .post{ height:auto; }
  .post-fot{ height:auto; aspect-ratio:4/3; }
  .post.wyroznione{ grid-column:span 2; height:auto; grid-template-columns:1fr; }
  .post.wyroznione .post-fot{ aspect-ratio:16/9; height:auto; min-height:0; border-right:none; border-bottom:2px solid var(--czern); }
  .article-layout{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:700px){
  nav.main-nav ul{ display:none; flex-direction:column; width:100%; }
  nav.main-nav ul.open{ display:flex; }
  .nav-toggle{ display:block; }
  nav.main-nav a{ border-right:none; border-left:none; border-bottom:1px solid rgba(239,232,218,0.15); padding:13px 20px; }
  nav.main-nav li:first-child a{ border-left:none; }
  .masthead-inner{ padding:22px 18px 16px; grid-template-columns:1fr; }
  .brand{ transform:none; }
  .masthead-stamp{ justify-self:start; margin-top:14px; }
  .posty{ grid-template-columns:1fr; }
  .post.wyroznione{ grid-column:span 1; }
  .article-main{ padding:26px 20px 30px; }
  .autor-box{ flex-direction:column; }
  .footer-inner{ grid-template-columns:1fr; gap:30px; }
  .sekcja,.article-body,.spis{ padding-left:18px; padding-right:18px; }
}
@media (max-width:420px){
  .brand-mark{ width:48px; height:48px; }
  .brand-mark svg{ width:30px; height:30px; }
  .wrap{ padding:0 16px; }
}

/* ===== SPIS TRESCI (uwaga usera 2026-08-19: „nie jest w ramce, nie ma innego tla") =====
   Spis generuje silnik (45-agent-toc.php, klasa .short-content), a ten motyw nie mial dla
   niego ani jednej reguly — wychodzil jako goly tekst na tle strony. Motyw jest ciemny,
   wiec ramka robi sie jasniejszym prostokatem, a nie bialym pudelkiem. */
.short-content{
  background:var(--papier-jasny); border:1px solid var(--czern-2);
  border-left:4px solid var(--farba);
  padding:16px 20px 14px; margin:0 0 30px;
}
.short-content-title{
  font-family:var(--font-label); font-size:.74rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--farba-ciemna); margin:0 0 10px;
}
.short-content ul{ margin:0; padding-left:18px; list-style:square; }
.short-content li{ margin:0 0 5px; font-family:var(--font-label); font-size:.92rem; line-height:1.45; }
.short-content li::marker{ color:var(--szary); }
.short-content-lvl-3{ margin-left:14px; font-size:.86rem; }
.short-content a{ color:var(--czern); text-decoration:none; border-bottom:1px solid transparent; }
.short-content a:hover{ color:var(--farba-ciemna); border-bottom-color:var(--farba); }

/* ===== ZDJECIA PIONOWE (uwaga usera: „nie ma ustawionego rozmiaru i jest dlugie") =====
   Regula `.body-text img` ustawiala tylko margines, ramke i filtr — bez zadnego ograniczenia
   wysokosci. Zdjecie 800x1200 rozpychalo wpis na cala dlugosc ekranu i dalej.
   `max-height` + `width:auto` przycina TYLKO pionowe: poziome nadal ida na pelna szerokosc
   kolumny (bo ogranicza je max-width:100%). */
.body-text img{ max-width:100%; height:auto; max-height:min(66vh, 540px); width:auto; object-fit:contain; }
.body-text figure img{ display:block; margin-inline:auto; }

/* Zdjecie glowne wpisu siedzi w `figure.article-foto`, NIE w `.body-text` — sprawdzone
   na zywym renderze 2026-08-19 (regula na .body-text img w ogole go nie dotykala).
   `.article-foto img` mial `width:100%; height:auto`, czyli zero ograniczenia wysokosci:
   zdjecie pionowe 800x1200 w kolumnie 650px rozciagalo sie na ~975px wysokosci.
   Kadrujemy do proporcji poziomej i pozwalamy `object-fit` wybrac srodek klatki. */
.article-foto img{ max-height:min(62vh, 460px); object-fit:cover; object-position:center; }
