/* blog.css — moduł bloga. Ładowany warunkowo (is_home/is_single/is_archive/is_search).
   Odwzorowanie blog-mockup.html. Klasy kolidujące z motywem prefiksowane .blog-*.
   Reużywa tokenów (tokens.css), przycisków (.btn* z components.css) i .grid-bg/.glow (base.css). */

/* ===== Kicker ===== */
.kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-head); font-size:13px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--blue); background:rgba(45,143,255,.10);
  padding:7px 14px; border-radius:999px;
}
.kicker.light{ color:var(--cyan); background:rgba(70,230,255,.12); }

/* ===== Hero archiwum (ciemne) ===== */
.blog-hero{
  background:var(--dark); color:#fff; position:relative; overflow:hidden;
  padding:clamp(60px,9vw,104px) 0 clamp(50px,7vw,74px);
}
.blog-hero .inner{ position:relative; z-index:1; }
.blog-hero h1{ font-size:clamp(32px,5vw,54px); color:#fff; margin:18px 0 16px; font-weight:700; }
.blog-hero p{ font-size:clamp(17px,2vw,20px); color:var(--on-dark-soft); max-width:620px; }

/* ===== Wyszukiwarka ===== */
.searchbar{ margin-top:28px; display:flex; gap:10px; max-width:520px; }
.searchbar input{
  flex:1; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.05); color:#fff;
  padding:14px 16px; border-radius:14px; font:inherit; font-size:16px;
}
.searchbar input::placeholder{ color:#7d8bb5; }
.searchbar input:focus{ outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(70,230,255,.18); }
.searchbar .btn{ padding:0 24px; }

/* ===== Sekcja ===== */
.blog-section{ padding:clamp(34px,5vw,56px) 0; }
.blog-section.tight{ padding-top:0; }

/* ===== Pigułki kategorii ===== */
.blog-chips{ display:flex; gap:10px; flex-wrap:wrap; padding-bottom:6px; }
.blog-chip{
  font-size:14px; font-weight:600; color:var(--slate); background:var(--bg); border:1px solid var(--line);
  padding:9px 17px; border-radius:999px; transition:.2s ease; min-height:40px;
  display:inline-flex; align-items:center;
}
.blog-chip:hover, .blog-chip.on{ color:#fff; background:var(--grad); border-color:transparent; }

/* ===== Wyróżniony wpis ===== */
.featured{
  display:grid; grid-template-columns:1.12fr .88fr; gap:0; background:var(--bg);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow); margin-top:22px;
}
.featured .thumb{ background:var(--navy-2); min-height:330px; position:relative; overflow:hidden; }
.featured .thumb img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.featured .thumb::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(400px 260px at 28% 24%,rgba(70,230,255,.45),transparent),
             radial-gradient(440px 320px at 88% 92%,rgba(45,143,255,.6),transparent);
}
.featured .thumb.has-img::before{ opacity:.35; }
.featured .thumb .ic{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:90px; z-index:1; }
.featured .body{ padding:clamp(28px,3vw,38px); display:flex; flex-direction:column; justify-content:center; }
.featured .body h2{ font-size:clamp(23px,2.6vw,29px); line-height:1.18; color:var(--ink); margin:14px 0 12px; font-weight:700; }
.featured .body h2 a{ color:inherit; }
.featured .body h2 a:hover{ color:var(--blue); }
.featured .body p{ color:var(--slate); font-size:15.5px; margin-bottom:20px; }

/* ===== Meta ===== */
.meta{ display:flex; align-items:center; gap:12px; font-size:13.5px; color:var(--slate); flex-wrap:wrap; }
.meta .av{
  width:34px; height:34px; border-radius:50%; background:var(--grad); display:inline-flex;
  align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:13px; font-family:var(--font-head);
}
.readmore{ color:var(--blue); font-weight:600; font-size:15px; display:inline-flex; align-items:center; gap:6px; }
.readmore:hover{ gap:9px; }

