/* ══════════════════════════════════════════════════════════════════
   AuF Downloads · Frontend · v1.0.1
   Namensraum .auf-lib (bewusst nicht .auf-dl – die Altseite nutzt das).
   Jeder Selektor beginnt mit .auf-lib.auf-lib – das überstimmt die
   globalen Elementor-Kit-Regeln (button, a, h2, input …) ohne !important.
   ══════════════════════════════════════════════════════════════════ */

.auf-lib {
  --auf-ink: #0B0E0D;
  --auf-ink-text: #161814;
  --auf-ink-soft: #2E312A;
  --auf-slate: #5C6056;
  --auf-mist: #8E9186;
  --auf-ocean: #0E7C77;
  --auf-ocean-deep: #0A4D49;
  --auf-gold: #DE9743;
  --auf-gold-text: #9A5E16;
  --auf-gold-light: #F0BD6C;
  --auf-paper: #F7F2E9;
  --auf-shelf-a: #F1EBE0;
  --auf-shelf-b: #E6DDCC;
  --auf-line: rgba(20, 22, 18, 0.12);
  --auf-line-soft: rgba(20, 22, 18, 0.07);
  --auf-font: 'Hanken Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --auf-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --auf-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --auf-ease: cubic-bezier(0.16, 1, 0.3, 1);

  font-family: var(--auf-font);
  font-size: 16px;
  color: var(--auf-ink-text);
  line-height: 1.6;
  text-align: left;
}
.auf-lib.auf-lib *, .auf-lib.auf-lib *::before, .auf-lib.auf-lib *::after { box-sizing: border-box; }
.auf-lib.auf-lib [hidden] { display: none !important; }

/* ── Filterleiste ─────────────────────────────────────────────── */
.auf-lib.auf-lib .auf-lib-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "tabs search" "selects status";
  gap: 16px 24px;
  align-items: center;
  padding: 18px 22px;
  margin: 0 0 44px;
  background: #fff;
  border: 1px solid var(--auf-line-soft);
  border-radius: 18px;
  box-shadow: 0 12px 40px -28px rgba(11, 14, 13, 0.35);
}

/* Reiter (Art) */
.auf-lib.auf-lib .auf-lib-tabs {
  grid-area: tabs;
  display: inline-flex;
  gap: 2px;
  padding: 4px;
  margin: 0;
  background: var(--auf-paper);
  border-radius: 100px;
  justify-self: start;
  max-width: 100%;
}
.auf-lib.auf-lib .auf-lib-tab,
.auf-lib.auf-lib .auf-lib-tab:hover,
.auf-lib.auf-lib .auf-lib-tab:focus,
.auf-lib.auf-lib .auf-lib-tab:active {
  display: inline-block;
  font-family: var(--auf-font);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  text-shadow: none;
  color: var(--auf-ink-soft);
  background: transparent;
  background-image: none;
  border: 0;
  border-radius: 100px;
  box-shadow: none;
  padding: 9px 16px;
  margin: 0;
  min-height: 0;
  width: auto;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none; appearance: none;
}
.auf-lib.auf-lib .auf-lib-tab:hover { color: var(--auf-ocean-deep); }
.auf-lib.auf-lib .auf-lib-tab:focus-visible { outline: 2px solid var(--auf-ocean); outline-offset: 2px; }
.auf-lib.auf-lib .auf-lib-tab.is-on,
.auf-lib.auf-lib .auf-lib-tab.is-on:hover,
.auf-lib.auf-lib .auf-lib-tab.is-on:focus {
  background: #fff;
  color: var(--auf-ocean-deep);
  box-shadow: 0 1px 3px rgba(11, 14, 13, 0.12), 0 4px 12px -6px rgba(11, 14, 13, 0.18);
}
.auf-lib.auf-lib .auf-lib-tab .auf-lib-n {
  font-family: var(--auf-mono);
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--auf-mist);
  margin-left: 5px;
}
.auf-lib.auf-lib .auf-lib-tab.is-on .auf-lib-n { color: var(--auf-ocean); }

/* Suche */
.auf-lib.auf-lib .auf-lib-search {
  grid-area: search;
  position: relative;
  display: block;
  min-width: 300px;
  margin: 0;
}
.auf-lib.auf-lib .auf-lib-search svg {
  position: absolute; left: 15px; top: 50%;
  width: 17px; height: 17px;
  transform: translateY(-50%);
  fill: none; stroke: var(--auf-mist); stroke-width: 2; stroke-linecap: round;
  pointer-events: none;
}
.auf-lib.auf-lib .auf-lib-search input[type="search"],
.auf-lib.auf-lib .auf-lib-search input[type="search"]:focus {
  display: block;
  width: 100%;
  height: 44px;
  min-height: 0;
  font-family: var(--auf-font);
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--auf-ink-text);
  padding: 0 16px 0 42px;
  margin: 0;
  border: 1px solid var(--auf-line);
  border-radius: 100px;
  background: #fff;
  background-image: none;
  box-shadow: none;
  outline: none;
  -webkit-appearance: none; appearance: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.auf-lib.auf-lib .auf-lib-search input[type="search"]::placeholder { color: var(--auf-mist); opacity: 1; }
