body {
    background: var(--color-paper);
    color: var(--color-text);
    position: relative; /* Ensures body is the containing block for full-bleed */
    overflow-x: hidden; /* Prevents horizontal scroll from full-bleed elements */
}

a {
    color: var(--text);
    text-decoration: underline;
    text-decoration-color: var(--color-border);
    text-underline-offset: 4px;
    transition: var(--transition);
}

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

.container {
    width: min(calc(100% - 80px), var(--container));
    margin: auto;
}

main > section {
    padding: 8rem 0;
}

main > section:last-child {
    border-bottom: none;
}

.site-header {
    padding-top: 0.75rem;
}

.site-header__top {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 0.75rem;
    position: relative;
}

.site-header__right {
    position: absolute;
    right: 0;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.lang-selector {
    font: 500 0.9rem Inter, sans-serif;
    color: var(--color-text-light);
    letter-spacing: 0.05em;
}

.search-button {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-text);
    padding: .5rem;
}

.nav-wrapper {
    background-image: 
        repeating-linear-gradient(to right, var(--color-border) 0, var(--color-border) 1px, transparent 1px, transparent 5px),
        repeating-linear-gradient(to right, var(--color-border) 0, var(--color-border) 1px, transparent 1px, transparent 5px);
    background-size: 100% 1px;
    background-position: top, bottom;
    background-repeat: no-repeat;
}

.nav {
    width: min(calc(100% - 80px), var(--container));
    margin: auto;
    display: flex;
    justify-content: space-between;
    padding: 1.5rem 0;
}
.nav a {
    text-decoration: none;
    font: 700 1rem Inter, sans-serif;
    color: var(--color-text);
    transition: none;
}

.nav a:hover {
    text-decoration: underline;
}

.nav-menu {
    display: flex;
    width: 100%;
    justify-content: space-between;
    gap: 1rem;
    list-style: none;
}

.header-search {
    display: none;
    max-width: 480px;
    gap: .5rem;
    margin: 0 auto 1rem;
}
.header-search.is-open { display: flex; }
.header-search input { flex: 1; padding: .65rem .75rem; border: 1px solid var(--color-border); background: var(--color-surface); font: inherit; }
.header-search button { padding: .65rem 1rem; border: 0; background: var(--color-text); color: var(--color-paper); font: 700 .8rem Inter, sans-serif; cursor: pointer; }

.footer {
    background-color: var(--color-text);
    padding: 4rem 0;
    margin-top: 8rem;
    font: .9rem Inter, sans-serif;
    color: var(--color-paper);
}

.footer .container {
    display: flex;
    justify-content: space-between;
}

.archive-page { padding-top: 5rem; }
.archive-header { text-align: center; max-width: 60ch; margin: 0 auto 4rem; }
.archive-header h1 { font-size: clamp(2.5rem, 5vw, 4rem); margin-bottom: 1rem; }

@media (max-width: 768px) {
    .nav { width: calc(100% - 40px); overflow-x: auto; }
    .nav-menu { width: max-content; }
    .site-header__top { justify-content: flex-start; }
    .site-header__right { right: 0; }
    .logo img { height: 80px; }
    .footer .container { flex-direction: column; gap: 1rem; }
}
