/*
Theme Name: Spar Kharkov
Theme URI: https://spar-kharkov.com.ua/
Author: Spar Kharkov
Description: Spar Kharkov — постерний журнал-брутал про психологію стосунків: довіра, сумісність та інтимна близькість. Високий контраст «папір та ультрамарин», величезний конденсований заголовок Big Shoulders, головна як постерна сітка з великими порядковими номерами. Один H1 на сторінку, мета віддається SEO-плагіну.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: spar-kharkov
*/

/* ====================== TOKENS ====================== */
:root{
  --paper:#e9e5dc;
  --paper-2:#f1ede5;
  --surface:#dcd7cb;
  --ink:#15140f;
  --ink-soft:#2a2820;
  --accent:#2733cf;
  --accent-ink:#1b25a6;
  --muted:#6c6760;
  --line:rgba(21,20,15,.16);
  --line-strong:rgba(21,20,15,.34);
  --hair:2px;
  --maxw:1280px;
  --display:"Big Shoulders Display","Arial Narrow",system-ui,sans-serif;
  --sans:"Work Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --dur:.4s;
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ====================== RESET ====================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:800;line-height:.92;margin:0;
  letter-spacing:0;color:var(--ink);
  text-transform:uppercase;
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}
.eyebrow{
  font-family:var(--sans);
  font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.26em;
  color:var(--accent);
}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:12px;z-index:200;background:var(--accent);color:#fff;padding:10px 16px}

