.saf-footer-links,
.saf-html-sitemap,
.saf-author-card,
.saf-trust-links,
.saf-topic-links {
    box-sizing: border-box;
    margin-block: 1.5rem;
    font: inherit;
    color: inherit;
}

.saf-footer-links ul,
.saf-trust-links ul,
.saf-topic-links ul,
.saf-html-sitemap ul {
    margin: 0;
    padding-inline-start: 1.25rem;
}

.saf-footer-links a,
.saf-trust-links a,
.saf-topic-links a,
.saf-html-sitemap a,
.saf-author-card a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.saf-footer-links.saf-layout-inline ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
    padding: 0;
    list-style: none;
}

.saf-footer-links.saf-layout-two-columns ul,
.saf-footer-links.saf-layout-three-columns ul {
    display: grid;
    gap: 0.45rem 1rem;
}

.saf-footer-links.saf-layout-two-columns ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.saf-footer-links.saf-layout-three-columns ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.saf-footer-links.saf-layout-compact ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    padding: 0;
    list-style: none;
    font-size: 0.92em;
}

.saf-footer-heading,
.saf-sitemap-section h2,
.saf-author-card h2,
.saf-author-card h3 {
    color: inherit;
    font-family: inherit;
}

.saf-sitemap-section {
    margin-block: 1.5rem;
}

.saf-author-card {
    display: grid;
    grid-template-columns: minmax(96px, 150px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    margin-block: 1.6rem 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.saf-author-photo {
    width: 100%;
    height: auto;
    border-radius: 0.35rem;
}

.saf-author-name {
    margin-top: 0;
}

.saf-author-role {
    font-weight: 600;
}

@media (max-width: 640px) {
    .saf-footer-links.saf-layout-two-columns ul,
    .saf-footer-links.saf-layout-three-columns ul,
    .saf-author-card {
        grid-template-columns: 1fr;
    }

    .saf-author-photo {
        max-width: 140px;
    }
}

/* Foundation pages deliberately inherit the active theme's page presentation. */
.saf-foundation-page {
    box-sizing: border-box;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
    font-family: inherit;
}

.saf-foundation-page .saf-page-lead {
    margin: 0 0 1.75rem;
    font-size: 1.08em;
    line-height: 1.7;
}

.saf-foundation-page .saf-page-updated {
    margin: 0 0 1.5rem;
    font-size: 0.88em;
    opacity: 0.68;
}

.saf-foundation-page h2 {
    margin-top: 2rem;
    margin-bottom: 0.8rem;
    padding-top: 0;
    border-top: 0;
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    font-family: inherit;
    color: inherit;
}

.saf-foundation-page h2:first-of-type {
    margin-top: 1.4rem;
}

.saf-foundation-page p,
.saf-foundation-page li {
    max-width: 78ch;
}

.saf-foundation-page ul,
.saf-foundation-page ol {
    margin-block: 0.8rem 1.4rem;
}

.saf-foundation-page .saf-coverage-list {
    display: grid;
    gap: 0.45rem;
    padding-left: 1.2rem;
}

.saf-foundation-page .saf-policy-toc {
    margin: 1.75rem 0 2rem;
    padding: 1.2rem 1.35rem;
    border: 1px solid rgba(127, 127, 127, 0.24);
    border-radius: 0.55rem;
    background: rgba(127, 127, 127, 0.055);
}

.saf-foundation-page .saf-policy-toc h2 {
    margin: 0 0 0.7rem;
    padding: 0;
    border: 0;
    font-size: 1.02em;
}

.saf-foundation-page .saf-policy-toc ul {
    columns: 2 260px;
    column-gap: 2rem;
    margin: 0;
    padding-left: 1.1rem;
}

.saf-foundation-page .saf-policy-toc li {
    break-inside: avoid;
    margin: 0.28rem 0;
}

.saf-foundation-page .saf-policy-toc a {
    text-decoration-thickness: 0.06em;
    text-underline-offset: 0.14em;
}

/* Draft-only setup guidance should never look like public-facing site copy. */
.saf-foundation-page .saf-legal-template-notice,
.saf-foundation-page .saf-editor-note {
    display: none;
}

/* Keep the recommended footer intentionally quiet and compact. */
.saf-footer-links.saf-layout-compact {
    margin-block: 0.8rem;
    font-size: 0.9em;
    opacity: 0.88;
}

.saf-footer-links.saf-layout-compact ul {
    gap: 0;
    align-items: center;
}

.saf-footer-links.saf-layout-compact li {
    display: inline-flex;
    align-items: center;
}

.saf-footer-links.saf-layout-compact li:not(:last-child)::after {
    content: "•";
    margin-inline: 0.7rem;
    opacity: 0.38;
}

.saf-footer-links.saf-layout-compact a {
    text-decoration: none;
}

.saf-footer-links.saf-layout-compact a:hover,
.saf-footer-links.saf-layout-compact a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.14em;
}

@media (max-width: 640px) {
    .saf-foundation-page .saf-policy-toc ul {
        columns: 1;
    }

    .saf-footer-links.saf-layout-compact li:not(:last-child)::after {
        margin-inline: 0.5rem;
    }
}


/* v1.0.3 reader-friendly HTML sitemap organization. */
.saf-html-sitemap {
    max-width: 960px;
    margin-inline: auto;
}

.saf-html-sitemap .saf-sitemap-section {
    margin-block: 2rem;
    padding-block: 0.35rem 1rem;
    border-bottom: 1px solid rgba(127, 127, 127, 0.18);
}

.saf-html-sitemap .saf-sitemap-section:last-child {
    border-bottom: 0;
}

.saf-html-sitemap .saf-sitemap-section > h2 {
    margin: 0 0 0.9rem;
    font-size: 1.25em;
}

.saf-html-sitemap ul {
    margin: 0;
    padding-left: 1.15rem;
}

.saf-html-sitemap li {
    margin-block: 0.36rem;
}

.saf-sitemap-resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem 2.5rem;
}

