/* =========================================================================
   DIVINE — Journal Redesign
   Umsetzung von "Journal Redesign.dc.html" (Claude Design). Tokens 1:1 aus
   brand.css; Klassenpraefix jr- (Feed/Artikel) bzw. dv- (uebernommene
   Design-System-Komponenten fuer Fliesstext/Titel/Knopf). Kopf-/Fusszeile
   bleiben die gemeinsame Seiten-Chrome (site-chrome.css) — bewusst NICHT hier.
   ========================================================================= */

:root{
  --dv-bg-card:#f3f1ec;
  --dv-bg-card-2:#ecebe5;
  --dv-ink:#1f1f1c;
  --dv-ink-soft:#2b2b27;
  --dv-ink-mute:#6b6b66;
  --dv-hair:rgba(31,31,28,.55);
  --dv-hair-soft:rgba(31,31,28,.18);
  --dv-accent:#4a3a52;
  --dv-display:"Stigsa Display",Georgia,serif;
  --dv-sans:"Fira Sans Light","Helvetica Neue",Arial,sans-serif;
  --dv-measure:34rem;
}

/* ---------- Container ---------- */
.jr{
  max-width:var(--dv-measure); margin:0 auto; padding:34px 24px 40px;
  font-family:var(--dv-sans); font-weight:200; color:var(--dv-ink);
  line-height:1.6; -webkit-font-smoothing:antialiased;
}
.jr *{box-sizing:border-box}

/* ---------- Journal-Kopf ---------- */
.jr-head{padding-bottom:6px}
.jr-eyebrow{
  font-size:10.5px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--dv-ink-mute); margin:0 0 12px;
}
.jr-h1{
  font-family:var(--dv-display); font-weight:500; font-size:38px; line-height:1.12;
  margin:0; color:var(--dv-ink); text-wrap:balance;
}

/* ---------- Filterleiste (aktiver Tag) ---------- */
.jr-filter{
  display:flex; align-items:center; flex-wrap:wrap; gap:12px;
  margin-top:22px; padding:14px 0;
  border-top:1px solid var(--dv-hair-soft); border-bottom:1px solid var(--dv-hair-soft);
}
.jr-filter__label{font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--dv-ink-mute)}
.jr-filter__label strong{color:var(--dv-ink); font-weight:400}
.jr-chip--clear{
  min-height:34px; padding:0 12px; display:inline-flex; align-items:center;
  border:1px solid var(--dv-hair-soft); background:transparent; color:var(--dv-ink-soft);
  font-size:9.5px; letter-spacing:.24em; text-transform:uppercase; text-decoration:none;
  transition:color .18s ease,border-color .18s ease;
}
.jr-chip--clear:hover{color:var(--dv-ink); border-color:var(--dv-ink)}

/* ---------- Feed ---------- */
.jr-feed{display:flex; flex-direction:column; margin-top:12px}
.jr-post{
  padding:30px 0; border-bottom:1px solid var(--dv-hair-soft);
  animation:jrFade .32s ease both;
}
.jr-post__author{display:flex; align-items:center; gap:11px; margin-bottom:16px}
.jr-avatar{
  width:38px; height:38px; border-radius:50%; object-fit:cover;
  background:var(--dv-bg-card-2); flex:none;
}
.jr-post__by{
  font-family:var(--dv-display); font-weight:500; font-size:15.5px;
  color:var(--dv-ink); line-height:1.1;
}
.jr-post__link{display:block; color:inherit; text-decoration:none}
.jr-post__note{
  font-family:var(--dv-display); font-weight:400; font-size:22px; line-height:1.48;
  color:var(--dv-ink); margin:0; text-wrap:pretty; transition:color .18s ease;
}
.jr-post__link:hover .jr-post__note,
.jr-post__link:hover .jr-post__title{color:var(--dv-accent)}
.jr-post__title{
  font-family:var(--dv-display); font-weight:500; font-size:27px; line-height:1.2;
  margin:0 0 9px; color:var(--dv-ink); text-wrap:balance; transition:color .18s ease;
}
.jr-post__excerpt{
  font-size:15.5px; line-height:1.75; color:var(--dv-ink-soft); margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.jr-post__more{
  display:inline-flex; align-items:center; gap:8px; margin-top:14px;
  font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--dv-accent);
}

/* ---------- Tags + Teilen ---------- */
.jr-post__foot{display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:18px}
.jr-tags{display:flex; flex-wrap:wrap; gap:7px}
.jr-tag{
  min-height:30px; padding:0 10px; display:inline-flex; align-items:center;
  border:1px solid var(--dv-hair-soft); background:transparent; color:var(--dv-ink-mute);
  font-size:9.5px; letter-spacing:.24em; text-transform:uppercase; text-decoration:none;
  cursor:pointer; transition:color .18s ease,border-color .18s ease;
}
.jr-tag:hover{color:var(--dv-ink); border-color:var(--dv-ink)}
.jr-spacer{flex:1}
.jr-icon{
  width:36px; height:36px; display:grid; place-items:center;
  border:1px solid var(--dv-hair-soft); background:transparent; color:var(--dv-ink-mute);
  cursor:pointer; text-decoration:none; transition:color .18s ease,border-color .18s ease;
}
.jr-icon:hover{color:var(--dv-ink); border-color:var(--dv-ink)}

/* ---------- Leerzustand / Ende ---------- */
.jr-empty{padding:60px 0; text-align:center}
.jr-empty__title{font-family:var(--dv-display); font-size:22px; color:var(--dv-ink); margin:0 0 8px}
.jr-end{margin:34px 0 0; text-align:center; font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--dv-ink-mute)}

