/* Base */
body {
    background: #faf7f2;
    color: #2c2825;
    font-family: "Georgia", "Times New Roman", serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
}
header,
main,
footer {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
}
nav a {
    margin-right: 1.5rem;
    text-decoration: none;
    color: #c46a3b;
    font-family: "Helvetica", "Arial", sans-serif;
}
nav a:hover {
    text-decoration: underline;
}

/* Typography */
h1 {
    font-family: "Helvetica", sans-serif;
    font-weight: 300;
}
.song h1,
.news-item h1 {
    font-size: 2rem;
    margin-bottom: 0;
}
.date {
    color: #8a7a6a;
    font-size: 0.9rem;
    margin-top: 0;
}
.tag {
    background: #e8e2d8;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.8rem;
    margin-right: 0.5rem;
    font-family: sans-serif;
}
.lyrics {
    font-size: 1.2rem;
    max-width: 45em;
}

/* Sidenotes */
.sidenote-marker {
    cursor: pointer;
    font-size: 0.8rem;
    vertical-align: super;
    color: #c46a3b;
    margin-left: 0.1rem;
}
.sidenote-content {
    display: inline-block;
    background: #f0ece4;
    padding: 0.2rem 0.5rem;
    margin-left: 0.5rem;
    font-size: 0.9rem;
    border-radius: 8px;
}
@media (min-width: 800px) {
    .lyrics {
        position: relative;
    }
    .sidenote-marker {
        cursor: default;
    }
    .sidenote-content {
        position: absolute;
        left: 100%;
        width: 250px;
        margin-left: 2rem;
        background: #f0ece4;
        padding: 0.5rem;
        font-size: 0.85rem;
        line-height: 1.4;
        border-left: 3px solid #c46a3b;
        margin-top: -1.5rem;
    }
}
/* Mobile: make sidenotes inline as blocks */
@media (max-width: 800px) {
    .sidenote-content {
        display: block;
        margin: 0.5rem 0;
    }
}
/* Song links */
.song-links {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #ddd;
}
.song-links a {
    margin-right: 1.5rem;
    color: #c46a3b;
    text-decoration: none;
}

/* Homepage grid */
.home-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}
.news-preview,
.featured-song,
.random-section {
    background: white;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.featured-song h3,
.news-preview h3 {
    margin-top: 0;
}
.random-section button {
    background: #c46a3b;
    color: white;
    border: none;
    padding: 0.6rem 1.2rem;
    font-size: 1rem;
    border-radius: 30px;
    cursor: pointer;
    font-family: sans-serif;
}
.random-section button:hover {
    background: #a5512a;
}
.lyric-quote {
    margin-top: 1.5rem;
    font-style: italic;
    border-left: 3px solid #c46a3b;
    padding-left: 1rem;
}
.video-link {
    display: inline-block;
    margin-top: 0.5rem;
}
.songs-list .song-entry {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e8e2d8;
}
.songs-list h2 {
    margin-bottom: 0;
}

.songs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}
.song-card {
    background: white;
    padding: 1.2rem;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: 0.1s ease;
}
.song-card:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.song-card h2 {
    margin: 0 0 0.25rem 0;
    font-size: 1.25rem;
}
.song-card .date {
    font-size: 0.8rem;
    color: #8a7a6a;
    margin: 0 0 0.5rem 0;
}
.read-more {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.9rem;
    color: #c46a3b;
    text-decoration: none;
}
.read-more:hover {
    text-decoration: underline;
}

.bio-section {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    background: #f0ece4;
    padding: 1.5rem;
    border-radius: 16px;
    margin-bottom: 2rem;
    align-items: center;
}
.bio-text {
    flex: 2;
}
.bio-text h2 {
    margin-top: 0;
}
.bio-photo {
    flex: 0 0 120px;
    border-radius: 50%;
    object-fit: cover;
    max-height: 300px;
}
@media (max-width: 600px) {
    .bio-section {
        flex-direction: column;
        text-align: center;
    }
}

.news-list .news-summary {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e8e2d8;
}
.news-summary h2 {
    margin-bottom: 0;
}
.news-image-small {
    max-width: 100%;
    height: auto;
    margin: 0.5rem 0;
    border-radius: 8px;
}