.saf-sitemap-resource-group h3 {
    margin: 0 0 0.7rem;
    font-size: 1.04em;
    color: inherit;
    font-family: inherit;
}

@media (max-width: 700px) {
    .saf-sitemap-resource-grid {
        grid-template-columns: 1fr;
    }
}


/* Scalable article directory and contributor profiles. */
.saf-sitemap-directory-entry p,
.saf-directory-intro {
    max-width: 72ch;
}

.saf-directory-link {
    font-weight: 600;
}

.saf-directory-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-block: 1.5rem 1rem;
}

.saf-directory-pagination a,
.saf-directory-pagination .saf-page-current {
    display: inline-flex;
    min-width: 2rem;
    min-height: 2rem;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.55rem;
    border: 1px solid rgba(127, 127, 127, 0.28);
    border-radius: 0.3rem;
    text-decoration: none;
}

.saf-directory-pagination .saf-page-current {
    font-weight: 700;
}

.saf-contributors {
    margin-top: 1.5rem;
}

.saf-contributor {
    padding-block: 0.8rem;
    border-top: 1px solid rgba(127, 127, 127, 0.18);
}

.saf-contributor h4 {
    margin-bottom: 0.25rem;
}

/* Resilient footer contrast; foundation-page containers stay theme-first. */
.saf-footer-links.saf-custom-color {
    color: var(--saf-footer-link-color) !important;
}

.saf-footer-links.saf-custom-color .saf-footer-heading,
.saf-footer-links.saf-custom-color li,
.saf-footer-links.saf-custom-color li::after,
.saf-footer-links.saf-custom-color a,
.saf-footer-links.saf-custom-color a:visited {
    color: var(--saf-footer-link-color) !important;
}

.saf-page-updated:empty {
    display: none;
}

.saf-foundation-page > :first-child {
    margin-top: 0;
}

