/* =============================================================
   Sources & Bibliographie
   ============================================================= */

.sources-bibliography {
    margin-top: 3rem;
}

.sources-bibliography__title {
    font-size: 1.1em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #222;
}

/* Group */
.sources-group {
    margin-bottom: 2rem;
}

.sources-group__title {
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #555;
    margin: 0 0 0.75rem;
}

/* List */
.sources-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Generic item */
.source-item {
    font-size: 0.9em;
    line-height: 1.5;
    padding: 10px 14px;
    background: #f7f7f7;
    border-left: 3px solid #ccc;
    border-radius: 0 4px 4px 0;
}

/* Archive item */
.source-archive__header {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    align-items: baseline;
    margin-bottom: 4px;
}

.source-archive__type {
    font-weight: 600;
    color: #333;
}

.source-archive__identification {
    font-style: italic;
    color: #555;
}

.source-archive__identification::before {
    content: '—';
    margin-right: 6px;
    color: #aaa;
    font-style: normal;
}

.source-archive__cotes {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.source-archive__cote-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    border-radius: 3px;
    transition: background-color 0.3s ease;
}

.source-archive__cote-item.has-back-link {
    cursor: pointer;
}

.source-archive__cote-item:target {
    outline: 2px solid transparent;
    outline-offset: 4px;
    animation: cote-highlight 3s ease forwards;
}

@keyframes cote-highlight {
    0%, 50% {
        background-color: #fff8e1;
        outline-color: #f0b429;
    }
    100% {
        background-color: transparent;
        outline-color: transparent;
    }
}

.source-archive__cote {
    font-family: monospace;
    font-size: 0.85em;
    background: #e8e8e8;
    padding: 2px 8px;
    border-radius: 3px;
    color: #333;
    white-space: nowrap;
}

.source-archive__cote-name {
    font-size: 0.9em;
    color: #333;
}

.source-archive__cote-description {
    font-size: 0.9em;
    color: #666;
    line-height: 1.4;
    font-style: italic;
}

@media (max-width: 600px) {
    .source-archive__cote-item {
        flex-direction: column;
        gap: 4px;
    }
}

/* Printed source */
.source-item--printed {
    border-left-color: #999;
    color: #333;
}

.source-printed__type {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #666;
    margin-bottom: 4px;
}

.source-printed__meta {
    margin-bottom: 4px;
    line-height: 1.4;
}

.source-printed__edition {
    font-style: italic;
    color: #666;
    font-size: 0.9em;
    margin-bottom: 6px;
}

.source-printed__ref {
    font-size: 0.85em;
    color: #666;
    margin-bottom: 6px;
}

.source-printed__content {
    margin-top: 8px;
    color: #333;
}

/* Oral source */
.source-item--oral {
    border-left-color: #8a7a5f;
    color: #333;
}

.source-oral__type {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #8a7a5f;
    margin-bottom: 4px;
}

.source-oral__meta {
    margin-bottom: 4px;
    line-height: 1.4;
}

.source-oral__edition {
    font-style: italic;
    color: #666;
    font-size: 0.9em;
    margin-bottom: 6px;
}

.source-oral__content {
    margin-top: 8px;
    color: #333;
}

/* Media source (iconographique & audiovisuelle) */
.source-item--media {
    border-left-color: #5f7a8a;
    color: #333;
}

.source-media__type {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #5f7a8a;
    margin-bottom: 4px;
}

.source-media__meta {
    margin-bottom: 4px;
    line-height: 1.4;
}

.source-media__content {
    margin-top: 8px;
    color: #333;
}

/* Digital source (numérique & bases de données) */
.source-item--digital {
    border-left-color: #5f8a6a;
    color: #333;
}

.source-digital__type {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #5f8a6a;
    margin-bottom: 4px;
}

.source-digital__meta {
    margin-bottom: 4px;
    line-height: 1.4;
}

.source-digital__content {
    margin-top: 8px;
    color: #333;
}