/* ---------- Artikel ---------- */
.jr-progress{position:fixed; top:0; left:0; right:0; height:2px; z-index:40; background:transparent}
.jr-progress__bar{display:block; height:2px; width:0; background:var(--dv-accent); transition:width .12s linear}
.jr-back{
  display:inline-flex; align-items:center; gap:9px; min-height:44px;
  font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--dv-ink-mute);
  text-decoration:none; transition:color .18s ease;
}
.jr-back:hover{color:var(--dv-ink)}

.dv-eyebrow{font-size:10px; letter-spacing:.34em; text-transform:uppercase; color:var(--dv-ink-mute); margin:0 0 15px}
.dv-title{
  font-family:var(--dv-display); font-weight:500; font-size:clamp(30px,6vw,44px);
  line-height:1.13; margin:0 0 16px; color:var(--dv-ink); text-wrap:balance;
}
.dv-rule{width:44px; height:1px; background:var(--dv-hair); border:0; margin:0 0 24px}

.jr-article__author{display:flex; align-items:center; gap:12px; margin:-6px 0 30px}
.jr-avatar--lg{width:42px; height:42px}
.jr-author__col{display:flex; flex-direction:column; gap:3px}
.jr-author__name{font-family:var(--dv-display); font-weight:500; font-size:16px; color:var(--dv-ink); line-height:1.1}
.jr-author__role{font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--dv-ink-mute)}

/* ---------- Fliesstext (rendert gespeichertes body_html) ---------- */
.dv-prose{font-size:16.5px; line-height:1.86; color:var(--dv-ink-soft); max-width:var(--dv-measure)}
.dv-prose > p{margin:0 0 1.15em}
.dv-prose > p:last-child{margin-bottom:0}
.dv-prose strong{font-weight:400; color:var(--dv-ink)}
.dv-prose em{font-style:italic}
.dv-prose a{color:var(--dv-accent); text-decoration:underline; text-underline-offset:2px}
.dv-prose h2{font-family:var(--dv-display); font-weight:500; font-size:26px; line-height:1.25; margin:1.9em 0 .55em; color:var(--dv-ink); text-wrap:balance}
.dv-prose h3{font-family:var(--dv-sans); font-weight:200; font-size:12px; letter-spacing:.26em; text-transform:uppercase; margin:2em 0 .7em; color:var(--dv-ink-mute)}
.dv-prose ul,.dv-prose ol{margin:0 0 1.15em; padding-left:1.25em}
.dv-prose li{margin-bottom:.45em}
/* Bild + Zitat: gespeichertes HTML nutzt rohe figure/blockquote (keine dv-Klassen) */
.dv-prose figure{margin:1.8em 0}
.dv-prose figure img{width:100%; height:auto; display:block; background:var(--dv-bg-card-2)}
.dv-prose figcaption{font-size:11.5px; letter-spacing:.05em; color:var(--dv-ink-mute); margin-top:9px; line-height:1.6}
.dv-prose blockquote{
  margin:1.7em 0; padding:2px 0 2px 20px; border-left:2px solid var(--dv-accent);
  font-family:var(--dv-display); font-style:italic; font-weight:400;
  font-size:22px; line-height:1.5; color:var(--dv-ink);
}

/* ---------- Artikel-Tagreihe ---------- */
.jr-tagrow{
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  margin:34px 0 0; padding-top:20px; border-top:1px solid var(--dv-hair-soft);
}
.jr-copy{
  display:inline-flex; align-items:center; gap:9px; min-height:36px; padding:0 13px;
  border:1px solid var(--dv-hair-soft); background:transparent; color:var(--dv-ink-soft);
  font-family:var(--dv-sans); font-weight:200; font-size:9.5px; letter-spacing:.24em;
  text-transform:uppercase; cursor:pointer; transition:color .18s ease,border-color .18s ease;
}
.jr-copy:hover{color:var(--dv-ink); border-color:var(--dv-ink)}

/* ---------- Prev/Next ---------- */
.jr-nav{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));
  gap:1px; background:var(--dv-hair-soft); margin-top:40px;
  border-top:1px solid var(--dv-hair-soft); border-bottom:1px solid var(--dv-hair-soft);
}
.jr-nav__cell{background:var(--dv-bg-card); padding:20px 0 22px; display:block; color:inherit; text-decoration:none}
.jr-nav__dir{font-size:9.5px; letter-spacing:.28em; text-transform:uppercase; margin:0 0 9px}
.jr-nav__dir--muted{color:var(--dv-ink-mute)}
.jr-nav__dir--link{color:var(--dv-accent)}
.jr-nav__title{font-family:var(--dv-display); font-size:19px; line-height:1.3; margin:0; text-wrap:pretty}
.jr-nav__title--muted{color:var(--dv-ink-mute)}
.jr-nav__cell:hover .jr-nav__title{color:var(--dv-accent)}

/* ---------- Knopf ---------- */
.jr-backbtn{margin-top:34px}
.dv-btn{
  display:block; width:100%; padding:17px 20px; border:1px solid var(--dv-ink);
  background:transparent; color:var(--dv-ink); font-family:var(--dv-sans); font-size:11px;
  letter-spacing:.34em; text-transform:uppercase; text-align:center; text-decoration:none;
  cursor:pointer; transition:background .18s ease,color .18s ease;
}
.dv-btn:hover{background:var(--dv-ink); color:var(--dv-bg-card)}

/* ---------- Toast (Link kopiert) ---------- */
.jr-toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%); z-index:50;
  background:var(--dv-ink); color:var(--dv-bg-card); padding:11px 18px;
  font-size:10px; letter-spacing:.26em; text-transform:uppercase;
  animation:jrFade .22s ease both;
}
.jr-toast[hidden]{display:none}

@keyframes jrFade{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){
  .jr-post{animation:none}
  .jr-progress__bar{transition:none}
}
