/**
 * ============================================================================
 * ROOTS ARCHIVES — BASE (base.css)
 * ============================================================================
 *
 * Reset, body defaults, links, general typography, utility classes.
 * Loaded after variables.css. Uses var(--token) for all values.
 * ============================================================================
 */

/* ── Body ──────────────────────────────────────────── */

body {
    font-family: var(--font-family);
    color: var(--color-body-text);
    background-color: var(--color-body-bg);
    line-height: var(--line-height-body);
}

/* ── Links ─────────────────────────────────────────── */

a {
    color: var(--color-link);
    text-decoration: none;
    transition: color 0.2s;
}

a:hover {
    color: var(--color-link-hover);
    text-decoration: underline;
}

/* ── Button-links ──────────────────────────────────── */

.btn-link {
    color: var(--color-text);
    text-decoration: none;
    padding: 0;
}

.btn-link:hover {
    color: var(--color-primary);
    text-decoration: none;
}

/* ── Typography utilities ──────────────────────────── */

.text-primary {
    color: var(--color-primary);
}

.text-muted {
    color: var(--color-muted);
}

/* ── Background utilities ──────────────────────────── */

.bg-light {
    background-color: var(--color-accent);
}

.bg-primary {
    background-color: var(--color-primary);
}

/* ── Artist link ───────────────────────────────────── */

.artist-link {
    color: var(--color-link);
    transition: all 0.3s ease;
}

.artist-link:hover {
    color: var(--color-dark);
    text-decoration: underline;
}

/* ── Animation ─────────────────────────────────────── */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Section/page titles ───────────────────────────── */

@media (min-width: 992px) {
    h1.page-title,
    h2,
    h3,
    .section-title {
        text-align: left;
        justify-content: flex-start;
    }
}

/* ── LP badge (vinyl disc icon) ────────────────────── */

.lp-badge-contrast {
    display: inline-block;
    background: #222;
    border-radius: 50%;
    padding: 2px 2px 1px 2px;
    line-height: 1;
}

.lp-badge-contrast .bi-disc {
    color: #fff;
}

/* ── Album label truncation ────────────────────────── */

.album-label-truncate {
    display: block;
    min-width: 0;
    vertical-align: middle;
    font-size: 0.75rem;
    color: var(--color-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    position: relative;
}

/* ── Main content ──────────────────────────────────── */

.main-content {
    min-height: 60vh;
}

/* ── Container ─────────────────────────────────────── */

.container {
    padding-left: 15px;
    padding-right: 15px;
}

/* ── Sort icon ─────────────────────────────────────── */

.sort-icon {
    font-size: 0.9em;
    margin-left: 0.2em;
    color: var(--color-sort-icon);
}

/* ── Print styles ──────────────────────────────────── */

@media print {
    .sticky-top {
        position: static;
    }

    .accordion-collapse {
        display: block;
        height: auto;
    }

    .accordion-button::after {
        display: none;
    }

    .expand-collapse-btns {
        display: none;
    }
}

/* ── Responsive base ───────────────────────────────── */

@media (max-width: 768px) {
    .container {
        padding-left: 10px;
        padding-right: 10px;
    }
}