.auf-lib.auf-lib .auf-lib-search input[type="search"]:focus { border-color: var(--auf-ocean); box-shadow: 0 0 0 3px rgba(14, 124, 119, 0.14); }
.auf-lib.auf-lib .auf-lib-search input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/* Auswahllisten */
.auf-lib.auf-lib .auf-lib-selects {
  grid-area: selects;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}
.auf-lib.auf-lib .auf-lib-select {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  padding: 0 40px 0 16px;
  margin: 0;
  border: 1px solid var(--auf-line);
  border-radius: 100px;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.auf-lib.auf-lib .auf-lib-select:focus-within { border-color: var(--auf-ocean); box-shadow: 0 0 0 3px rgba(14, 124, 119, 0.14); }
.auf-lib.auf-lib .auf-lib-select label {
  display: inline-block;
  font-family: var(--auf-mono);
  font-size: 0.64rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--auf-ocean);
  margin: 0;
  padding: 0;
  white-space: nowrap;
  cursor: pointer;
}
.auf-lib.auf-lib .auf-lib-select select,
.auf-lib.auf-lib .auf-lib-select select:focus {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  display: block;
  width: auto;
  max-width: 260px;
  height: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  background-image: none;
  box-shadow: none;
  outline: none;
  font-family: var(--auf-font);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
  color: var(--auf-ink-text);
  padding: 8px 0;
  margin: 0;
  cursor: pointer;
}
.auf-lib.auf-lib .auf-lib-select select option { color: var(--auf-ink-text); background: #fff; }
.auf-lib.auf-lib .auf-lib-select select option:disabled { color: #b5b7ae; }
.auf-lib.auf-lib .auf-lib-chev {
  position: absolute; right: 17px; top: 50%;
  width: 8px; height: 8px;
  border-right: 2px solid var(--auf-slate);
  border-bottom: 2px solid var(--auf-slate);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

/* Status + Zurücksetzen */
.auf-lib.auf-lib .auf-lib-status {
  grid-area: status;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  font-family: var(--auf-mono);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  color: var(--auf-slate);
  white-space: nowrap;
}
.auf-lib.auf-lib .auf-lib-reset,
.auf-lib.auf-lib .auf-lib-reset:hover,
.auf-lib.auf-lib .auf-lib-reset:focus {
  display: inline-block;
  font-family: var(--auf-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  line-height: 1.4;
  background: none;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 4px 0;
  margin: 0;
  min-height: 0;
  color: var(--auf-gold-text);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  -webkit-appearance: none; appearance: none;
}
.auf-lib.auf-lib .auf-lib-reset:hover { color: var(--auf-ocean); }

/* ── Gruppen ─────────────────────────────────────────────────── */
.auf-lib.auf-lib .auf-lib-group { margin: 0 0 56px; padding: 0; }
.auf-lib.auf-lib .auf-lib-group:last-of-type { margin-bottom: 0; }
.auf-lib.auf-lib .auf-lib-h {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-family: var(--auf-display);
  font-size: 1.55rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-transform: none;
  color: var(--auf-ink-text);
  margin: 0 0 22px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--auf-line);
}
.auf-lib.auf-lib .auf-lib-h .auf-lib-n {
  font-family: var(--auf-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--auf-mist);
}

/* ── Karten ──────────────────────────────────────────────────── */
.auf-lib.auf-lib .auf-lib-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
}
.auf-lib.auf-lib .auf-lib-card {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  background: #fff;
  border: 1px solid var(--auf-line-soft);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.35s var(--auf-ease), border-color 0.35s, transform 0.35s var(--auf-ease);
}
.auf-lib.auf-lib .auf-lib-card:hover {
  border-color: var(--auf-line);
  box-shadow: 0 18px 40px -22px rgba(11, 14, 13, 0.32);
  transform: translateY(-2px);
}
.auf-lib.auf-lib .auf-lib-card--featured {
  border-color: rgba(222, 151, 67, 0.45);
  box-shadow: inset 0 3px 0 var(--auf-gold);
}

/* Cover-Regal */
.auf-lib.auf-lib .auf-lib-cover,
.auf-lib.auf-lib .auf-lib-cover:hover,
.auf-lib.auf-lib .auf-lib-cover:visited {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 212px;
  padding: 26px 20px 0;
  margin: 0;
  background: linear-gradient(180deg, var(--auf-shelf-a) 0%, var(--auf-shelf-b) 100%);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
}
.auf-lib.auf-lib .auf-lib-cover::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: rgba(11, 14, 13, 0.08);
}
.auf-lib.auf-lib .auf-lib-cover img {
  display: block;
  max-height: 100%;
  max-width: 72%;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  object-fit: contain;
  border: 0;
  border-radius: 3px 3px 0 0;
  box-shadow: 0 12px 28px -10px rgba(11, 14, 13, 0.55), 0 2px 5px rgba(11, 14, 13, 0.14);
  transition: transform 0.4s var(--auf-ease);
}
.auf-lib.auf-lib .auf-lib-card:hover .auf-lib-cover img { transform: translateY(-4px); }
.auf-lib.auf-lib .auf-lib-nocover {
  display: flex; align-items: center; justify-content: center;
  width: 128px; height: 100%;
  background: rgba(255, 255, 255, 0.55);
  border: 1px dashed rgba(11, 14, 13, 0.18);
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
}
.auf-lib.auf-lib .auf-lib-nocover svg { width: 34px; height: 34px; fill: none; stroke: var(--auf-mist); stroke-width: 1.5; stroke-linejoin: round; }

.auf-lib.auf-lib .auf-lib-badge {
  position: absolute; top: 12px; left: 12px;
  display: inline-block;
  font-family: var(--auf-mono);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-transform: none;
  padding: 5px 11px;
  margin: 0;
  border-radius: 100px;
  background: var(--auf-ink);
  color: #fff;
  box-shadow: 0 4px 12px -6px rgba(11, 14, 13, 0.5);
}
.auf-lib.auf-lib .auf-lib-badge--kostenlos { background: var(--auf-ocean); text-transform: uppercase; }
.auf-lib.auf-lib .auf-lib-badge--buch { background: var(--auf-gold); color: #38240A; }
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-badge { background: var(--auf-gold); color: #38240A; }

/* Kartentext */
.auf-lib.auf-lib .auf-lib-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 20px;
  margin: 0;
}
.auf-lib.auf-lib .auf-lib-kicker {
  display: block;
  font-family: var(--auf-mono);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--auf-gold-text);
  margin: 0 0 8px;
}
.auf-lib.auf-lib .auf-lib-title {
  font-family: var(--auf-display);
  font-size: 1.08rem;
  font-weight: 600;
  font-style: normal;
  line-height: 1.28;
  letter-spacing: -0.015em;
  text-transform: none;
  color: var(--auf-ink-text);
  margin: 0 0 8px;
  padding: 0;
}
.auf-lib.auf-lib .auf-lib-desc {
  font-family: var(--auf-font);
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--auf-slate);
  margin: 0 0 12px;
  padding: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.auf-lib.auf-lib .auf-lib-desc a { color: var(--auf-ocean); }
.auf-lib.auf-lib .auf-lib-tags {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.auf-lib.auf-lib .auf-lib-tags li {
  display: inline-block;
  list-style: none;
  font-family: var(--auf-font);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--auf-ocean-deep);
  background: rgba(14, 124, 119, 0.08);
  padding: 3px 9px;
  margin: 0;
  border-radius: 100px;
}
.auf-lib.auf-lib .auf-lib-tags li::before, .auf-lib.auf-lib .auf-lib-tags li::marker { content: none; display: none; }
.auf-lib.auf-lib .auf-lib-meta {
  display: block;
  font-family: var(--auf-mono);
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--auf-mist);
  margin: auto 0 14px;
  padding: 4px 0 0;
}
.auf-lib.auf-lib .auf-lib-actions { display: flex; flex-direction: column; gap: 8px; margin: auto 0 0; padding: 0; }

