/* ==========================================================================
   "Die beste Idee der Welt" — Kampagnen-Stylesheet
   Baut auf dem Design-System von anarchismus.at auf (../assets/css/*).
   Enthält: Plakat-System (druckbar), Landingpage-Bausteine, QR-Block.
   ========================================================================== */

:root {
  --campaign-max: 1240px;
}

/* ----------  Akzent-Helfer (pro Thema)  ---------- */
.acc-red   { --accent: var(--red);   --accent-deep: var(--red-deep); }
.acc-ochre { --accent: var(--ochre); --accent-deep: #B07C24; }
.acc-terra { --accent: var(--terra); --accent-deep: var(--terra-deep); }
.acc-sage  { --accent: var(--sage);  --accent-deep: var(--sage-deep); }
.acc-plum  { --accent: var(--plum);  --accent-deep: #5E2B44; }

/* ==========================================================================
   1) KAMPAGNEN-HERO (Landingpage-Start)
   ========================================================================== */
.k-hero {
  position: relative; overflow: hidden;
  background: var(--ink); color: var(--paper);
  padding-block: clamp(4.5rem, 12vh, 9rem);
}
.k-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .9;
  background:
    radial-gradient(120% 80% at 12% 0%, rgba(192,36,28,.40), transparent 55%),
    radial-gradient(90% 70% at 100% 100%, rgba(214,154,60,.22), transparent 60%);
}
.k-hero .container { position: relative; z-index: 2; }
.k-eyebrow {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: var(--font-sans); font-weight: 800;
  font-size: .8rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ochre);
}
.k-eyebrow::before { content: ""; width: 2.4em; height: 2px; background: var(--ochre); }
.k-hero h1 {
  color: var(--paper); max-width: 18ch;
  font-size: clamp(2.6rem, 1.3rem + 6.2vw, 6.4rem);
  line-height: .96; letter-spacing: -.03em; margin-top: 1.4rem;
}
.k-hero h1 .hl { color: var(--ochre); }
.k-hero .lead { color: rgba(247,241,228,.9); max-width: 52ch; margin-top: 1.6rem; }
.k-hero .cluster { margin-top: 2.4rem; }

/* ==========================================================================
   2) THEMEN-RASTER (Übersicht auf der Landingpage)
   ========================================================================== */
.topic-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.2vw, 1.6rem);
}
@media (max-width: 920px) { .topic-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .topic-grid { grid-template-columns: 1fr; } }

/* Helle Karten mit farbiger Akzentkante */
.topic-card {
  position: relative; display: flex; flex-direction: column;
  background: var(--paper); color: var(--ink);
  border: 1px solid var(--line); border-top: 4px solid var(--accent, var(--red));
  border-radius: var(--radius-lg); padding: 1.7rem 1.6rem 1.5rem;
  transition: transform .25s ease, box-shadow .25s ease;
  min-height: 210px; overflow: hidden;
}
.topic-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.topic-card .card-kicker {
  font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent-deep, var(--red-deep)); margin-top: .1rem;
}
.topic-card .card-slogan {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(1.3rem, 1.05rem + .8vw, 1.7rem); line-height: 1.12; letter-spacing: -.015em;
  margin-top: .55rem; color: var(--ink); flex: 1; text-wrap: balance;
}
.topic-card .more {
  margin-top: 1.1rem; font-weight: 700; color: var(--accent-deep, var(--red));
  display: inline-flex; align-items: center; gap: .4em; font-size: .95rem;
}
.topic-card:hover .more .ico { transform: translateX(3px); }
.topic-card .more .ico { transition: transform .2s; }
.topic-card .idx {
  position: absolute; right: 1.2rem; top: 1.1rem;
  font-family: var(--font-display); font-weight: 600; font-size: 1.05rem;
  color: var(--accent, var(--red)); opacity: .55;
}
.topic-card .card-rose {
  position: absolute; right: 1rem; bottom: .9rem; width: 54px; height: 54px;
  background-color: var(--accent-deep, var(--red)); opacity: .10; pointer-events: none;
  -webkit-mask: url("assets/img/rose.png") center / contain no-repeat;
          mask: url("assets/img/rose.png") center / contain no-repeat;
}
/* Quintessenz: dunkle Feature-Kachel als Kontrast */
.topic-card.topic-card--ink { background: var(--ink); color: var(--paper); border-color: transparent; border-top-color: var(--accent, var(--red)); }
.topic-card.topic-card--ink .card-slogan { color: var(--paper); }
.topic-card.topic-card--ink .card-kicker { color: rgba(255,255,255,.75); }
.topic-card.topic-card--ink .more { color: var(--paper); }
.topic-card.topic-card--ink .idx { color: var(--paper); opacity: .5; }
.topic-card.topic-card--ink .card-rose { background-color: var(--paper); opacity: .16; }

