/*
 * Site layout — flexbox container
 */
.site-layout {
    display: flex;
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-md);
    flex: 1;
}

.site-sidebar-column {
    width: 220px;
    flex-shrink: 0;
    padding-top: var(--space-md);
}

.site-main {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

/*
 * Sidebar nav
 */
.site-sidebar {
    position: sticky;
    top: var(--space-md);
}

.sidebar-section {
    display: flex;
    flex-direction: column;
}

.sidebar-link {
    display: block;
    padding: var(--space-sm) var(--space-md);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--font-size-lg);
    font-weight: 600;
    border-radius: var(--radius-md);
    transition: background-color var(--transition-fast) ease, color var(--transition-fast) ease;
}

.sidebar-link:hover {
    background-color: var(--color-bg-hover);
    color: var(--color-primary-dark);
    text-decoration: none;
}

.sidebar-link.sidebar-active {
    color: var(--color-primary);
    background-color: var(--color-bg-warm);
    font-style: italic;
}

.sidebar-divider {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: var(--space-md) var(--space-md) var(--space-xs);
    border-top: 1px solid var(--color-primary-light);
    margin-top: var(--space-sm);
}

/* Mobile: sidebar collapses to horizontal pill nav */
@media only screen and (max-width: 599px) {
    .site-layout {
        flex-direction: column;
        gap: 0;
    }

    .site-sidebar-column {
        width: 100%;
        padding-top: 0;
    }

    .site-sidebar {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: var(--space-xs);
        padding: var(--space-sm) 0;
    }

    .sidebar-section {
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--space-xs);
    }

    .sidebar-link {
        padding: var(--space-xs) var(--space-sm);
        font-size: var(--font-size-sm);
        border-radius: 999px;
        background-color: var(--color-bg-warm);
    }

    .sidebar-link.sidebar-active {
        background-color: var(--color-primary);
        color: #fff;
    }

    .sidebar-divider {
        width: 100%;
        border-top: none;
        margin-top: var(--space-xs);
        padding: var(--space-xs) var(--space-sm) 0;
    }
}

/* Tablet: show sidebar */
@media only screen and (min-width: 600px) and (max-width: 767px) {
    .site-sidebar-column {
        width: 180px;
    }
}