/* Buttons (a-Elemente – Kit-Linkfarben werden hier bewusst überschrieben) */
.auf-lib.auf-lib .auf-lib-btn,
.auf-lib.auf-lib .auf-lib-btn:link,
.auf-lib.auf-lib .auf-lib-btn:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--auf-font);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  text-align: center;
  padding: 12px 16px;
  margin: 0;
  border: 0;
  border-radius: 100px;
  background: var(--auf-ocean);
  background-image: none;
  color: #fff;
  box-shadow: none;
  transition: background 0.2s, color 0.2s;
}
.auf-lib.auf-lib .auf-lib-btn:hover,
.auf-lib.auf-lib .auf-lib-btn:focus,
.auf-lib.auf-lib .auf-lib-btn:active { background: var(--auf-ocean-deep); color: #fff; text-decoration: none; }
.auf-lib.auf-lib .auf-lib-btn--buch,
.auf-lib.auf-lib .auf-lib-btn--buch:link,
.auf-lib.auf-lib .auf-lib-btn--buch:visited { background: var(--auf-ink); color: #fff; }
.auf-lib.auf-lib .auf-lib-btn--buch:hover,
.auf-lib.auf-lib .auf-lib-btn--buch:focus,
.auf-lib.auf-lib .auf-lib-btn--buch:active { background: var(--auf-ink-soft); color: #fff; }
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-btn,
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-btn:link,
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-btn:visited {
  background: linear-gradient(135deg, var(--auf-gold-light), var(--auf-gold));
  color: #38240A;
}
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-btn:hover,
.auf-lib.auf-lib .auf-lib-card--featured .auf-lib-btn:focus { filter: brightness(1.04); color: #38240A; background: linear-gradient(135deg, var(--auf-gold-light), var(--auf-gold)); }
.auf-lib.auf-lib .auf-lib-link2,
.auf-lib.auf-lib .auf-lib-link2:link,
.auf-lib.auf-lib .auf-lib-link2:visited {
  display: block;
  text-align: center;
  font-family: var(--auf-font);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--auf-slate);
  text-decoration: none;
  padding: 2px 0;
  margin: 0;
}
.auf-lib.auf-lib .auf-lib-link2:hover, .auf-lib.auf-lib .auf-lib-link2:focus { color: var(--auf-ocean); text-decoration: none; }

/* ── Leerzustand ─────────────────────────────────────────────── */
.auf-lib.auf-lib .auf-lib-empty {
  margin: 0;
  padding: 54px 24px;
  text-align: center;
  font-family: var(--auf-font);
  font-size: 0.98rem;
  color: var(--auf-slate);
  border: 1px dashed var(--auf-line);
  border-radius: 14px;
}

/* ── Tablet ──────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .auf-lib.auf-lib .auf-lib-toolbar {
    grid-template-columns: 1fr;
    grid-template-areas: "search" "tabs" "selects" "status";
    gap: 14px;
  }
  .auf-lib.auf-lib .auf-lib-search { min-width: 0; }
  .auf-lib.auf-lib .auf-lib-status { justify-self: start; }
  .auf-lib.auf-lib .auf-lib-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .auf-lib.auf-lib .auf-lib-tabs::-webkit-scrollbar { display: none; }
}

/* ── Mobil ───────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .auf-lib.auf-lib .auf-lib-toolbar { padding: 14px 14px 16px; border-radius: 16px; margin-bottom: 32px; }
  .auf-lib.auf-lib .auf-lib-selects { display: grid; grid-template-columns: 1fr 1fr; }
  .auf-lib.auf-lib .auf-lib-select { padding-left: 14px; padding-right: 34px; gap: 8px; }
  .auf-lib.auf-lib .auf-lib-select select { max-width: 100%; font-size: 0.86rem; }
  .auf-lib.auf-lib .auf-lib-h { font-size: 1.3rem; }
  .auf-lib.auf-lib .auf-lib-grid { grid-template-columns: 1fr; gap: 14px; }
  .auf-lib.auf-lib .auf-lib-card { flex-direction: row; align-items: stretch; }
  .auf-lib.auf-lib .auf-lib-cover {
    flex: 0 0 116px;
    height: auto;
    min-height: 168px;
    padding: 14px 12px;
    align-items: center;
  }
  .auf-lib.auf-lib .auf-lib-cover::after { display: none; }
  .auf-lib.auf-lib .auf-lib-cover img { max-width: 84%; max-height: 150px; border-radius: 3px; }
  .auf-lib.auf-lib .auf-lib-badge { top: 8px; left: 8px; font-size: 0.58rem; padding: 3px 8px; }
  .auf-lib.auf-lib .auf-lib-body { padding: 14px 14px 16px; }
  .auf-lib.auf-lib .auf-lib-title { font-size: 1rem; }
  .auf-lib.auf-lib .auf-lib-desc { font-size: 0.84rem; -webkit-line-clamp: 2; margin-bottom: 10px; }
  .auf-lib.auf-lib .auf-lib-tags { display: none; }
  .auf-lib.auf-lib .auf-lib-meta { margin-bottom: 10px; }
  .auf-lib.auf-lib .auf-lib-btn { font-size: 0.84rem; padding: 10px 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .auf-lib.auf-lib * { transition-duration: 0.01ms !important; }
}