/* ===== Nagłówek sekcji bloga ===== */
.blog-head{ display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:4px; }
.blog-head h2{ font-size:clamp(24px,3vw,32px); color:var(--ink); font-weight:700; }

/* ===== Grid wpisów ===== */
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:22px; }
.card{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  display:flex; flex-direction:column;
}
.card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); border-color:#d3ddf3; }
.card .cover{ height:176px; position:relative; overflow:hidden; display:block; }
.card .cover img{ width:100%; height:100%; object-fit:cover; }
.c1{ background:linear-gradient(135deg,#13235f,#0a1545); }
.c2{ background:linear-gradient(135deg,#0e2a56,#0a1545); }
.c3{ background:linear-gradient(135deg,#1a2a70,#0a1545); }
.c4{ background:linear-gradient(135deg,#0d2b4d,#0a1545); }
.c5{ background:linear-gradient(135deg,#16215f,#0a1545); }
.c6{ background:linear-gradient(135deg,#0a3050,#0a1545); }
.card .cover.grad::after{ content:""; position:absolute; inset:0; background:radial-gradient(270px 170px at 80% 12%,rgba(70,230,255,.42),transparent); }
.card .cover .emoji{ position:absolute; left:18px; bottom:14px; font-size:34px; z-index:1; }
.card .tag{
  position:absolute; top:14px; left:14px; z-index:2; font-family:var(--font-head); font-size:12px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; color:var(--navy); background:rgba(255,255,255,.94);
  padding:5px 11px; border-radius:999px;
}
.card .content{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.card h3{ font-size:18px; line-height:1.3; color:var(--ink); margin-bottom:9px; font-weight:600; }
.card h3 a{ color:inherit; }
.card h3 a:hover{ color:var(--blue); }
.card p{ font-size:14px; color:var(--slate); margin-bottom:16px; flex:1; }
.card .foot{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--slate); border-top:1px solid var(--line); padding-top:14px; }
.card .foot .av{ width:26px; height:26px; border-radius:50%; background:var(--grad); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:11px; font-family:var(--font-head); flex:none; }

/* ===== Paginacja ===== */
.pager{ display:flex; justify-content:center; gap:8px; padding:44px 0 6px; flex-wrap:wrap; }
.pager a, .pager span{
  min-width:44px; height:44px; border-radius:14px; border:1px solid var(--line); background:var(--bg);
  display:inline-flex; align-items:center; justify-content:center; font-weight:600; color:var(--slate);
  font-size:15px; font-family:var(--font-head); padding:0 12px;
}
.pager a:hover{ border-color:var(--blue); color:var(--blue); }
.pager .current{ background:var(--grad); color:#fff; border-color:transparent; }
.pager .dots{ border:0; background:transparent; }

/* ===== POJEDYNCZY WPIS ===== */
.post-hero{
  background:var(--dark); color:#fff; position:relative; overflow:hidden;
  padding:clamp(48px,7vw,72px) 0 clamp(40px,5vw,56px);
}
.post-hero .inner{ position:relative; z-index:1; }
.crumbs{ font-size:13.5px; color:#7d8bb5; margin-bottom:16px; }
.crumbs a{ color:#9fb0d8; }
.crumbs a:hover{ color:#fff; }
.post-hero h1{ font-size:clamp(28px,4vw,44px); line-height:1.14; color:#fff; margin:14px 0 18px; font-weight:700; }
.post-hero .meta{ color:var(--on-dark-soft); }

.article-wrap{ display:grid; grid-template-columns:1fr 258px; gap:44px; padding:clamp(34px,5vw,52px) 0 20px; align-items:start; }
.prose{ background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(28px,4vw,48px); box-shadow:var(--shadow-sm); }
.prose > *:first-child{ margin-top:0; }
.prose .lead{ font-size:19px; color:var(--ink); font-weight:500; line-height:1.6; margin-bottom:24px; font-family:var(--font-body); }
.prose h2{ font-size:clamp(23px,2.6vw,28px); color:var(--ink); margin:34px 0 12px; font-weight:700; scroll-margin-top:90px; }
.prose h3{ font-size:19px; color:var(--ink); margin:26px 0 10px; font-weight:600; }
.prose p{ margin-bottom:16px; font-size:16px; color:var(--slate); }
.prose a{ color:var(--blue); text-decoration:underline; }
.prose ul, .prose ol{ margin:0 0 18px 4px; color:var(--slate); }
.prose ul{ list-style:none; }
.prose li{ margin-bottom:9px; padding-left:26px; position:relative; }
.prose ul li::before{ content:"→"; position:absolute; left:0; color:var(--blue); font-weight:700; }
.prose ol{ padding-left:22px; }
.prose blockquote{ border-left:4px solid var(--blue); background:var(--bg-soft); padding:16px 22px; border-radius:0 14px 14px 0; margin:22px 0; color:var(--ink); font-style:italic; }
.prose blockquote p{ color:var(--ink); margin:0; }
.callout{ background:linear-gradient(120deg,rgba(45,143,255,.08),rgba(70,230,255,.08)); border:1px solid #d5e6ff; border-radius:16px; padding:20px 24px; margin:24px 0; color:var(--slate); }
.callout b, .callout strong{ color:var(--ink); }
.prose figure{ margin:26px 0; }
.prose img{ max-width:100%; height:auto; border-radius:16px; }
.prose figcaption{ font-size:13px; color:var(--slate); text-align:center; margin-top:10px; }

/* ===== TOC + share ===== */
aside.toc{ position:sticky; top:88px; }
.toc-box{ background:var(--bg); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:var(--shadow-sm); }
.toc-box h2{ font-family:var(--font-head); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-bottom:14px; font-weight:600; }
.toc-box a{ display:block; font-size:14px; color:var(--slate); padding:7px 0 7px 14px; border-left:2px solid var(--line); transition:.2s ease; }
.toc-box a:hover, .toc-box a.on{ color:var(--blue); border-color:var(--blue); font-weight:600; }
.share{ margin-top:18px; display:flex; gap:8px; }
.share a{ width:40px; height:40px; border-radius:12px; border:1px solid var(--line); background:var(--bg); display:inline-flex; align-items:center; justify-content:center; color:var(--slate); cursor:pointer; font-size:14px; font-weight:700; font-family:var(--font-head); }
.share a:hover{ color:#fff; background:var(--grad); border-color:transparent; }
.share a svg{ width:17px; height:17px; }
.share .copied{ position:relative; }

/* ===== Pasmo CTA bloga ===== */
.blog-cta{
  background:var(--grad-deep); border-radius:20px; padding:clamp(30px,4vw,42px);
  display:flex; align-items:center; justify-content:space-between; gap:24px; margin:14px 0 0;
  color:#fff; flex-wrap:wrap; position:relative; overflow:hidden;
}
.blog-cta::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:40px 40px;
  -webkit-mask:radial-gradient(500px 200px at 90% 0%,#000,transparent); mask:radial-gradient(500px 200px at 90% 0%,#000,transparent);
}
.blog-cta > div, .blog-cta > a{ position:relative; z-index:1; }
.blog-cta h2{ font-size:clamp(21px,2.6vw,26px); color:#fff; font-weight:700; }
.blog-cta p{ color:rgba(255,255,255,.85); margin-top:6px; }

.related{ padding-top:clamp(34px,5vw,52px); }

/* ===== RWD ===== */
@media (max-width:980px){
  .featured{ grid-template-columns:1fr; }
  .grid{ grid-template-columns:1fr 1fr; }
  .article-wrap{ grid-template-columns:1fr; }
  aside.toc{ display:none; }
}
@media (max-width:680px){
  .grid{ grid-template-columns:1fr; }
  .blog-cta{ flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion: reduce){
  .card:hover{ transform:none; }
}