/* Manifest-Hero (hell) */
.hero-manifest { background: var(--paper); color: var(--ink); text-align: center; padding: clamp(3.5rem, 8vw, 6.5rem) 1.2rem; }
.hero-manifest .hm-rose {
  display: block; width: 58px; height: 58px; margin: 0 auto 1.4rem; background-color: var(--ink);
  -webkit-mask: url("assets/img/rose.png") center / contain no-repeat; mask: url("assets/img/rose.png") center / contain no-repeat;
}
.hero-manifest .hm-eyebrow { font-family: var(--font-sans); font-size: .78rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--red); }
.hero-manifest h1 { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.6rem, 1.4rem + 5vw, 5.5rem); line-height: 1.04; letter-spacing: -.03em; color: var(--ink); margin: 1rem auto; max-width: 16ch; }
.hero-manifest .hm-rule { width: 60px; height: 2px; background: var(--red); margin: 1.6rem auto; }
.hero-manifest .hm-lead { max-width: 54ch; margin: 0 auto; color: var(--ink-mute, #5b5147); line-height: 1.7; font-size: 1.1rem; }

/* ==========================================================================
   3) THEMEN-SEITE (QR-Ziel): großer Slogan + Erklärtext
   ========================================================================== */
.t-hero {
  position: relative; overflow: hidden; color: var(--paper);
  background: var(--accent-deep, var(--red-deep));
  padding-block: clamp(3.5rem, 9vh, 7rem);
}
/* Hero-Varianten passend zum jeweiligen Plakat-Stil */
.t-hero.t-hero--ink   { background: var(--ink); }
.t-hero.t-hero--solid { background: var(--accent, var(--red)); }
.t-hero.t-hero--paper { background: var(--paper); color: var(--ink); }
.t-hero.t-hero--paper::before { display: none; }
.t-hero.t-hero--paper .cat { color: var(--accent-deep, var(--red)); }
.t-hero.t-hero--paper .t-slogan { color: var(--ink); }
.t-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background: radial-gradient(100% 90% at 90% 0%, rgba(0,0,0,.45), transparent 60%);
}
.t-hero .container { position: relative; z-index: 2; }
.t-hero .cat {
  font-size: .8rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.82);
}
.t-hero .t-slogan {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(2.2rem, 1.2rem + 5vw, 5rem); line-height: 1.02; letter-spacing: -.025em;
  color: var(--paper); margin-top: 1rem; max-width: 20ch; text-wrap: balance;
}
.t-body { max-width: 60ch; }
.t-body p { margin-top: 1.15em; font-size: clamp(1.06rem, 1rem + .3vw, 1.22rem); line-height: 1.7; color: var(--ink-soft); }
.t-body p:first-child { margin-top: 0; }
.t-body p:first-child::first-letter {
  font-family: var(--font-display); font-weight: 600; color: var(--accent-deep, var(--red));
  font-size: 3.4em; line-height: .8; float: left; margin: .06em .12em 0 0;
}
.t-kicker {
  font-family: var(--font-display); font-weight: 600; font-style: italic;
  font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2.1rem); line-height: 1.25;
  color: var(--accent-deep, var(--red)); max-width: 24ch; text-wrap: balance;
}
.t-nav { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; }

/* ==========================================================================
   4) PLAKAT-SYSTEM (druckbar, A-Format Hochformat)
   ========================================================================== */
