/* ActiveSheets advanced theme infrastructure. */

.as-content-sidebar-shell {
    box-sizing: border-box;
    width: min(100%, var(--as-wide-width));
    margin-inline: auto;
    padding-inline: var(--as-page-gutter);
}

.as-content-sidebar-shell__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
    gap: var(--as-space-xl);
    align-items: start;
}

.as-content-sidebar-shell__content {
    min-width: 0;
}

.as-content-sidebar-shell__content > :first-child,
.as-content-sidebar-shell__sidebar > :first-child {
    margin-block-start: 0;
}

.as-content-sidebar-shell__content > :last-child,
.as-content-sidebar-shell__sidebar > :last-child {
    margin-block-end: 0;
}

.as-content-sidebar-shell__sidebar {
    min-width: 0;
}

.as-toc {
    position: sticky;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--as-space-md));
    padding: var(--as-space-md);
    border: var(--as-border-width) solid var(--as-color-border);
    border-radius: var(--as-radius-md);
    background: var(--as-color-surface);
}

.as-toc__title {
    margin-block-end: var(--as-space-sm);
    font-size: var(--as-font-size-md);
}

.as-toc__list {
    display: grid;
    gap: var(--as-space-xs);
    margin: 0;
    padding: 0;
    list-style: none;
}

.as-toc__list li {
    margin: 0;
}

.as-toc__list a {
    display: block;
    color: var(--as-color-text-muted);
    font-size: var(--as-font-size-sm);
    font-weight: var(--as-font-weight-medium);
    line-height: 1.4;
    text-decoration: none;
}

.as-toc__list a:hover,
.as-toc__list a:focus-visible {
    color: var(--as-color-primary);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.as-content-anchor {
    scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--as-space-lg));
}

/* Archive and search infrastructure. */
.as-archive-shell {
    box-sizing: border-box;
    padding-block: var(--as-section-space);
    padding-inline: var(--as-page-gutter);
}

.as-archive-shell__inner {
    width: min(100%, var(--as-wide-width));
    margin-inline: auto;
}

.as-archive-header {
    max-width: 48rem;
    margin-inline: 0 !important;
    margin-block-end: var(--as-space-xl);
}

.as-archive-title {
    margin-block-end: var(--as-space-sm);
}

.as-archive-description {
    max-width: var(--as-text-measure);
    margin-block-end: 0;
    color: var(--as-color-text-muted);
    font-size: var(--as-font-size-lg);
}

.as-archive-controls {
    display: grid;
    grid-template-columns: minmax(0, 36rem);
    gap: var(--as-space-sm);
    margin-block-end: var(--as-space-xl);
}

.as-archive-search,
.as-archive-search .wp-block-search__inside-wrapper {
    width: 100%;
}

.as-archive-search .wp-block-search__inside-wrapper {
    display: flex;
    gap: var(--as-space-xs);
}

.as-archive-query {
    margin-block-start: 0;
}

.as-archive-results,
.as-search-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--as-space-lg);
    margin: 0;
    padding: 0;
}

.as-search-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.as-archive-results > *,
.as-search-results > * {
    margin: 0;
}

.as-archive-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.as-archive-card__title {
    margin-block-end: var(--as-space-sm);
    font-size: var(--as-font-size-lg);
}

.as-archive-card__title a {
    color: inherit;
    text-decoration: none;
}

.as-archive-card__title a:hover,
.as-archive-card__title a:focus-visible {
    color: var(--as-color-primary);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.as-archive-card__terms {
    margin-block-end: var(--as-space-xs);
}

.as-archive-card__excerpt {
    flex: 1 1 auto;
}

.as-archive-card__excerpt .wp-block-post-excerpt__more-link {
    display: inline-block;
    margin-block-start: var(--as-space-xs);
    font-weight: var(--as-font-weight-semibold);
}

.as-archive-card__meta {
    gap: var(--as-space-xs) var(--as-space-sm);
    margin-block-start: var(--as-space-md);
    color: var(--as-color-text-muted);
    font-size: var(--as-font-size-sm);
}

.as-search-result__date {
    margin-block-start: auto;
    padding-block-start: var(--as-space-sm);
}

.as-archive-empty {
    max-width: 42rem;
    margin-inline: 0 !important;
}

.as-archive-pagination {
    gap: var(--as-space-sm);
    margin-block-start: var(--as-space-xl);
    padding-block: var(--as-space-md);
    border-block: var(--as-border-width) solid var(--as-color-border);
}

.as-archive-pagination .page-numbers {
    display: inline-flex;
    min-width: 2.75rem;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
}

@media (max-width: 960px) {
    .as-content-sidebar-shell__grid {
        grid-template-columns: minmax(0, 1fr) minmax(12rem, 15rem);
        gap: var(--as-space-lg);
    }

    .as-archive-results {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 781px) {
    .as-content-sidebar-shell__grid {
        grid-template-columns: 1fr;
    }

    .as-content-sidebar-shell__sidebar {
        order: -1;
    }

    .as-toc {
        position: static;
        padding: var(--as-space-sm);
    }

    .as-archive-shell {
        padding-block: var(--as-space-xl);
    }

    .as-archive-header,
    .as-archive-controls {
        margin-block-end: var(--as-space-lg);
    }

    .as-archive-results,
    .as-search-results {
        grid-template-columns: 1fr;
    }

    .as-archive-search .wp-block-search__inside-wrapper {
        align-items: stretch;
        flex-direction: column;
    }

    .as-archive-pagination {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media print {
    .as-content-sidebar-shell__grid {
        display: block;
    }

    .as-content-sidebar-shell__sidebar,
    .as-archive-controls,
    .as-archive-pagination {
        display: none;
    }

    .as-archive-results,
    .as-search-results {
        display: block;
    }

    .as-archive-card {
        break-inside: avoid;
        margin-block-end: var(--as-space-md);
        box-shadow: none;
    }
}