/* ====================== HEADER ====================== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--paper);
  border-bottom:var(--hair) solid var(--ink);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;height:72px;
}
.brand{
  font-family:var(--display);
  font-size:30px;font-weight:900;color:var(--ink);
  letter-spacing:.01em;line-height:1;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.42em;
}
.brand .dot{width:13px;height:13px;background:var(--accent);display:inline-block}
.brand b{font-weight:900}
.nav{display:flex;align-items:center;gap:26px}
.nav a{
  font-family:var(--sans);
  font-size:12px;font-weight:700;color:var(--ink);
  text-transform:uppercase;letter-spacing:.16em;
  position:relative;padding:8px 0;white-space:nowrap;
  transition:color var(--dur) var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:2px;height:2px;width:0;
  background:var(--accent);transition:width var(--dur) var(--ease);
}
.nav a:hover{color:var(--accent)}
.nav a:hover::after{width:100%}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--ink)}
.nav-toggle svg{display:block}

/* ====================== HERO (full-width poster) ====================== */
.hero{
  position:relative;
  margin:0 0 8px;
  background:var(--ink);
  color:var(--paper);
  border-bottom:var(--hair) solid var(--ink);
  overflow:hidden;
  isolation:isolate;
}
.hero.has-image{
  min-height:clamp(540px, 72vh, 880px);
  display:flex;
  align-items:flex-end;
}
.hero:not(.has-image){
  background:var(--paper);
  color:var(--ink);
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(1.04) contrast(1.02);
  transition:transform 1.2s var(--ease);
}
.hero.has-image:hover .hero-media img{transform:scale(1.035)}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(21,20,15,.78) 0%, rgba(21,20,15,.34) 30%, rgba(21,20,15,.30) 52%, rgba(21,20,15,.86) 100%),
    linear-gradient(90deg, rgba(21,20,15,.66) 0%, rgba(21,20,15,.10) 60%, rgba(21,20,15,0) 100%);
}
.hero-inner{
  position:relative;z-index:1;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  padding:clamp(40px, 6vw, 88px) 30px clamp(32px, 4vw, 56px);
}
.hero-kicker{
  display:flex;align-items:center;gap:16px;
  margin-bottom:clamp(14px, 2vw, 22px);
}
.hero-kicker .eyebrow{white-space:nowrap;color:#fff}
.hero:not(.has-image) .hero-kicker .eyebrow{color:var(--accent)}
.hero-kicker .bar{flex:1;height:2px;background:rgba(233,229,220,.55)}
.hero:not(.has-image) .hero-kicker .bar{background:var(--ink)}

/* brand wordmark — stays the dominant, NON-heading element */
.hero .wordmark{
  font-family:var(--display);
  font-size:clamp(4rem, 2rem + 13vw, 13rem);
  color:#fff;
  line-height:.82;
  letter-spacing:-.012em;
  font-weight:900;
  text-transform:uppercase;
  margin:0;
  text-shadow:0 4px 40px rgba(21,20,15,.45);
}
.hero:not(.has-image) .wordmark{color:var(--ink);text-shadow:none}

/* page H1 — readable but clearly secondary to the wordmark */
.hero h1.hero-headline{
  font-family:var(--display);
  margin:clamp(16px, 2.2vw, 26px) 0 0;
  max-width:24ch;
  color:#fff;
  font-size:clamp(1.6rem, 1rem + 2.4vw, 3.2rem);
  line-height:.98;
  font-weight:800;
  letter-spacing:0;
  text-transform:uppercase;
  text-shadow:0 2px 22px rgba(21,20,15,.4);
}
.hero:not(.has-image) h1.hero-headline{color:var(--ink);text-shadow:none}

/* supporting description copy — non-heading <p> */
.hero p.hero-desc{
  font-family:var(--sans);
  margin:clamp(14px, 1.6vw, 20px) 0 0;
  max-width:54ch;
  color:rgba(233,229,220,.92);
  font-size:clamp(1.02rem, .92rem + .5vw, 1.28rem);
  line-height:1.5;
  font-weight:400;
  text-transform:none;
  text-shadow:0 1px 14px rgba(21,20,15,.5);
}
.hero:not(.has-image) p.hero-desc{color:var(--ink-soft);text-shadow:none}

.hero-feature{
  display:flex;flex-wrap:wrap;align-items:flex-end;
  gap:18px 26px;
  margin-top:clamp(24px, 3vw, 40px);
}
.hero-tag{
  display:inline-block;
  background:var(--accent);color:var(--paper);
  font-family:var(--sans);font-size:12px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  padding:8px 15px;
  align-self:flex-end;
}
.hero-read{
  display:flex;flex-direction:column;gap:6px;
  max-width:46ch;
  padding-left:18px;
  border-left:var(--hair) solid rgba(233,229,220,.5);
  transition:border-color var(--dur) var(--ease);
}
.hero:not(.has-image) .hero-read{border-left-color:var(--ink)}
.hero-read:hover{border-left-color:var(--accent)}
.hero-read-label{
  font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:#fff;
}
.hero:not(.has-image) .hero-read-label{color:var(--accent)}
.hero-read-title{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.2rem, .9rem + 1.1vw, 1.8rem);
  line-height:.98;color:#fff;
  transition:color var(--dur) var(--ease);
}
.hero:not(.has-image) .hero-read-title{color:var(--ink)}
.hero-read:hover .hero-read-title{color:var(--accent)}
.hero:not(.has-image) .hero-read:hover .hero-read-title{color:var(--accent-ink)}
.hero-read-meta{
  display:flex;align-items:center;gap:12px;
  font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.04em;
  color:rgba(233,229,220,.82);
}
.hero:not(.has-image) .hero-read-meta{color:var(--muted)}
.hero-read-meta .dotsep{width:5px;height:5px;background:var(--accent);display:inline-block}
.hero-read-arrow{
  font-family:var(--display);font-weight:800;color:var(--accent);
  font-size:18px;line-height:1;margin-left:auto;
  transition:transform var(--dur) var(--ease);
}
.hero-read:hover .hero-read-arrow{transform:translateX(5px)}

/* ====================== POSTER GRID (latest) ====================== */
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  margin:64px 0 0;padding-bottom:14px;border-bottom:var(--hair) solid var(--ink);
  flex-wrap:wrap;
}
.section-head h2{font-size:clamp(2rem,1rem+3vw,3.4rem);color:var(--ink);line-height:.9}
.section-head .eyebrow{align-self:flex-end}

