/* Druckseiten: A4, ruhig, ohne Chrome. Hell wie Papier — außer dem Deck, das in CI projiziert wird. */
body.druck { background: #fff; color: #23241D; --text: #23241D; --text-weich: #5A5B4E; --linie: rgba(82,81,67,.18); --linie-stark: rgba(82,81,67,.35); --panel: #F6F2EA; --panel-hell: #EDE7DA; --grund: #fff; }
body.druck .etikett { color: #4F6149; }
body.druck a { color: #4F6149; }
body.druck h1, body.druck h2 { text-transform: none; letter-spacing: 0; }
body.druck .kopf { background: #fff; }
body.druck .kopf .marke img { filter: invert(1) brightness(.2); }
body.druck .kopf .marke, body.druck .haupt a { color: #23241D; }
body.druck .kopf .hubname { color: #4F6149; }
body.druck .sprachen a { color: #5A5B4E; border-color: rgba(82,81,67,.35); }
body.druck .sprachen a[aria-current] { background: #23241D; color: #fff; border-color: #23241D; }
body.druck footer { color: #5A5B4E; }
body.druck table.passt td:nth-child(2), body.druck table.laender td:first-child, body.druck table.kalender td.tag b { color: #4F6149; }
body.druck .merksatz { background: #F5E7C4; color: #23241D; }
body.druck .regel, body.druck table.kalender, body.druck table.passt, body.druck table.laender { background: #fff; }
body.druck .vk, body.druck .aufsteller, body.druck .duftkarte { background: #fff; }
/* Das Deck: dunkel, in CI */
body.quer { background: #1E1F1A; color: #F2EFE8; --text: #F2EFE8; --text-weich: rgba(242,239,232,.66); --linie: rgba(242,239,232,.12); --grund: #1E1F1A; }
body.quer .kopf { background: #1E1F1A; }
body.quer .kopf .marke img { filter: none; }
body.quer .kopf .marke, body.quer .haupt a { color: #F2EFE8; }
body.quer .kopf .hubname, body.quer .etikett { color: #E7CB8A; }
body.quer .folie { background: #1E1F1A; border-color: rgba(242,239,232,.12); }
body.quer .folie h1, body.quer .folie h2 { text-transform: uppercase; color: #F2EFE8; }
body.quer .folie .sprich { background: #E7CB8A; color: #1E1F1A; }
body.quer .folie .folie-fuss { color: rgba(242,239,232,.5); }
body.quer .titelfolie p { color: rgba(242,239,232,.7); }
body.quer footer { color: rgba(242,239,232,.6); }
body.quer, body.quer * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body.druck .druckmass { max-width: 52rem; padding-top: 1.5rem; }
body.druck .persona { display: none; }
.druckkopf { margin-bottom: 1.5rem; }
.druckkopf h1 { font-size: 2.2rem; }
.druckfuss { margin-top: 2rem; font-size: .75rem; color: var(--tinte-weich); border-top: 1px solid var(--linie); padding-top: .6rem; }
ul.haken { list-style: none; padding: 0; }
ul.haken li { padding: .3rem 0 .3rem 1.6rem; position: relative; border-bottom: 1px solid var(--linie); }
ul.haken li::before { content: ""; position: absolute; left: 0; top: .55rem; width: .8rem; height: .8rem; border: 1px solid var(--oliv); border-radius: 2px; }
ol.ablauf { list-style: none; padding: 0; counter-reset: a; }
ol.ablauf li { padding: .6rem 0 .6rem 2.6rem; position: relative; counter-increment: a; border-bottom: 1px solid var(--linie); }
ol.ablauf li::before { content: counter(a); position: absolute; left: 0; top: .6rem; font-family: var(--schmal); font-size: 1.6rem; color: var(--salbei); }
ol.ablauf h3 { margin: .1rem 0 .2rem; font-size: 1.15rem; }
ol.ablauf p { margin: 0; font-size: .95rem; }
ul.fragenliste { list-style: none; padding: 0; }
ul.fragenliste li { padding: .4rem 0; border-bottom: 1px solid var(--linie); }
ul.fragenliste b { font-family: var(--schmal); font-weight: 500; margin-right: .4rem; }
.frage-druck { break-inside: avoid; padding: .6rem 0; border-bottom: 1px solid var(--linie); }
.frage-druck h3 { font-size: 1.1rem; margin-bottom: .2rem; }
.frage-druck p { font-size: .95rem; margin-bottom: .3rem; }
.frage-druck .quelle { font-size: .75rem; color: var(--tinte-weich); }
.vier { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.duftkarte { border: 1px solid var(--linie); border-radius: var(--radius); padding: .7rem; text-align: center; }
.duftkarte img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.duftkarte h3 { font-size: 1.1rem; margin: .4rem 0 .1rem; }
.duftkarte .klein { font-size: .72rem; text-align: left; margin: .4rem 0 0; }
/* Folien */
.folie { min-height: calc(100vh - 6rem); padding: 3rem 3.5rem; margin: 1.5rem 0; background: #fff; border: 1px solid var(--linie); border-radius: var(--radius); position: relative; display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: auto auto auto; column-gap: 3rem; align-content: center; }
.folie > .etikett { grid-column: 1 / -1; }
.folie h2 { grid-column: 1 / -1; margin-bottom: 1.2rem; }
.folie ul { grid-column: 1; align-self: start; margin-top: 0; }
.folie .sprich { grid-column: 2; align-self: start; margin-top: 0; }
.titelfolie { display: flex; flex-direction: column; justify-content: center; }
.folie h2 { font-size: 2.6rem; max-width: 20ch; }
.folie ul { font-size: 1.35rem; line-height: 1.5; padding-left: 1.2rem; max-width: 40ch; }
.folie li { margin-bottom: .5rem; }
.folie .sprich { padding: 1.1rem 1.3rem; background: #E7CB8A; color: #1E1F1A; border-radius: var(--radius); font-size: 1.15rem; line-height: 1.5; }
.folie .folie-fuss { position: absolute; left: 3.5rem; right: 3.5rem; bottom: 1.2rem; font-size: .7rem; color: var(--tinte-weich); }
.titelfolie h1 { font-size: 3.6rem; }
.deck-logo { height: 44px; width: auto; margin-bottom: 2rem; }
.titelfolie p { font-size: 1.3rem; max-width: 40ch; color: var(--tinte-weich); }
/* Visitenkarten 85 x 55 mm, 2 x 4 auf A4 */
.vk-bogen { display: grid; grid-template-columns: repeat(2, 85mm); gap: 6mm; justify-content: center; margin: 1rem auto; }
.vk { width: 85mm; height: 55mm; border: 1px dashed var(--linie); border-radius: 2mm; padding: 4mm; display: grid; grid-template-columns: 26mm 1fr; gap: 3mm; align-items: center; background: #fff; }
.vk .vk-qr { width: 24mm; height: 24mm; }
.vk .vk-qr img, .vk .vk-qr canvas { width: 24mm !important; height: 24mm !important; }
.vk .z1 { font-family: var(--schmal); font-size: 10pt; font-weight: 500; line-height: 1.2; }
.vk .z2 { font-size: 7pt; margin-top: 1mm; }
.vk .code { font-family: var(--schmal); font-size: 12pt; letter-spacing: .06em; color: var(--salbei-tief); }
.vk .z3 { font-size: 5.5pt; color: var(--tinte-weich); line-height: 1.25; margin-top: .5mm; }
/* Aufsteller A5 */
.aufsteller { width: 148mm; min-height: 200mm; margin: 1rem auto; padding: 14mm; border: 1px solid var(--linie); text-align: center; display: flex; flex-direction: column; justify-content: center; gap: .6rem; background: #fff; }
.aufsteller h1 { font-size: 2.4rem; }
.aufsteller .code-zeile { font-size: 1rem; }
.aufsteller .code { font-family: var(--schmal); font-size: 2rem; letter-spacing: .08em; color: var(--salbei-tief); }
.aufsteller-qr { display: grid; place-items: center; margin: .6rem 0; }
.aufsteller .z3 { font-size: .7rem; color: var(--tinte-weich); }
@page { size: A4; margin: 12mm; }
body.quer .folie { aspect-ratio: 297 / 190; min-height: 0; }
.vier, .duftkarte { break-inside: avoid; }
@media print {
  body.druck .kopf, body.druck .druckkopf .knopf, body.druck .nur-bildschirm, body.druck footer { display: none !important; }
  body.quer .druckmass { padding: 0; max-width: none; }
  body.quer .folie { height: 178mm; aspect-ratio: auto; margin: 0; padding: 12mm 16mm; break-after: page; page-break-after: always; overflow: hidden; border: 0; border-radius: 0; }
  body.quer { background: #1E1F1A; }
  body.quer .druckmass { background: #1E1F1A; }
  body.quer .folie:last-child { break-after: auto; page-break-after: auto; }
  .folie { min-height: 0; border: 0; }
  .vk-bogen { margin: 0; }
  .vk { border-color: #bbb; }
  .aufsteller { border: 0; margin: 0; }
  @page { margin: 10mm; }
}

/* Visitenkarte: Partnerblock */
.vk-kopf { display: flex; gap: 3mm; align-items: center; margin-bottom: 1mm; }
.vk-foto { width: 11mm; height: 11mm; border-radius: 50%; overflow: hidden; flex: none; }
.vk-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vk-marke { opacity: .75; }

/* Partnerzeile: unten auf jeder Druckseite, nur mit Profil (hub.js) */
.partnerzeile { display: flex; gap: 4mm; align-items: center; font-size: 8pt; line-height: 1.35; border-top: .3pt solid #999; padding: 2mm 0 0; margin-top: 8mm; background: #fff; color: #23241D; }
.partnerzeile[hidden] { display: none; }
.pz-foto { width: 10mm; height: 10mm; border-radius: 50%; overflow: hidden; flex: none; }
.pz-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pz-text { flex: 1; min-width: 0; }
.pz-text b { font-weight: 700; }
.pz-qr { flex: none; width: 14mm; height: 14mm; }
.pz-qr canvas, .pz-qr img { width: 14mm; height: 14mm; }
@media print {
  .partnerzeile { position: fixed; bottom: 0; left: 0; right: 0; margin: 0; padding: 2mm 0 1mm; }
  .druckmass { padding-bottom: 22mm; }
  @page { margin-bottom: 24mm; }
}
/* Flyer (A5) */
.flyer { max-width: 132mm; margin: 0 auto; }
.fl-kopf { text-align: center; margin-bottom: 5mm; }
.fl-kopf .deck-logo { height: 12mm; width: auto; margin-bottom: 2mm; }
.fl-kopf h1 { font-size: 15pt; margin: 1mm 0 0; }
.fl-duefte { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm 4mm; margin-bottom: 5mm; }
.fl-duft { display: flex; gap: 2.5mm; align-items: flex-start; }
.fl-duft img { width: 16mm; height: 16mm; object-fit: cover; border-radius: 1.5mm; flex: none; }
.fl-duft h3 { font-size: 10.5pt; margin: 0 0 .5mm; }
.fl-duft .leise { font-size: 8pt; margin: 0 0 .5mm; }
.fl-duft .klein { font-size: 7pt; margin: 0; color: #555; }
.fl-bestellen { display: flex; gap: 5mm; align-items: center; border-top: .3pt solid #999; padding-top: 4mm; }
.fl-bestellen h2 { font-size: 11pt; margin: 0 0 1.5mm; }
.fl-bestellen p { font-size: 8.5pt; margin: 0 0 1.5mm; }
.fl-bestellen .fl-link { font-family: ui-monospace, Menlo, monospace; font-size: 8pt; word-break: break-all; }
.fl-bestellen .code-zeile { font-size: 9pt; }
.fl-bestellen .code { font-weight: 700; letter-spacing: .08em; }
.fl-qr { flex: none; width: 32mm; height: 32mm; }
.fl-qr canvas, .fl-qr img { width: 32mm; height: 32mm; }

/* Tischkarten: A6 quer, vier auf A4 quer, Schnittkanten gestrichelt */
.tisch-bogen { display: grid; grid-template-columns: repeat(2, 140mm); gap: 4mm; justify-content: center; margin: 1rem auto; }
.tischkarte { width: 140mm; height: 94mm; border: 1px dashed var(--linie-stark); padding: 6mm 6mm 4mm; display: grid; grid-template-columns: 40mm 1fr; grid-template-rows: 1fr auto; gap: 2mm 5mm; background: #fff; break-inside: avoid; box-sizing: border-box; }
.tischkarte img { width: 40mm; height: 40mm; object-fit: contain; align-self: center; }
.tischkarte .tk-text { min-width: 0; }
.tischkarte .etikett { display: block; font-size: 6.5pt; letter-spacing: .2em; margin-bottom: 1mm; }
.tischkarte h2 { font-size: 20pt; margin: 0 0 2mm; text-transform: uppercase; letter-spacing: .02em; }
.tischkarte .pyr { font-size: 8pt; line-height: 1.45; margin: 0 0 2mm; }
.tischkarte .pyr b { font-family: var(--schmal); font-weight: 600; color: #4F6149; display: inline-block; min-width: 17mm; }
.tischkarte .wenn { font-size: 8pt; line-height: 1.4; margin: 0 0 1.5mm; }
.tischkarte .tk-hinweis { font-size: 6pt; color: var(--tinte-weich); margin: 0; }
.tischkarte .tk-fuss { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 4mm; font-size: 6pt; color: var(--tinte-weich); border-top: .3pt solid #999; padding-top: 1.5mm; }
.tischkarte .tk-fuss b { color: #23241D; }
.tischkarte .tk-fuss [hidden] { display: none; }
@media print { .tisch-bogen { margin: 0; gap: 3mm; } .tischkarte { border-color: #bbb; } body.druck:has(.tisch-bogen) .partnerzeile { display: none; } body.druck:has(.tisch-bogen) .druckmass { padding: 0; max-width: none; } }

/* Logos auf Druckseiten: ganz, ohne Kreis */
.pz-foto.logo, .vk-foto.logo { border-radius: 1mm; border: .3pt solid #ddd; background: #fff; }
.pz-foto.logo img, .vk-foto.logo img { object-fit: contain; padding: 4%; box-sizing: border-box; }
.pz-foto.logo { width: auto; max-width: 22mm; padding: 0 1mm; }
.vk-foto.logo { width: auto; max-width: 14mm; padding: 0 .6mm; }
.vk-kopf > div { min-width: 0; }
.pz-foto.logo img, .vk-foto.logo img { width: auto; height: 100%; max-width: 100%; padding: 8% 0; }

/* Review-Fixes: Partnerzeile im Fluss statt fixiert (verdeckte Zeilen), lange Werte, Handy-Vorschau */
@media print {
  .partnerzeile { position: static; margin-top: 8mm; padding: 2mm 0 0; }
  .druckmass { padding-bottom: 0; }
  @page { margin-bottom: 12mm; }
  body.druck:has(.vk-bogen) .partnerzeile { display: none; }
  body.druck:has(.vk-bogen) .druckmass { padding: 0; }
}
.vk { overflow: hidden; }
.vk > div { min-width: 0; overflow-wrap: anywhere; }
.vk .code.lang { font-size: 8pt; letter-spacing: 0; }
.aufsteller .code { overflow-wrap: anywhere; }
.aufsteller .code.lang { font-size: 1.2rem; letter-spacing: .02em; }
@media (max-width: 1100px) { .kopf .haupt { gap: .8rem; } .kopf .haupt a { font-size: .62rem; letter-spacing: .1em; } }
@media screen and (max-width: 700px) {
  .vk-bogen { zoom: .5; }
  .tisch-bogen { zoom: .34; }
  .aufsteller { zoom: .6; }
  .folie { zoom: .6; }
  body.druck .tabelle-rahmen, body.druck table.passt, body.druck table.laender { display: block; overflow-x: auto; max-width: 100%; }
}

/* Review 3: helle Druckleinwand (sonst schwarze Ränder), Deck-Leerseite, Umbrüche, Visitenkarte enger, Handy */
html:has(body.druck:not(.quer)) { color-scheme: light; background: #fff; }
@media print {
  html:has(body.druck:not(.quer)) { color-scheme: light; background: #fff; }
  .zwei { grid-template-columns: 1fr; }
  .regel, ol.ablauf li, .vk, .frage-druck, tr { break-inside: avoid; }
  h2, h3 { break-after: avoid; }
  body.quer .folie:last-child { break-after: page; }
  body.quer .folie:last-of-type { break-after: auto; page-break-after: auto; }
  body.druck:has(.aufsteller) .partnerzeile { display: none; }
  body.druck:has(.aufsteller) .druckmass { padding: 0; }
  .aufsteller { width: auto; min-height: 0; height: 184mm; }
}
.druck-schwebend { position: fixed; right: 1rem; bottom: 1rem; z-index: 30; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.vk .z2 { font-size: 6.5pt; }
.vk .z3 { font-size: 5pt; }
.vk-foto { width: 9mm; height: 9mm; }
.vk .code { font-size: 11pt; }
.tisch-bogen, .vk-bogen { overflow-x: auto; }
@media (max-width: 700px) { body.quer .folie { aspect-ratio: auto; grid-template-columns: 1fr; padding: 1.5rem; min-height: 0; } body.quer .folie .sprich, body.quer .folie ul { grid-column: 1; } }
