@font-face {
    font-family: 'schneidlermedium';
    src: url('schneidlerbt-medium.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

/* --- CSS Variables --- */
:root {
    --bg: #fafafa;
    --fg: #1a1a1a;
    --muted: #666666;
    --border: #d4d4d4;
    --card: #ffffff;
    --accent: #0f5e5e;
    --accent-hover: #0d4d4d;
    --accent-light: #e6f2f2;
    --accent-border: #b8dada;
    --spacing-xs: 8px;
    --spacing-sm: 12px;
    --spacing-md: 20px;
    --spacing-lg: 32px;
    --radius: 6px;
}

/* --- Base --- */
* {
    box-sizing: border-box;
}

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'schneidlermedium', Georgia, serif;
    font-size: 16px;
    background: var(--bg);
    color: var(--fg);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    padding-top: 72px;
}

a{
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid var(--border);
    transition: border-color 0.15s ease;
}

a:hover {
    border-bottom-color: var(--accent-hover);
    color: var(--accent-hover);
}

/* --- Navigation --- */
.nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--card);
    border-bottom: 1px solid var(--border);
    padding: var(--spacing-md) 0;
}


.nav-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
    display: flex;
    gap: var(--spacing-md);
    align-items: baseline;
}

.nav h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: -0.01em;
}

.nav h1 a {
    color: var(--fg);
    text-decoration: none;
}

.nav-links {
    display: flex;
    gap: var(--spacing-md);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-scroll {
    margin-left: auto;
    display: flex;
    gap: var(--spacing-sm);
}

.nav-scroll a {
    color: var(--muted);
    text-decoration: none;
    font-size: 1rem;
    line-height: 1;
    transition: color 0.15s ease;
}

.nav-scroll a:hover {
    color: var(--fg);
}

.nav-links a {
    color: var(--muted);
    text-decoration: none;
    font-size: 0.9375rem;
    transition: color 0.15s ease;
}

.nav-links a:hover {
    color: var(--fg);
}

/* --- Main Content --- */
header, main {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0  var(--spacing-md);
}

h1 {
    font-weight: 500;
}
/* --- Header --- */
.book-header {
    border-bottom: 1px solid var(--border);
    padding-bottom: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.meta-line {
    color: var(--muted);
    font-size: 0.9375rem;
}

.actions {
    display: flex;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
}

.btn {
    border: 1px solid var(--border);
    background: var(--card);
    border-radius: var(--radius);
    padding: 6px 16px;
    cursor: pointer;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--fg);
    transition: all 0.15s ease;
    white-space: nowrap;
}

.btn:hover {
    background: var(--bg);
}

.btn.primary {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}

.btn.primary:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

/* --- Grid Layout --- */
.book-content {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--spacing-lg);
    align-items: start;
}

@media (max-width: 860px) {
    .book-content {
    grid-template-columns: 1fr;
    }
}

/* --- Panel --- */
.panel {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.panel h3 {
    margin: 0 0 var(--spacing-sm) 0;
    font-size: 0.9375rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
}

/* --- Details List --- */
dl.details {
    display: grid;
    grid-template-columns: 140px 1fr;
    column-gap: var(--spacing-md);
    row-gap: var(--spacing-xs);
    margin: 0;
}

dl.details dt {
    font-weight: 500;
    color: var(--muted);
    font-size: 0.9375rem;
}

dl.details dd {
    margin: 0;
    font-size: 0.9375rem;
}

@media (max-width: 520px) {
    dl.details {
    grid-template-columns: 1fr;
    }
    dl.details dt {
    margin-top: var(--spacing-sm);
    font-weight: 600;
    }
}

/* --- People & Orgs --- */
.people, .orgs {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: var(--spacing-xs);
}

.people li, .orgs li {
    padding: var(--spacing-sm);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
    font-size: 0.9375rem;
}

.people li strong, .orgs li strong {
    color: var(--fg);
}

/* --- Tags --- */
.tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    list-style: none;
    padding: 0;
    margin: 0;
}

.tags li {
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--accent-light);
    border: 1px solid var(--accent-border);
    font-size: 0.875rem;
    color: var(--accent);
}

/* --- Cover Images --- */
.book-cover {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: var(--spacing-md);
}

.book-cover figure {
    margin: 0 0 var(--spacing-md) 0;
}

.book-cover figure:last-child {
    margin-bottom: 0;
}

.book-cover img {
    width: 100%;
    height: auto;
    border-radius: var(--radius);
    display: block;
    border: 1px solid var(--border);
}

.person-content {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr;
  }

.cover-caption {
    margin: var(--spacing-xs) 0 0;
    color: var(--muted);
    font-size: 0.875rem;
    text-align: center;
}

/* --- Condition Info --- */
.condition-info p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
}

/* --- Volumes --- */
.volume-item {
    margin-bottom: var(--spacing-md);
    padding: var(--spacing-md);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
}

.volume-item:last-child {
    margin-bottom: 0;
}

.volume-details {
    display: grid;
    grid-template-columns: 120px 1fr;
    column-gap: var(--spacing-md);
    row-gap: 6px;
    margin: 0;
    font-size: 0.9375rem;
}

.volume-details dt {
    color: var(--muted);
    font-weight: 500;
}

.volume-details dd {
    margin: 0;
}

/* --- External Links --- */
.panel ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.panel a {
    color: var(--fg);
    text-decoration: none;
    border-bottom: 1px solid var(--border);
    transition: border-color 0.15s ease;
}

.panel a:hover {
    border-bottom-color: var(--accent);
    color: var(--accent);
}

/* --- Footer --- */
.footer-nav {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border);
}

.footer-nav a {
    color: var(--muted);
    text-decoration: none;
    font-size: 0.9375rem;
    transition: color 0.15s ease;
}

.footer-nav a:hover {
    color: var(--accent);
}

.context {
    font-style: italic;
    background: var(--accent-light);
    border-left: 3px solid var(--accent);
    padding: .8em;
}

.context strong {
    display: block;
}

/* Jahr-Überschriften: Scroll-Ziel unter fixer Nav */
[id] {
    scroll-margin-top: 72px;
}

/* --- Print --- */
@media print {
    .actions, .nav, .arrow { display: none; }
    .panel, p { break-inside: avoid; }
    body { background: white; }

    a {
        border-bottom: none;
        color: var(--fg);
    }
}