/* Helmut Jahn — Meine Mappe
 * Paper / Ink / Oxide. radius: 0. Keine Shadows. Keine Cart-Optik.
 */

/* ---------- Dauerhafter Zugang in der Hauptnavigation ---------- */
.hj-primary-links .hj-nav-mappe__button {
  position: relative;
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--hj-graphite, #595750);
  font: inherit;
  font-size: 11px;
  letter-spacing: .035em;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.hj-primary-links .hj-nav-mappe__button::after {
  position: absolute;
  right: 0;
  bottom: 4px;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right;
  background: currentColor;
  content: "";
  transition: transform 180ms ease;
}
.hj-primary-links .hj-nav-mappe__button:hover,
.hj-primary-links .hj-nav-mappe__button:focus-visible,
.hj-primary-links .hj-nav-mappe__button.has-items {
  color: var(--hj-ink, #121210);
}
.hj-primary-links .hj-nav-mappe__button:hover::after,
.hj-primary-links .hj-nav-mappe__button:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.hj-primary-links .hj-nav-mappe__button:focus-visible {
  outline: 2px solid var(--hj-focus, #005a9c);
  outline-offset: 3px;
}
.hj-nav-mappe__count {
  margin-left: 7px;
  color: var(--hj-graphite, #595750);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0;
}
.hj-nav-mappe__count::before {
  margin-right: 5px;
  content: "·";
}
.hj-nav-mappe__button.has-items .hj-nav-mappe__count {
  color: var(--hj-oxide, #7a2e24);
}

@media (max-width: 781px) {
  .hj-primary-links .hj-nav-mappe__button {
    width: 100%;
    min-height: 52px;
    justify-content: space-between;
    font-family: var(--hj-display, serif);
    font-size: 22px;
    text-align: left;
  }
  .hj-primary-links .hj-nav-mappe__button::after {
    display: none;
  }
  .hj-nav-mappe__count {
    font-family: var(--hj-sans, sans-serif);
    font-size: 12px;
  }
}

/* ---------- Floating Badge (Anker unten rechts) ---------- */
.hj-mappe-badge {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9600;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 15px 11px 17px;
  background: var(--hj-paper, #f8f7f3);
  color: var(--hj-ink, #121210);
  border: 1px solid var(--hj-ink, #121210);
  border-radius: 0;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
.hj-mappe-badge[hidden] { display: none !important; }
.hj-mappe-badge:hover,
.hj-mappe-badge:focus-visible {
  color: var(--hj-oxide, #7a2e24);
  border-color: var(--hj-oxide, #7a2e24);
  outline: none;
}

/* The open artwork film is the primary bottom control. Keep the selection
 * badge clear of thumbnails and bar instead of covering their final items. */
body:is(.post-type-archive-artwork, .tax-work_group):has(.hj-lk-drawer--film.is-open, .hj-lk-drawer--film.is-pinned) .hj-mappe-badge {
  bottom: calc(var(--hj-lk-film-panel-h, 96px) + var(--hj-lk-film-compact, 36px) + 20px);
}
.hj-mappe-badge__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border: 1px solid currentColor;
  border-radius: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}

/* Kurzer Puls beim Erscheinen (0 -> N) oder beim Zaehler-Sprung nach oben.
   Damit das Badge beim ersten Merken sichtbar auffaellt, ohne die
   Paper/Ink-Aesthetik zu brechen (keine Shadows, keine Cart-Optik). */
@keyframes hjMappeBadgePulse {
  0%   { transform: translateY(0);    color: var(--hj-ink, #121210); border-color: var(--hj-ink, #121210); }
  25%  { transform: translateY(-3px); color: var(--hj-oxide, #7a2e24); border-color: var(--hj-oxide, #7a2e24); }
  50%  { transform: translateY(0);    color: var(--hj-oxide, #7a2e24); border-color: var(--hj-oxide, #7a2e24); }
  75%  { transform: translateY(-2px); color: var(--hj-oxide, #7a2e24); border-color: var(--hj-oxide, #7a2e24); }
  100% { transform: translateY(0);    color: var(--hj-ink, #121210); border-color: var(--hj-ink, #121210); }
}
.hj-mappe-badge.is-fresh {
  animation: hjMappeBadgePulse 1.6s ease-out 1;
}
@media (prefers-reduced-motion: reduce) {
  .hj-mappe-badge.is-fresh {
    animation: none;
    color: var(--hj-oxide, #7a2e24);
    border-color: var(--hj-oxide, #7a2e24);
  }
}

@media (max-width: 600px) {
  .hj-mappe-badge {
    right: 12px;
    bottom: 12px;
    padding: 10px 13px;
    font-size: 11px;
  }

  body:is(.post-type-archive-artwork, .tax-work_group):has(.hj-lk-drawer--film.is-open, .hj-lk-drawer--film.is-pinned) .hj-mappe-badge {
    bottom: calc(var(--hj-lk-film-panel-h, 96px) + var(--hj-lk-film-compact, 45px) + 12px);
  }

  /* Auf langen redaktionellen Seiten bleibt die Mappe über das Hauptmenü
     erreichbar. Das Floating-Badge erscheint mobil nur dort, wo Werke
     tatsächlich ausgewählt werden, und überdeckt keine Captions oder CTAs. */
  body:not(.post-type-archive-artwork):not(.single-artwork) .hj-mappe-badge {
    display: none !important;
  }
}

/* Body-Lock wenn Drawer offen */
html.hj-mappe-lock,
html.hj-mappe-lock body {
  overflow: hidden !important;
}

/* ---------- Backdrop + Drawer ---------- */
.hj-mappe-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9700;
  background: rgba(18, 18, 16, 0);
  transition: background-color .24s ease;
}
.hj-mappe-backdrop[hidden] { display: none !important; }
.hj-mappe-backdrop.is-open {
  background: rgba(18, 18, 16, .38);
}

.hj-mappe-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 9800;
  width: min(420px, 100vw);
  background: var(--hj-paper, #f8f7f3);
  color: var(--hj-ink, #121210);
  border-left: 1px solid var(--hj-ink, #121210);
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .24s ease;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
}
.hj-mappe-drawer[hidden] { display: none !important; }
.hj-mappe-drawer.is-open { transform: translateX(0); }

.hj-mappe-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 14px;
  border-bottom: 1px solid var(--hj-line, #cfccc3);
}
.hj-mappe-drawer__title {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--hj-ink, #121210);
}
.hj-mappe-drawer__close {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 1px solid var(--hj-ink, #121210);
  border-radius: 0;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  color: var(--hj-ink, #121210);
  cursor: pointer;
}
.hj-mappe-drawer__close:hover,
.hj-mappe-drawer__close:focus-visible {
  color: var(--hj-ink, #121210);
  border-color: var(--hj-ink, #121210);
  outline: none;
}

.hj-mappe-drawer__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 12px 20px 20px;
}

/* ---------- Empty ---------- */
.hj-mappe-empty {
  padding: 24px 4px;
  color: var(--hj-graphite, #595750);
}
.hj-mappe-empty__title {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--hj-ink, #121210);
  letter-spacing: .04em;
}
.hj-mappe-empty__hint {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
.hj-mappe-empty__hint em {
  font-style: normal;
  color: var(--hj-oxide, #7a2e24);
}
.hj-mappe-empty__link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: 18px;
  padding: 0 14px;
  border: 1px solid var(--hj-ink, #121210);
  color: var(--hj-ink, #121210);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}
.hj-mappe-empty__link:hover,
.hj-mappe-empty__link:focus-visible {
  border-color: var(--hj-ink, #121210);
  color: var(--hj-ink, #121210);
}

/* ---------- Liste ---------- */
.hj-mappe-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hj-mappe-item {
  padding: 14px 0;
  border-bottom: 1px solid var(--hj-line, #cfccc3);
}
.hj-mappe-item:first-child { padding-top: 10px; }
.hj-mappe-item:last-child  { border-bottom: none; }

.hj-mappe-item__head {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 12px;
  align-items: flex-start;
}
.hj-mappe-item__thumb {
  width: 72px;
  height: 72px;
  object-fit: cover;
  background: #eae7dd;
  border: 1px solid var(--hj-line, #cfccc3);
  border-radius: 0;
  display: block;
}
.hj-mappe-item__thumb--empty {
  display: block;
}
.hj-mappe-item__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.hj-mappe-item__inv {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--hj-graphite, #595750);
}
.hj-mappe-item__title {
  color: var(--hj-ink, #121210);
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.hj-mappe-item__title:hover,
.hj-mappe-item__title:focus-visible {
  color: var(--hj-ink, #121210);
  outline: none;
}
.hj-mappe-item__meta {
  font-size: 12px;
  color: var(--hj-graphite, #595750);
  line-height: 1.4;
}
.hj-mappe-item__remove {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 1px solid var(--hj-line, #cfccc3);
  border-radius: 0;
  padding: 4px 8px;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--hj-graphite, #595750);
  cursor: pointer;
  line-height: 1;
  white-space: nowrap;
}
.hj-mappe-item__remove:hover,
.hj-mappe-item__remove:focus-visible {
  color: var(--hj-ink, #121210);
  border-color: var(--hj-ink, #121210);
  outline: none;
}

.hj-mappe-item__note {
  display: block;
  width: 100%;
  margin: 10px 0 0;
  padding: 8px 10px;
  border: 1px solid var(--hj-line, #cfccc3);
  border-radius: 0;
  background: #fdfcf8;
  color: var(--hj-ink, #121210);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.45;
  resize: none;
  min-height: 34px;
  box-shadow: none;
  outline: none;
}
.hj-mappe-item__note:focus {
  border-color: var(--hj-ink, #121210);
}

/* ---------- Foot / Actions ---------- */
.hj-mappe-drawer__foot {
  padding: 14px 20px 20px;
  border-top: 1px solid var(--hj-line, #cfccc3);
  background: var(--hj-paper, #f8f7f3);
}
.hj-mappe-drawer__foot[hidden] { display: none !important; }

.hj-mappe-globalnote__label {
  display: block;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--hj-graphite, #595750);
  margin-bottom: 6px;
}
.hj-mappe-globalnote {
  display: block;
  width: 100%;
  padding: 8px 10px;
  margin: 0 0 12px;
  border: 1px solid var(--hj-line, #cfccc3);
  border-radius: 0;
  background: #fdfcf8;
  color: var(--hj-ink, #121210);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.45;
  resize: none;
  min-height: 44px;
  box-shadow: none;
  outline: none;
}
.hj-mappe-globalnote:focus {
  border-color: var(--hj-ink, #121210);
}

.hj-mappe-privacy {
  margin: 0 0 12px;
  color: var(--hj-graphite, #595750);
  font-size: 11px;
  line-height: 1.45;
}

.hj-mappe-drawer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hj-mappe-btn {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  background: transparent;
  color: var(--hj-ink, #121210);
  border: 1px solid var(--hj-ink, #121210);
  border-radius: 0;
  padding: 9px 14px;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1;
  font-weight: 600;
  box-shadow: none;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
.hj-mappe-btn:hover,
.hj-mappe-btn:focus-visible {
  color: var(--hj-ink, #121210);
  border-color: var(--hj-ink, #121210);
  outline: none;
}
.hj-mappe-btn:disabled {
  opacity: .6;
  cursor: default;
}
.hj-mappe-btn--primary {
  background: var(--hj-ink, #121210);
  color: var(--hj-paper, #f8f7f3);
}
.hj-mappe-btn--primary:hover,
.hj-mappe-btn--primary:focus-visible {
  background: var(--hj-graphite, #595750);
  border-color: var(--hj-graphite, #595750);
  color: var(--hj-paper, #f8f7f3);
}
.hj-mappe-btn--ghost {
  border-color: var(--hj-line, #cfccc3);
  color: var(--hj-graphite, #595750);
}

/* ---------- Print: Default = nichts von der Mappe ---------- */
@media print {
  .hj-mappe-badge,
  .hj-mappe-backdrop,
  .hj-mappe-drawer {
    display: none !important;
  }
}

/* ---------- Print: Mappen-Modus (Nutzer hat "Drucken · PDF" geklickt) ---------- */
/* Aktiviert durch <html class="hj-mappe-print-mode"> ueber hj-mappe.js.
 * Ziel: Drawer-Inhalt als Print-Dokument, alles andere ausgeblendet.
 * Design-Lock: Paper/Ink/Oxide-Palette wird respektiert (Text schwarz, Papier weiss).
 */
@media print {
  .hj-mappe-print-mode body > *:not(.hj-mappe-drawer):not(.hj-mappe-backdrop):not(.hj-mappe-badge) {
    display: none !important;
  }
  .hj-mappe-print-mode .hj-mappe-badge,
  .hj-mappe-print-mode .hj-mappe-backdrop {
    display: none !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    transform: none !important;
    box-shadow: none !important;
    background: #fff !important;
    color: #000 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: visible !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer__head {
    border-bottom: 1px solid #000 !important;
    padding: 0 0 8pt 0 !important;
    background: transparent !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer__title {
    color: #000 !important;
    font-size: 18pt !important;
    margin: 0 !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer__close,
  .hj-mappe-print-mode .hj-mappe-drawer__actions,
  .hj-mappe-print-mode .hj-mappe-globalnote__label,
  .hj-mappe-print-mode .hj-mappe-globalnote,
  .hj-mappe-print-mode .hj-mappe-item__remove {
    display: none !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer__body {
    padding: 8pt 0 !important;
    overflow: visible !important;
  }
  .hj-mappe-print-mode .hj-mappe-printstamp {
    margin: 6pt 0 12pt 0;
    font-size: 10pt;
    color: #000;
  }
  .hj-mappe-print-mode .hj-mappe-list {
    list-style: decimal;
    padding-left: 20pt;
    margin: 0;
    color: #000;
  }
  .hj-mappe-print-mode .hj-mappe-item {
    page-break-inside: avoid;
    break-inside: avoid;
    margin: 0 0 10pt 0;
    padding: 6pt 0;
    border-bottom: 1px solid #ccc;
  }
  .hj-mappe-print-mode .hj-mappe-item__head {
    display: flex;
    gap: 10pt;
    align-items: flex-start;
  }
  .hj-mappe-print-mode .hj-mappe-item__thumb {
    width: 48pt !important;
    height: 48pt !important;
    object-fit: cover;
    border: 1px solid #000;
  }
  .hj-mappe-print-mode .hj-mappe-item__inv {
    display: block;
    font-family: monospace;
    font-size: 9pt;
    color: #000;
  }
  .hj-mappe-print-mode .hj-mappe-item__title {
    display: block;
    color: #000 !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 11pt;
    margin: 2pt 0 0 0;
  }
  .hj-mappe-print-mode .hj-mappe-item__meta {
    display: block;
    font-size: 9pt;
    color: #333;
    margin: 2pt 0 0 0;
  }
  .hj-mappe-print-mode .hj-mappe-item__note {
    display: block !important;
    width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    resize: none !important;
    border: 0 !important;
    background: transparent !important;
    color: #000 !important;
    font-family: inherit !important;
    font-size: 9pt !important;
    padding: 4pt 0 0 0 !important;
    margin: 4pt 0 0 0 !important;
    white-space: pre-wrap;
  }
  .hj-mappe-print-mode .hj-mappe-item__note:empty {
    display: none !important;
  }
  .hj-mappe-print-mode .hj-mappe-drawer__foot {
    display: none !important;
  }
}