.poster-board {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: clamp(1.4rem, 3vw, 2.4rem);
}
/* Plakatseite: 3 Plakate pro Reihe auf Desktop */
.poster-board--compact { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 860px) { .poster-board--compact { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .poster-board--compact { grid-template-columns: 1fr; } }

/* Ein Plakat im Verhältnis A-Reihe (1 : √2). */
.poster {
  --pad: 7%;
  position: relative; aspect-ratio: 1 / 1.4142; overflow: hidden;
  border-radius: var(--radius); box-shadow: var(--shadow-md);
  background: var(--ink); color: var(--paper);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: var(--pad);
  font-family: var(--font-display);
  container-type: inline-size;
}
/* Farbvarianten */
.poster--solid { background: var(--accent, var(--red)); color: var(--paper); }
.poster--ink   { background: var(--ink); color: var(--paper); }
.poster--paper { background: var(--paper); color: var(--ink); }
.poster--paper .poster-foot, .poster--paper .poster-brand { color: var(--ink); }

.poster::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.poster > * { position: relative; z-index: 1; }

.poster-brand {
  display: flex; align-items: center; gap: .5em;
  font-size: 4.2cqw; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
}
.poster-brand .glyph {
  width: 8.5cqw; height: 8.5cqw; flex: none;
  display: grid; place-items: center; background: none;
}
/* Rose-Emblem bringt seinen eigenen Kreis mit -> kein Badge-Hintergrund */
.poster--solid .poster-brand .glyph, .poster--ink .poster-brand .glyph { color: var(--paper); }
.poster--paper .poster-brand .glyph { color: var(--ink); }

/* ---- Rose-Emblem (ersetzt das "A im Kreis"): per Maske in currentColor eingefaerbt ---- */
.glyph .rose-mark {
  display: block; width: 100%; height: 100%;
  background-color: currentColor;
  -webkit-mask: url("assets/img/rose.png") center / contain no-repeat;
          mask: url("assets/img/rose.png") center / contain no-repeat;
}
/* Kopf-/Fuss-Emblem: Badge-Hintergrund weg, Symbol traegt die Farbe selbst */
.brand .glyph { background: none; border-radius: 0; color: var(--ink); }
.footer-brand .brand .glyph { background: none; color: var(--paper); }

.poster-slogan {
  font-weight: 600; line-height: 1.0; letter-spacing: -.025em;
  font-size: 11cqw; text-wrap: balance;
  display: flex; align-items: center; flex: 1; padding-block: 4cqw;
}
.poster--solid .poster-slogan .em { color: var(--ink); }
.poster--ink .poster-slogan .em { color: var(--ochre); }
.poster--paper .poster-slogan .em { color: var(--accent, var(--red)); }

.poster-foot {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 4cqw;
}
.poster-foot .url-block { font-family: var(--font-sans); }
.poster-foot .url-eyebrow { font-size: 3cqw; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.poster-foot .url { font-family: var(--font-display); font-weight: 700; font-size: 6.4cqw; letter-spacing: -.01em; margin-top: .2em; display: block; }
.poster-foot .qr {
  width: 26cqw; height: 26cqw; flex: none; background: #fff; padding: 1.6cqw; border-radius: 1.2cqw;
}
.poster-foot .qr svg, .poster-foot .qr img { width: 100%; height: 100%; display: block; }

/* Plakat-Karte mit Aktionen (nur Bildschirm) */
.poster-item { display: flex; flex-direction: column; gap: .9rem; }
.poster-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.poster-meta .pm-title { font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; }
.poster-meta .pm-cat { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }

/* Klickbares Plakat */
/* WICHTIG: kein color:inherit – sonst überschreibt der Link die helle
   Plakatschrift (a{color:inherit} würde das dunkle Body-Schwarz ziehen). */
.poster-link { cursor: pointer; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease; }
.poster-link:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.poster-link:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
a.poster-meta { color: inherit; }
a.poster-meta:hover .pm-title { color: var(--red); }

/* ==========================================================================
   3a) KURZE QR-LANDINGPAGE (max ~20 Zeilen, extrem packend)
   ========================================================================== */
.t-hero--short { padding-block: clamp(2.6rem, 6vh, 4.5rem); }
/* Kurze Landingpage: schmal auf dem Handy, deutlich breiter & luftiger am Desktop */
.qr-landing { max-width: 60ch; margin-inline: auto; text-align: left; }
@media (min-width: 1000px) { .qr-landing { max-width: 66ch; } }
.qr-landing .hook {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(2rem, 1.4rem + 2.8vw, 3.3rem); line-height: 1.08; letter-spacing: -.02em;
  color: var(--ink); text-wrap: balance; margin-bottom: .35em;
}
.qr-landing .ln {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(1.18rem, 1.04rem + .6vw, 1.5rem); line-height: 1.62;
  color: var(--ink-soft); margin-top: .9em; text-wrap: pretty;
}
.qr-landing .kicker {
  font-family: var(--font-display); font-weight: 600; font-style: italic;
  font-size: clamp(1.45rem, 1.1rem + 1.5vw, 2.2rem); line-height: 1.24; letter-spacing: -.01em;
  color: var(--accent-deep, var(--red)); margin-top: 1.1em; text-wrap: balance;
}
.qr-cta { justify-content: center; margin-top: clamp(2rem, 5vw, 3rem); }
.qr-deepnote { text-align: center; color: var(--ink-faint); font-size: .95rem; margin-top: 1.4rem; }

/* ==========================================================================
   3b) LANGTEXT-ARTIKEL (Themenseite)
   ========================================================================== */
.t-dek {
  font-family: var(--font-serif); font-weight: 380;
  font-size: clamp(1.25rem, 1.1rem + 1vw, 1.7rem); line-height: 1.5;
  color: rgba(255,255,255,.92); max-width: 40ch; margin-top: 1.2rem;
}
.t-meta {
  display: flex; flex-wrap: wrap; gap: 1rem 1.4rem; align-items: center;
  font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--ink-faint); padding-bottom: 1.4rem; border-bottom: 1px solid var(--line);
}
.t-meta .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent, var(--red)); }

