@layer parts {

    /* Archive header */
    .archive-header {
        margin-block: var(--archive-header-margin-top, 0) var(--archive-header-margin-bottom, var(--spacing-lg));
    }

    .archive-header__inner {
        display: flex;
        flex-direction: column;
        gap: var(--archive-header-gap, var(--spacing-sm));
        padding-block: var(--archive-header-padding-top, var(--spacing-md)) var(--archive-header-padding-bottom, var(--spacing-md));
    }

    .archive-header__row {
        display: flex;
        align-items: center;
        gap: var(--spacing-md);
    }

    .archive-header__row--multi {
        justify-content: space-between;
    }

    .archive-header__row--align-center {
        justify-content: center;
        text-align: center;
    }

    .archive-header__group {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
    }

    .archive-header__title {
        margin-block-end: 0;
    }

    .archive-header__divider {
        border: none;
        border-top: 1px solid var(--color-border);
        margin: 0;
    }

    .archive-header__count {
        margin: 0;
        font-family: var(--archive-count-font, var(--font-heading));
        font-weight: var(--archive-count-font-weight, var(--font-weight-heading));
        font-size: var(--archive-count-font-size, var(--font-size-base));
        color: var(--archive-count-color, var(--color-muted));
    }

    .archive-header__description {
        margin-top: var(--spacing-sm);
        font-size: var(--font-size-md);
        color: var(--color-muted);
        max-width: 65ch;
    }

    /* Sort bar */
    .archive-sort {
        position: relative;
        z-index: var(--z-archive-filters);
    }

    .archive-sort .select {
        position: relative;
    }

    .archive-sort .select__label {
        position: absolute;
        right: 100%;
        white-space: nowrap;
        padding-right: var(--spacing-sm);
    }


    .archive .post-cards {
        padding-bottom: var(--spacing-xl);
    }

    /* Pagination */
    .pagination {
        padding-block: var(--spacing-lg) var(--spacing-xl);
    }

    .pagination > .page-numbers {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: var(--pagination-gap, var(--spacing-xs));
        list-style: none;
        padding: 0;
        margin: 0;
        flex-wrap: wrap;
    }

    .pagination .page-numbers > li > a:not(.prev):not(.next),
    .pagination .page-numbers > li > span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 2.5em;
        height: 2.5em;
        padding-inline: var(--spacing-sm);
        border-radius: var(--radius-md);
        font-family: var(--font-button, var(--font-body));
        font-size: var(--font-size-body-sm);
        font-weight: var(--font-weight-button, 700);
        background-color: transparent;
        color: var(--color-text);
        border: 1px solid var(--color-border);
        transition: background-color var(--transition-speed), color var(--transition-speed), border-color var(--transition-speed);
    }

    .pagination .page-numbers > li > a:not(.prev):not(.next):hover {
        background-color: var(--color-primary);
        color: var(--color-on-primary);
        border-color: var(--color-primary);
    }

    .pagination .page-numbers > li > .current {
        background-color: var(--color-primary);
        color: var(--color-on-primary);
    }

    .pagination .page-numbers > li > .dots {
        border: none;
        background: none;
        color: var(--color-muted);
    }

    /* Prev/next */
    .pagination .page-numbers a.prev,
    .pagination .page-numbers a.next,
    .pagination .page-numbers span.prev,
    .pagination .page-numbers span.next {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--spacing-sm);
        min-width: 2.5em;
        height: 2.5em;
        padding-inline: var(--spacing-sm);
        border-radius: var(--radius-md);
        font-family: var(--font-button, var(--font-body));
        font-size: var(--font-size-body-sm);
        font-weight: var(--font-weight-button, 700);
        color: var(--color-text);
        border: 1px solid var(--color-border);
        background-color: transparent;
        transition: background-color var(--transition-speed), color var(--transition-speed), border-color var(--transition-speed);
    }

    .pagination .page-numbers a.prev:hover,
    .pagination .page-numbers a.next:hover,
    .pagination--minimal .page-numbers a.prev:hover,
    .pagination--minimal .page-numbers a.next:hover {
        background-color: var(--color-primary);
        color: var(--color-on-primary);
        border-color: var(--color-primary);
    }

    .pagination__arrow {
        display: inline-flex;
    }

    .pagination__arrow--left svg {
        rotate: -90deg;
    }

    .pagination__arrow--right svg {
        rotate: 90deg;
    }

    /* Alignment */
    .pagination--left > .page-numbers,
    .pagination--left > .pagination__prev-next { justify-content: flex-start; }

    .pagination--right > .page-numbers,
    .pagination--right > .pagination__prev-next { justify-content: flex-end; }

    /* Minimal style — no borders, bold text, magazine feel */
    .pagination--minimal .page-numbers > li > a:not(.prev):not(.next),
    .pagination--minimal .page-numbers > li > span {
        border: none;
        font-family: var(--pagination-font, var(--font-body));
        font-weight: var(--pagination-weight, 900);
        font-size: var(--pagination-font-size, var(--font-size-base));
        letter-spacing: var(--pagination-letter-spacing, normal);
    }

    .pagination--minimal .page-numbers > li > a:not(.prev):not(.next) {
        color: var(--pagination-color, var(--color-muted));
    }

    .pagination--minimal .page-numbers > li > a:not(.prev):not(.next):hover {
        background-color: transparent;
        color: var(--pagination-hover-color, var(--color-text));
        border: none;
    }

    .pagination--minimal .page-numbers > li > .current {
        background-color: transparent;
        color: var(--pagination-active-color, var(--color-text));
        border: none;
        font-family: var(--pagination-font, var(--font-body));
        font-weight: var(--pagination-weight, 900);
        font-size: var(--pagination-active-font-size, var(--font-size-md));
    }

    .pagination--minimal .page-numbers > li > .dots {
        color: var(--color-border);
    }

    .pagination--minimal .page-numbers a.prev,
    .pagination--minimal .page-numbers a.next {
        border: none;
        font-family: var(--pagination-font, var(--font-body));
        font-weight: var(--pagination-nav-weight, var(--pagination-weight, 900));
        font-size: var(--pagination-nav-font-size, var(--pagination-font-size, var(--font-size-base)));
        text-transform: var(--pagination-nav-transform, uppercase);
        letter-spacing: var(--pagination-nav-letter-spacing, 0.05em);
        color: var(--color-text);
    }

    .pagination--minimal .pagination__arrow svg {
        width: 20px;
        height: 20px;
    }

    .pagination--minimal .page-numbers a.prev:hover,
    .pagination--minimal .page-numbers a.next:hover {
        background-color: transparent;
        color: var(--pagination-hover-color, var(--color-primary));
        border: none;
    }

    /* Prev/next spacing: full — pinned to edges */
    .pagination--pn-full > .page-numbers {
        justify-content: center;
        position: relative;
    }

    .pagination--pn-full .page-numbers > li:has(> .prev) {
        position: absolute;
        left: 0;
    }

    .pagination--pn-full .page-numbers > li:has(> .next) {
        position: absolute;
        right: 0;
    }

    /* Prev/next spacing: token-based gap */
    .pagination--pn-gap .page-numbers > li:has(> .prev) {
        margin-right: var(--pagination-pn-gap);
    }

    .pagination--pn-gap .page-numbers > li:has(> .next) {
        margin-left: var(--pagination-pn-gap);
    }

    /* Icon-only nav — square, matches number items */
    .pagination--nav-icon-only .page-numbers a.prev,
    .pagination--nav-icon-only .page-numbers a.next,
    .pagination--nav-icon-only .page-numbers span.prev,
    .pagination--nav-icon-only .page-numbers span.next {
        padding-inline: 0;
    }

    /* Fixed nav width */
    .pagination--nav-width .page-numbers a.prev,
    .pagination--nav-width .page-numbers a.next,
    .pagination--nav-width .page-numbers span.prev,
    .pagination--nav-width .page-numbers span.next {
        min-width: var(--pagination-nav-width);
        justify-content: center;
    }

    /* Type: prev_next only — hide number items */
    .pagination--prev-next-only .page-numbers > li > a:not(.prev):not(.next),
    .pagination--prev-next-only .page-numbers > li > span:not(.prev):not(.next) {
        display: none;
    }

    /* Type: numbers only — hide prev/next */
    .pagination--numbers-only .page-numbers > li > a.prev,
    .pagination--numbers-only .page-numbers > li > a.next {
        display: none;
    }

    /* Infinite scroll */
    .infinite-scroll {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-block: var(--spacing-lg);
    }

    .infinite-scroll__loader {
        display: flex;
        justify-content: center;
    }

    .infinite-scroll__loader[hidden] {
        display: none;
    }

    .infinite-scroll__spinner {
        width: 24px;
        height: 24px;
        border: 2px solid var(--color-border);
        border-top-color: var(--color-primary);
        border-radius: 50%;
        animation: argen-spin 0.6s linear infinite;
    }

    @keyframes argen-spin {
        to { rotate: 360deg; }
    }


}