.poster-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-left:var(--hair) solid var(--ink);
  border-top:var(--hair) solid var(--ink);
  margin-top:0;
}
.pcard{
  position:relative;display:flex;flex-direction:column;
  background:var(--paper);
  border-right:var(--hair) solid var(--ink);
  border-bottom:var(--hair) solid var(--ink);
  min-height:340px;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
  overflow:hidden;
}
.pcard .num{
  font-family:var(--display);font-weight:900;
  font-size:clamp(3rem,2rem+4vw,5.2rem);
  line-height:.8;color:var(--accent);
  padding:20px 22px 0;
  transition:color var(--dur) var(--ease);
}
.pcard .ph{
  display:block;margin:14px 22px 0;
  aspect-ratio:16/10;overflow:hidden;background:var(--surface);
  border:var(--hair) solid var(--ink);
}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.pcard:hover .ph img{transform:scale(1.06)}
.pcard .pc-body{padding:16px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard .pc-cat{
  font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);
  transition:color var(--dur) var(--ease);
}
.pcard h3,.pcard .r-title{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:1.7rem;line-height:.96;color:var(--ink);margin:0;
  transition:color var(--dur) var(--ease);
}
.pcard .pc-meta{
  margin-top:auto;font-family:var(--sans);font-size:13px;font-weight:500;
  color:var(--muted);letter-spacing:.03em;
  transition:color var(--dur) var(--ease);
}
/* strong hover: full ultramarine invert */
.pcard:hover{background:var(--accent);color:var(--paper)}
.pcard:hover .num{color:var(--paper)}
.pcard:hover .pc-cat{color:var(--paper)}
.pcard:hover h3,.pcard:hover .r-title{color:var(--paper)}
.pcard:hover .pc-meta{color:rgba(233,229,220,.82)}
.pcard:hover .ph{border-color:var(--paper)}

/* generic card (archive/search reuse) */
.card-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-left:var(--hair) solid var(--ink);
  border-top:var(--hair) solid var(--ink);
}
.card{
  display:flex;flex-direction:column;
  background:var(--paper);
  border-right:var(--hair) solid var(--ink);
  border-bottom:var(--hair) solid var(--ink);
  overflow:hidden;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.card .ph{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface);margin:22px 22px 0;border:var(--hair) solid var(--ink)}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card:hover{background:var(--accent);color:var(--paper)}
.card:hover .ph{border-color:var(--paper)}
.card:hover .ph img{transform:scale(1.06)}
.card .c-body{padding:16px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card .c-cat{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);transition:color var(--dur) var(--ease)}
.card:hover .c-cat{color:var(--paper)}
.card h3,.card .r-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.55rem;line-height:.98;color:var(--ink);margin:0;transition:color var(--dur) var(--ease)}
.card:hover h3,.card:hover .r-title{color:var(--paper)}
.card .c-meta{margin-top:auto;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted);letter-spacing:.03em;transition:color var(--dur) var(--ease)}
.card:hover .c-meta{color:rgba(233,229,220,.82)}

/* pagination */
.pagination{display:flex;gap:0;justify-content:center;margin:54px 0 8px;flex-wrap:wrap}
.pagination .page-numbers{
  min-width:50px;height:50px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 14px;border:var(--hair) solid var(--ink);margin-left:-2px;
  font-family:var(--display);font-weight:800;font-size:18px;color:var(--ink);
  text-transform:uppercase;transition:all var(--dur) var(--ease)}
.pagination .page-numbers:hover,.pagination .current{background:var(--accent);color:var(--paper);border-color:var(--ink)}

/* ====================== SINGLE / PAGE ====================== */
.article{padding:48px 0 24px}
.breadcrumbs{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:28px}
.breadcrumbs a{color:var(--accent);transition:color var(--dur) var(--ease)}
.breadcrumbs a:hover{color:var(--ink)}
.breadcrumbs .sep{margin:0 9px;color:var(--line-strong)}

.article-head{max-width:920px;margin:0 auto}
.article-head .eyebrow{display:block;margin-bottom:16px}
.article-head h1{font-size:clamp(2.6rem,1.4rem+5vw,5.2rem);color:var(--ink);line-height:.92;font-weight:900}
.article-meta{display:flex;gap:16px;align-items:center;color:var(--muted);font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.04em;margin-top:22px}
.article-meta .dotsep{width:5px;height:5px;background:var(--accent)}