/* Inhaltsverzeichnis */
.toc { background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--accent, var(--red));
  border-radius: var(--radius-lg); padding: 1.3rem 1.5rem; }
.toc h4 { font-family: var(--font-sans); font-size: .76rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-faint); margin-bottom: .8rem; }
.toc ol { counter-reset: toc; display: grid; gap: .4rem; }
.toc li { counter-increment: toc; }
.toc a { display: flex; gap: .7rem; font-size: .96rem; color: var(--ink-soft); align-items: baseline; }
.toc a::before { content: counter(toc, decimal-leading-zero); font-family: var(--font-display);
  font-weight: 600; color: var(--accent-deep, var(--red)); font-size: .82rem; flex: none; }
.toc a:hover { color: var(--accent-deep, var(--red)); }

/* Artikel-Korpus */
.article { max-width: 70ch; }
.article-section { margin-top: clamp(2.4rem, 5vw, 3.6rem); scroll-margin-top: 90px; }
.article-section > h2 {
  font-family: var(--font-display); font-weight: 600; letter-spacing: -.015em;
  font-size: clamp(1.6rem, 1.3rem + 1.5vw, 2.3rem); line-height: 1.12;
  padding-top: .2rem;
}
.article-section > h2 .sn { color: var(--accent, var(--red)); font-size: .7em; margin-right: .5em; font-weight: 600; }
.article-section p {
  font-family: var(--font-serif); font-size: clamp(1.08rem, 1.02rem + .35vw, 1.25rem);
  line-height: 1.75; color: var(--ink-soft); margin-top: 1.05em;
}
.article-section p:first-of-type { margin-top: 1.1em; }
/* Drop-Cap nur im allerersten Abschnitt */
.article-section.first p:first-of-type::first-letter {
  font-family: var(--font-display); font-weight: 600; color: var(--accent-deep, var(--red));
  font-size: 3.3em; line-height: .8; float: left; margin: .06em .12em 0 0;
}
.article blockquote {
  margin: 1.8rem 0; padding: .2rem 0 .2rem 1.4rem;
  border-left: 4px solid var(--accent, var(--red));
  font-family: var(--font-display); font-weight: 500; font-style: italic;
  font-size: clamp(1.4rem, 1.15rem + 1.2vw, 2rem); line-height: 1.28; letter-spacing: -.01em;
  color: var(--ink); text-wrap: balance;
}

/* Seitenspalte im Essay: scrollt ganz normal mit der Seite mit, damit Plakat
   und das komplette Inhaltsverzeichnis immer erreichbar sind (nichts klebt fest,
   nichts wird abgeschnitten). */
.t-aside { align-self: start; }
/* Inhaltsverzeichnis darf bei sehr vielen Kapiteln selbst scrollen, falls nötig */
.t-aside .toc { max-height: none; }

/* Einwände */
.objections { margin-top: clamp(2.4rem,5vw,3.6rem); }
.obj-item { border-top: 1px solid var(--line); padding: 1.3rem 0; }
.obj-item:last-child { border-bottom: 1px solid var(--line); }
.obj-q { font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; color: var(--ink);
  display: flex; gap: .6rem; }
.obj-q::before { content: "„"; color: var(--accent, var(--red)); font-size: 1.4em; line-height: .8; }
.obj-a { font-family: var(--font-serif); font-size: 1.1rem; line-height: 1.7; color: var(--ink-mute); margin-top: .5rem; padding-left: 1.5rem; }