.saf-foundation-page > :last-child {
    margin-bottom: 0;
}

.saf-foundation-page h3 {
    margin-top: 1.6rem;
    margin-bottom: 0.55rem;
    line-height: 1.3;
}

.saf-author-card.saf-author-no-photo {
    grid-template-columns: minmax(0, 1fr);
}

.saf-author-card .saf-author-details {
    min-width: 0;
}

.saf-author-card .saf-author-name {
    margin-bottom: 0.4rem;
    line-height: 1.2;
}

.saf-author-card p {
    max-width: 74ch;
}

.saf-author-card ul {
    margin-block: 0.55rem 1rem;
}

.saf-html-sitemap:not(.saf-article-directory) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.15rem;
    max-width: none;
}

.saf-html-sitemap:not(.saf-article-directory) .saf-sitemap-section {
    margin: 0;
    padding: 0 0 1rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.saf-html-sitemap:not(.saf-article-directory) .saf-sitemap-section > h2 {
    margin: 0 0 0.75rem;
    font-size: 1.18em;
}

.saf-html-sitemap:not(.saf-article-directory) .saf-sitemap-resources {
    grid-column: 1 / -1;
}

.saf-html-sitemap:not(.saf-article-directory) .saf-sitemap-section:last-child {
    border-bottom: 0;
}

@media (max-width: 700px) {
    .saf-foundation-page {
        margin: 0;
        padding: 0;
        border-radius: 0;
    }

    .saf-html-sitemap:not(.saf-article-directory) {
        grid-template-columns: 1fr;
    }
}

/* v1.0.20 Smart Footer Integration: merged links stay inside the existing
   inline link row. The merge helper supplies the row's detected separator. */
.saf-footer-smart-inline {
    display: inline;
    margin: 0;
    padding: 0;
}

/* When a branded footer exists but contains no links at all, the compact SAF
   fallback is moved inside that footer instead of being rendered beneath it. */
.saf-footer-links.saf-smart-fallback-in-footer {
    margin-block: 0.75rem 0;
}


/* v1.0.11 native footer merge: structure only; the active theme styles links. */
.saf-native-footer-links {
    display: inline;
}

.saf-native-footer-separator {
    margin-inline: 0.35em;
    opacity: 0.55;
}

/* Owner-supplied focus statements stay visually distinct without imposing a theme. */
.saf-foundation-page .saf-focus-statement {
    margin: 1rem 0 1.35rem;
    padding: 0.9rem 1rem;
    border-inline-start: 3px solid currentColor;
    background: rgba(127, 127, 127, 0.06);
}

.saf-foundation-page .saf-focus-statement p {
    margin: 0;
    max-width: 78ch;
}

/* v1.0.24 merged footer alignment. These rules touch only the footer link row
   SAF has positively identified or the SAF fallback itself. Other footer
   components (copyright, social icons, branding) stay under theme control. */
.saf-footer-merged-align-left {
    text-align: left !important;
    justify-content: flex-start !important;
}

.saf-footer-merged-align-center {
    text-align: center !important;
    justify-content: center !important;
}

.saf-footer-merged-align-right {
    text-align: right !important;
    justify-content: flex-end !important;
}

.saf-footer-links.saf-footer-fallback-align-left > ul {
    justify-content: flex-start !important;
    text-align: left !important;
}

.saf-footer-links.saf-footer-fallback-align-center > ul {
    justify-content: center !important;
    text-align: center !important;
}

.saf-footer-links.saf-footer-fallback-align-right > ul {
    justify-content: flex-end !important;
    text-align: right !important;
}

/* Native Astra link fragments remain inline so alignment never forces the
   theme's copyright text or social components onto a new layout row. */
.saf-native-footer-links.saf-footer-merged-align-left,
.saf-native-footer-links.saf-footer-merged-align-center,
.saf-native-footer-links.saf-footer-merged-align-right {
    display: inline;
}