.article-hero{max-width:1040px;margin:38px auto 0;border:var(--hair) solid var(--ink);overflow:hidden}
.article-hero img{width:100%;height:auto;display:block}

.prose{max-width:760px;margin:46px auto 0;font-size:1.13rem;line-height:1.8;color:var(--ink-soft)}
.prose > p:first-of-type::first-letter{
  font-family:var(--display);font-weight:900;float:left;font-size:5rem;line-height:.72;
  padding:6px 16px 0 0;color:var(--accent)}
.prose p{margin:0 0 1.35em}
.prose h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:2rem;color:var(--ink);margin:1.7em 0 .5em;line-height:.96}
.prose h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.5rem;color:var(--ink);margin:1.5em 0 .4em;line-height:.98}
.prose a{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.prose a:hover{background:var(--accent);color:var(--paper);text-decoration:none}
.prose img{margin:1.6em auto;border:var(--hair) solid var(--ink)}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.35em}
.prose li{margin:.4em 0}
.prose blockquote{
  margin:1.8em 0;padding:18px 26px;border-left:6px solid var(--accent);background:var(--surface);
  font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.18;text-transform:uppercase;color:var(--ink)}

.tags{max-width:760px;margin:42px auto 0;display:flex;flex-wrap:wrap;gap:10px}
.tags a{
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
  border:var(--hair) solid var(--ink);padding:8px 15px;
  transition:all var(--dur) var(--ease)}
.tags a:hover{background:var(--accent);color:var(--paper);border-color:var(--ink)}

/* related (NON-heading labels) */
.related{margin-top:70px;padding-top:0;border-top:var(--hair) solid var(--ink)}
.related .related-label{
  font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--accent);margin:28px 0 22px;text-align:left}

/* ====================== FOOTER ====================== */
.site-footer{background:var(--ink);color:rgba(233,229,220,.8);margin-top:90px;
  border-top:6px solid var(--accent)}
.site-footer .wrap{padding:64px 30px 30px}
.f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.f-brand .brand{color:var(--paper)}
.f-brand .brand .dot{background:var(--accent)}
.f-blurb{margin:20px 0 0;max-width:40ch;color:rgba(233,229,220,.6);font-size:15px;line-height:1.65}
.f-col .f-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--accent);margin:0 0 16px}
.f-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.f-col a{font-family:var(--sans);font-size:15px;color:rgba(233,229,220,.78);transition:color var(--dur) var(--ease)}
.f-col a:hover{color:var(--paper)}
.f-bottom{margin-top:50px;padding-top:22px;border-top:1px solid rgba(233,229,220,.16);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:rgba(233,229,220,.5)}

/* ====================== RESPONSIVE ====================== */
@media(max-width:1024px){
  .poster-grid,.card-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  body{font-size:16px}
  .nav{
    position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:var(--paper);border-bottom:var(--hair) solid var(--ink);
    padding:8px 30px 22px;transform:translateY(-130%);transition:transform var(--dur) var(--ease);
    max-height:calc(100vh - 72px);overflow:auto}
  .nav.open{transform:translateY(0)}
  .nav a{width:100%;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}
  .nav a::after{display:none}
  .nav-toggle{display:inline-flex}
  .poster-grid,.card-grid{grid-template-columns:1fr}
  .hero.has-image{min-height:clamp(460px, 78vh, 680px)}
  .hero-inner{padding:36px 24px 28px}
  .hero-feature{flex-direction:column;align-items:flex-start;gap:16px}
  .hero-tag{align-self:flex-start}
  .hero-read{padding-left:14px;max-width:100%}
  .hero-read-arrow{margin-left:14px}
  .f-top{grid-template-columns:1fr;gap:30px}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .pcard:hover,.poster:hover,.card:hover,.hero.has-image:hover .hero-media img{transform:none}
}