/* Abschluss */
.t-conclusion { margin-top: clamp(2.4rem,5vw,3.6rem); padding: clamp(1.8rem,4vw,2.6rem);
  background: var(--accent-deep, var(--red-deep)); color: var(--paper); border-radius: var(--radius-lg); }
.t-conclusion p { font-family: var(--font-serif); font-size: clamp(1.12rem,1.05rem+.4vw,1.3rem);
  line-height: 1.7; color: rgba(255,255,255,.95); margin-top: 1em; }
.t-conclusion p:first-child { margin-top: 0; }
.t-conclusion .t-kicker { color: var(--paper); margin-top: 1.2em; }
.t-conclusion.t-conclusion--ink { background: var(--ink); }

/* ==========================================================================
   5) Diverses
   ========================================================================== */
.lede-strip { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.5rem, 1.1rem + 2vw, 2.7rem); line-height: 1.18; letter-spacing: -.02em; text-wrap: balance; }
.lede-strip b { color: var(--red); font-weight: 600; }

.how-step { display: flex; gap: 1.1rem; align-items: flex-start; }
.how-step .n { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--paper); font-family: var(--font-display); font-weight: 600; }
.how-step h3 { font-size: 1.2rem; }
.how-step p { color: var(--ink-mute); margin-top: .3rem; }

.principle-pills { display: flex; flex-wrap: wrap; gap: .6rem; }

/* Kampagnen-Mottos – reine Zier, KEINE Buttons */
.tagline-band {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: .5rem 1.1rem; max-width: 64ch; margin: 2.6rem auto 0;
}
.tagline-band .tg {
  font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: clamp(1.05rem, 1rem + .45vw, 1.35rem); line-height: 1.3;
  color: rgba(247,241,228,.82);
}
.tagline-band .tg-sep { color: var(--ochre); font-size: .6rem; opacity: .8; }

/* ==========================================================================
   6) DRUCK — eine Plakatseite pro Blatt
   ========================================================================== */
/* ---- Hero-Slogan: eleganter Einblende-Effekt beim Laden (Wort fuer Wort) ---- */
.hero-animate .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(.5em);
  filter: blur(10px);
  animation: heroWordIn .85s cubic-bezier(.2,.65,.2,1) both;
  animation-delay: calc(var(--i, 0) * .14s + .15s);
}
@keyframes heroWordIn {
  to { opacity: 1; transform: none; filter: blur(0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-animate .word { animation: none; opacity: 1; transform: none; filter: none; }
}

@media print {
  @page { margin: 8mm; }
  /* Alles Drumherum raus – nur die Plakate sollen aufs Papier */
  .site-header, .site-footer, .to-top, .no-print, .poster-meta,
  .k-hero, .hero-manifest, .note-bar, .section-head, .cta-final { display: none !important; }
  body { background: #fff; }
  .section, .section--tight { padding: 0 !important; margin: 0 !important; }
  .container, .container--wide, .container--read { padding: 0 !important; max-width: none !important; }
  .poster-board { display: block !important; gap: 0 !important; }
  .poster-item { break-inside: avoid; page-break-after: always; margin: 0 !important; gap: 0 !important; }
  .poster-item:last-child { page-break-after: auto; }
  .poster {
    width: 180mm; max-width: 180mm; margin: 0 auto; aspect-ratio: 1 / 1.4142;
    --pad: 12.6mm;
    box-shadow: none; border-radius: 0;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  /* Feste mm-Maße im Druck: Container-Einheiten (cqw) rechnet der Druck
     unzuverlässig -> sonst wird der QR zu groß und überdeckt "beste-idee.net". */
  .poster-brand { font-size: 7mm; }
  .poster-brand .glyph { width: 14mm; height: 14mm; }
  .poster-slogan { font-size: 18mm; padding-block: 7mm; }
  .poster-foot { gap: 6mm; align-items: flex-end; }
  .poster-foot .url-block { min-width: 0; }
  .poster-foot .url-eyebrow { font-size: 4mm; }
  .poster-foot .url { font-size: 10mm; }
  .poster-foot .qr {
    width: 40mm; height: 40mm; padding: 2.5mm; border-radius: 2mm; flex: none;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  /* Modus "nur dieses eine Plakat": alle anderen ausblenden */
  body.print-single .poster-item:not(.print-target) { display: none !important; }
  body.print-single .poster-item.print-target { page-break-after: auto; }
}
