.site-footer {
    --site-footer-bg: var(--bs-bg-body);
    --site-footer-auto-color: var(--bs-fg-body);
    --site-footer-fg: var(--site-footer-auto-color);
    --site-footer-body-font-family: var(--bs-body-font-family);
    --site-footer-body-font-size: var(--bs-body-font-size);
    --site-footer-body-font-weight: var(--bs-body-font-weight);
    --site-footer-muted: color-mix(
        in oklch,
        var(--site-footer-fg) 78%,
        var(--site-footer-bg)
    );
    --site-footer-subtle: color-mix(
        in oklch,
        var(--site-footer-fg) 68%,
        var(--site-footer-bg)
    );
    --site-footer-border: color-mix(
        in oklch,
        var(--site-footer-fg) 20%,
        transparent
    );
    --site-footer-directory-space: clamp(3.5rem, 7vw, 5.5rem);
    --site-footer-feature-space: clamp(3rem, 6vw, 5rem);
    --site-footer-centered-panel-space: clamp(3rem, 7vw, 6rem);
    --site-footer-centered-close-space: clamp(3.5rem, 8vw, 6.5rem);
    background: var(--site-footer-bg);
    color: var(--site-footer-fg);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
    isolation: isolate;
}

.site-footer--bordered {
    border-block-start: 1px solid var(--site-footer-border);
}

.site-footer--borderless {
    border-block-start: 0;
}

.site-footer--background-inherit {
    --site-footer-bg: var(--bs-bg-body);
    --site-footer-auto-color: var(--bs-fg-body);
}

.site-footer--background-light {
    --site-footer-bg: var(--bs-white);
    --site-footer-auto-color: var(--bs-gray-900);
    color-scheme: light;
}

.site-footer--background-dark {
    --site-footer-bg: var(--bs-gray-950);
    --site-footer-auto-color: var(--bs-gray-050);
    color-scheme: dark;
}

.site-footer--background-primary {
    --site-footer-bg: var(--bs-primary-base);
    --site-footer-auto-color: var(--bs-primary-contrast);
}

.site-footer--background-secondary {
    --site-footer-bg: var(--bs-secondary-base);
    --site-footer-auto-color: var(--bs-secondary-contrast);
}

.site-footer--background-custom {
    --site-footer-bg: var(--site-footer-custom-background);
    --site-footer-auto-color: var(--site-footer-custom-auto-color);
}

.site-footer--tone-auto {
    --site-footer-fg: var(--site-footer-auto-color);
}

.site-footer--tone-light {
    --site-footer-fg: var(--bs-white);
}

.site-footer--tone-dark {
    --site-footer-fg: var(--bs-gray-950);
}

.site-footer--density-compact {
    --site-footer-directory-space: clamp(2.5rem, 5vw, 3.5rem);
    --site-footer-feature-space: clamp(2.5rem, 5vw, 3.75rem);
    --site-footer-centered-panel-space: clamp(2.5rem, 5vw, 4rem);
    --site-footer-centered-close-space: clamp(2.75rem, 6vw, 4.5rem);
}

.site-footer--density-spacious {
    --site-footer-directory-space: clamp(4.5rem, 8vw, 7rem);
    --site-footer-feature-space: clamp(4rem, 7vw, 6.5rem);
    --site-footer-centered-panel-space: clamp(4rem, 8vw, 7rem);
    --site-footer-centered-close-space: clamp(4.5rem, 9vw, 8rem);
}

.site-footer--width-full > .container-fluid,
.site-footer--width-full .site-footer__bottom > .container-fluid {
    padding-inline: clamp(1rem, 4vw, 4rem);
}

.site-footer__directory {
    padding-block: var(--site-footer-directory-space);
}

.site-footer__directory-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
}

.site-footer__directory-grid > * {
    min-width: 0;
}

.site-footer__heading {
    margin-bottom: 1rem;
    color: var(--site-footer-muted);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: 800;
    letter-spacing: var(--cms-heading-letter-spacing, -1px);
    text-transform: uppercase;
}

.site-footer .widget-title {
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
}

.site-footer__brand-block {
    display: grid;
    justify-items: start;
    gap: 1rem;
}

.site-footer__brand {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
    color: var(--site-footer-fg);
    font-weight: 750;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.site-footer__brand--image {
    inline-size: min(var(--site-footer-logo-width, 11rem), 100%);
}

.site-footer__logo {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

.site-footer__summary {
    max-width: 31rem;
    color: var(--site-footer-muted);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
}

.site-footer__summary :where(*) {
    font-family: inherit;
    font-size: var(--site-footer-body-font-size);
    font-weight: inherit;
}

.site-footer__summary > :last-child,
.site-footer__feature-copy > :last-child,
.site-footer__contact .nav-link > :last-child {
    margin-bottom: 0;
}

.site-footer__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--site-footer-muted);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: 800;
    letter-spacing: var(--cms-label-letter-spacing, 0.14em);
    text-transform: uppercase;
}

.site-footer__feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 28rem);
    align-items: center;
    gap: clamp(2rem, 7vw, 6rem);
    padding-block: var(--site-footer-feature-space);
    border-bottom: 1px solid var(--site-footer-border);
}

.site-footer__feature-content {
    min-width: 0;
}

.site-footer__feature-title {
    max-width: 20ch;
    margin: 0;
    color: var(--site-footer-fg);
    font-family: var(--bs-heading-font-family);
    font-weight: var(--bs-heading-font-weight);
    letter-spacing: var(--cms-heading-letter-spacing, -1px);
    line-height: var(--bs-heading-line-height);
}

.site-footer__feature-copy {
    max-width: 36rem;
    margin-top: 1rem;
    color: var(--site-footer-muted);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
}

.site-footer__feature-copy :where(*) {
    font-family: inherit;
    font-size: var(--site-footer-body-font-size);
    font-weight: inherit;
}

.site-footer__feature-action,
.site-footer__feature-action .widget {
    width: 100%;
    max-width: 28rem;
}

.site-footer__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-block-size: 2.75rem;
}

.site-footer:not(.site-footer--centered-cta) .site-footer__action.btn-solid {
    --bs-btn-bg: var(--site-footer-fg);
    --bs-btn-color: var(--site-footer-bg);
    --bs-btn-border-color: var(--site-footer-fg);
    --bs-btn-hover-bg: color-mix(
        in oklch,
        var(--site-footer-fg) 88%,
        var(--site-footer-bg)
    );
    --bs-btn-hover-color: var(--site-footer-bg);
    --bs-btn-hover-border-color: var(--site-footer-fg);
    border-color: var(--site-footer-fg);
    background: var(--site-footer-fg);
    color: var(--site-footer-bg);
}

.site-footer:not(.site-footer--centered-cta) .site-footer__action.btn-outline {
    --bs-btn-bg: transparent;
    --bs-btn-color: var(--site-footer-fg);
    --bs-btn-border-color: color-mix(
        in oklch,
        var(--site-footer-fg) 58%,
        transparent
    );
    --bs-btn-hover-bg: var(--site-footer-fg);
    --bs-btn-hover-color: var(--site-footer-bg);
    --bs-btn-hover-border-color: var(--site-footer-fg);
    border-color: color-mix(in oklch, var(--site-footer-fg) 58%, transparent);
    background: transparent;
    color: var(--site-footer-fg);
}

.site-footer:not(.site-footer--centered-cta) .site-footer__action.btn-subtle {
    --bs-btn-bg: color-mix(in oklch, var(--site-footer-fg) 14%, transparent);
    --bs-btn-color: var(--site-footer-fg);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-bg: color-mix(
        in oklch,
        var(--site-footer-fg) 22%,
        transparent
    );
    --bs-btn-hover-color: var(--site-footer-fg);
    --bs-btn-hover-border-color: transparent;
    border-color: transparent;
    background: color-mix(in oklch, var(--site-footer-fg) 14%, transparent);
    color: var(--site-footer-fg);
}

.site-footer:not(.site-footer--centered-cta)
    .site-footer__action.btn-outline:hover {
    border-color: var(--site-footer-fg);
    background: var(--site-footer-fg);
    color: var(--site-footer-bg);
}

.site-footer:not(.site-footer--centered-cta)
    .site-footer__action.btn-solid:hover {
    border-color: var(--site-footer-fg);
    background: color-mix(
        in oklch,
        var(--site-footer-fg) 88%,
        var(--site-footer-bg)
    );
    color: var(--site-footer-bg);
}

.site-footer:not(.site-footer--centered-cta)
    .site-footer__action.btn-subtle:hover {
    border-color: transparent;
    background: color-mix(in oklch, var(--site-footer-fg) 22%, transparent);
    color: var(--site-footer-fg);
}

.site-footer__action--raised {
    box-shadow: var(--bs-box-shadow-lg);
}

.site-footer__menu ul,
.site-footer .nav {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__menu .nav {
    gap: 0;
}

.site-footer__menu a {
    padding-inline: 0;
    border-inline: 0;
}

.site-footer__menu a,
.site-footer .nav-link {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
    max-width: 100%;
    padding-block: 0.375rem;
    color: var(--site-footer-muted);
    overflow-wrap: anywhere;
    text-decoration: none;
}

.bootstrap-theme .site-footer .site-footer__menu a {
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
    line-height: var(--bs-body-line-height, 1.5);
}

.site-footer__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}

.bootstrap-theme .site-footer a.site-footer__social.btn-outline {
    --bs-theme-fg: var(--site-footer-fg);
    --bs-btn-bg: transparent;
    --bs-btn-color: var(--site-footer-fg);
    --bs-btn-border-color: var(--site-footer-border);
    --bs-btn-hover-bg: var(--site-footer-fg);
    --bs-btn-hover-color: var(--site-footer-bg);
    --bs-btn-hover-border-color: var(--site-footer-fg);
    gap: 0.5rem;
    min-inline-size: 2.75rem;
    min-block-size: 2.75rem;
    border-color: var(--site-footer-border);
    background: transparent;
    color: var(--site-footer-fg);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
}

.bootstrap-theme .site-footer a.site-footer__social.btn-outline:hover {
    border-color: var(--site-footer-fg);
    background: var(--site-footer-fg);
    color: var(--site-footer-bg);
}

.site-footer__social i {
    color: inherit;
}

.site-footer__contact .nav-item {
    min-width: 0;
    margin-bottom: 0;
}

.site-footer__contact-list {
    gap: 0.25rem;
}

.site-footer__contact-item {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    margin: 0;
}

.site-footer__contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 1.25rem;
    block-size: 2.75rem;
    color: var(--site-footer-subtle);
    line-height: 1;
}

.site-footer__contact-content {
    min-width: 0;
}

.site-footer__contact .nav-link,
.site-footer__contact address {
    max-width: 100%;
    margin: 0;
    font-style: normal;
    overflow-wrap: anywhere;
    white-space: normal;
}

.site-footer__contact .site-footer__contact-value {
    min-block-size: 2.75rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--site-footer-muted);
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    line-height: 1.4;
    text-decoration: none;
}

.bootstrap-theme
    .site-footer
    .site-footer__contact
    .site-footer__contact-value {
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
}

.site-footer__bottom {
    border-top: 1px solid var(--site-footer-border);
    color: var(--site-footer-muted);
}

.site-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    min-height: 4.5rem;
    padding-block: 0.75rem;
}

.site-footer__copyright {
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
    overflow-wrap: anywhere;
}

.site-footer__bottom-actions,
.site-footer__legal {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
}

.site-footer__legal a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-block-size: 2.75rem;
    color: inherit;
    font-family: var(--site-footer-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: var(--site-footer-body-font-weight);
    text-decoration: none;
}

.bootstrap-theme
    .site-footer
    :is(
        .site-footer__menu a,
        .site-footer__contact-link,
        .site-footer__legal a
    ) {
    background: transparent;
    color: var(--site-footer-muted);
    transition:
        background-color var(--cms-motion-duration-short) ease,
        color var(--cms-motion-duration-short) ease,
        text-decoration-color var(--cms-motion-duration-short) ease;
}

.site-footer[data-footer-link-hover='underline']
    :is(.site-footer__menu a, .site-footer__legal a) {
    position: relative;
}

.site-footer[data-footer-link-hover='underline']
    :is(.site-footer__menu a, .site-footer__legal a)::after {
    position: absolute;
    inset-inline: 0;
    inset-block-end: 0.25rem;
    block-size: 0.125rem;
    border-radius: var(--bs-radius-pill);
    background: currentColor;
    content: '';
    pointer-events: none;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--cms-motion-duration-short) ease;
}

.site-footer[data-footer-link-hover='button']
    :is(
        .site-footer__menu a,
        .site-footer__contact-link,
        .site-footer__legal a
    ) {
    padding-inline: 0.75rem;
    border-radius: var(--bs-radius-pill);
}

.site-footer[data-footer-link-hover='none']
    :is(
        .site-footer__menu a,
        .site-footer__contact-link,
        .site-footer__legal a
    ) {
    transition: none;
}

@media (hover: hover) {
    .site-footer[data-footer-link-hover='underline']
        :is(
            .site-footer__menu a,
            .site-footer__contact-link,
            .site-footer__legal a
        ):hover,
    .site-footer[data-footer-link-hover='button']
        :is(
            .site-footer__menu a,
            .site-footer__contact-link,
            .site-footer__legal a
        ):hover {
        color: var(--site-footer-fg);
    }

    .site-footer[data-footer-link-hover='underline']
        :is(.site-footer__menu a, .site-footer__legal a):hover::after {
        transform: scaleX(1);
    }

    .site-footer[data-footer-link-hover='underline']
        .site-footer__contact-link:hover {
        text-decoration-line: underline;
        text-decoration-color: currentColor;
        text-decoration-thickness: 0.0625em;
        text-underline-offset: 0.2em;
    }

    .site-footer[data-footer-link-hover='button']
        :is(
            .site-footer__menu a,
            .site-footer__contact-link,
            .site-footer__legal a
        ):hover {
        background: color-mix(in oklch, var(--site-footer-fg) 10%, transparent);
    }
}

.site-footer__feature--newsletter {
    margin-block: clamp(1.25rem, 3vw, 2rem);
    padding-inline: clamp(1.25rem, 4vw, 3rem);
    border: 1px solid var(--site-footer-border);
    border-radius: var(--bs-radius-9);
    background: color-mix(in oklch, var(--site-footer-fg) 6%, transparent);
}

.site-footer--directory-signup {
    --site-footer-directory-space: clamp(4rem, 7vw, 6.5rem);
}

.site-footer--directory-signup .site-footer__heading,
.site-footer--directory-signup .widget-title {
    margin-block-end: 0.85rem;
    color: var(--site-footer-fg);
    font-family: var(--bs-body-font-family);
    font-size: var(--site-footer-body-font-size);
    font-weight: 650;
    letter-spacing: var(--cms-heading-letter-spacing, -1px);
    line-height: 1.3;
    text-transform: none;
}

.site-footer--directory-signup .site-footer__brand-block {
    gap: 1.15rem;
}

.site-footer--directory-signup .site-footer__brand {
    font-weight: 750;
    letter-spacing: -0.045em;
}

.site-footer--directory-signup .site-footer__summary {
    max-width: 18rem;
    color: var(--site-footer-muted);
    line-height: var(--bs-body-line-height, 1.65);
}

.site-footer--directory-signup .site-footer__menu a,
.site-footer--directory-signup .site-footer__contact .nav-link,
.site-footer--directory-signup .site-footer__contact address {
    padding-block: 0.4rem;
    color: var(--site-footer-muted);
    font-weight: var(--site-footer-body-font-weight);
}

.site-footer--directory-signup .site-footer__contact .nav-item {
    margin-block-end: 0;
}

.bootstrap-theme
    .site-footer--directory-signup
    a.site-footer__social.btn-outline {
    min-inline-size: 2.75rem;
    padding: 0;
    border-color: transparent;
    border-radius: var(--bs-radius-3);
    background: transparent;
    color: var(--site-footer-fg);
}

.bootstrap-theme
    .site-footer--directory-signup
    a.site-footer__social.btn-outline:hover {
    border-color: transparent;
    background: transparent;
    color: var(--bs-primary-base);
}

.site-footer--directory-signup .site-footer__directory-signup {
    min-width: 0;
}

.site-footer--directory-signup .site-footer__directory-signup .widget,
.site-footer--directory-signup .site-footer__directory-signup .text-content,
.site-footer--directory-signup
    .site-footer__directory-signup
    .text-content
    > :last-child {
    margin-block-end: 0;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .text-content
    > p:not(:last-child) {
    margin-block-end: 1rem;
    color: var(--site-footer-muted);
    line-height: var(--bs-body-line-height, 1.65);
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form {
    --cms-form-surface: transparent;
    --cms-form-text: var(--site-footer-fg);
    --cms-form-muted: var(--site-footer-muted);
    --cms-form-border: var(--site-footer-border);
    --cms-form-border-strong: var(--bs-primary-base);
    --cms-form-accent: var(--site-footer-fg);
    --cms-form-accent-contrast: var(--site-footer-bg);
    width: 100%;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3rem;
    align-items: end;
    gap: 0;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__fields {
    display: block;
    grid-column: 1;
    margin: 0;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__field {
    width: 100%;
    max-width: none;
    padding: 0;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__control {
    min-block-size: 3rem;
    border-color: var(--site-footer-border);
    border-start-end-radius: 0;
    border-end-end-radius: 0;
    background: transparent;
    color: var(--site-footer-fg);
    box-shadow: none;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__control::placeholder {
    color: var(--site-footer-muted);
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__feedback-stack {
    grid-column: 1 / -1;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__actions {
    grid-column: 2;
    margin: 0;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__submit {
    inline-size: 3rem;
    min-inline-size: 3rem;
    min-block-size: 3rem;
    position: relative;
    padding: 0;
    border-color: var(--site-footer-border);
    border-inline-start: 0;
    border-start-start-radius: 0;
    border-end-start-radius: 0;
    background: transparent;
    color: var(--site-footer-fg);
    overflow: hidden;
    text-indent: 100%;
    white-space: nowrap;
    box-shadow: none;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__submit::before {
    width: 1.2rem;
    height: 1.2rem;
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    background: var(--site-footer-fg);
    content: '';
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M4 6h16v12H4zM4 7l8 6 8-6'/%3E%3C/svg%3E")
        center / contain no-repeat;
    transform: translate(-50%, -50%);
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__submit:hover {
    border-color: var(--site-footer-fg);
    background: var(--site-footer-fg);
    color: var(--site-footer-bg);
    transform: none;
    box-shadow: none;
}

.site-footer--directory-signup
    .site-footer__directory-signup
    .cms-shortcode-form__submit:hover::before {
    background: var(--site-footer-bg);
}

.site-footer--directory-signup .site-footer__bottom-inner {
    min-height: 5.25rem;
}

.site-footer--centered-cta {
    padding-block-start: clamp(0.75rem, 2vw, 1.5rem);
}

.site-footer--centered-cta .site-footer__centered-action-shell {
    padding-inline: clamp(0.25rem, 1vw, 0.75rem);
}

.site-footer--centered-cta .site-footer__centered-action-panel {
    display: grid;
    justify-items: center;
    gap: clamp(1.25rem, 3vw, 2rem);
    padding: var(--site-footer-centered-panel-space) clamp(1.25rem, 5vw, 4rem);
    border: 1px solid var(--site-footer-border);
    border-radius: var(--bs-radius-9);
    background: color-mix(
        in oklch,
        var(--site-footer-fg) 8%,
        var(--site-footer-bg)
    );
    text-align: center;
}

.site-footer--centered-cta .site-footer__centered-action-copy {
    display: grid;
    justify-items: center;
    gap: 0.9rem;
    max-width: 48rem;
}

.site-footer--centered-cta .site-footer__eyebrow,
.site-footer--centered-cta .site-footer__feature-title,
.site-footer--centered-cta .site-footer__feature-copy {
    max-width: 42rem;
    margin: 0;
    text-align: center;
}

.site-footer--centered-cta .site-footer__centered-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.site-footer--centered-cta .site-footer__centered-actions .site-footer__action {
    min-block-size: 2.75rem;
    padding-inline: clamp(1.25rem, 3vw, 2rem);
    color: var(--bs-btn-color);
}

.site-footer--centered-cta
    .site-footer__centered-actions
    .site-footer__action:hover {
    color: var(--bs-btn-hover-color);
}

.site-footer--centered-cta .site-footer__centered-close {
    display: grid;
    justify-items: center;
    gap: 1rem;
    padding-block: var(--site-footer-centered-close-space)
        clamp(1.5rem, 4vw, 3rem);
    text-align: center;
}

.site-footer--centered-cta .site-footer__summary,
.site-footer--centered-cta .site-footer__summary :where(*) {
    max-width: 36rem;
    margin: 0;
    color: var(--site-footer-muted);
    text-align: center;
}

.site-footer--centered-cta .site-footer__centered-accent {
    inline-size: 3rem;
    border-block-start: 2px solid var(--bs-primary-base);
}

.site-footer--centered-cta .site-footer__copyright {
    color: var(--site-footer-muted);
}

.site-footer--align-center .site-footer__feature {
    justify-items: center;
    text-align: center;
}

.site-footer--align-center .site-footer__feature-content,
.site-footer--align-center .site-footer__feature-title,
.site-footer--align-center .site-footer__feature-copy {
    margin-inline: auto;
}

.site-footer--align-center .site-footer__feature-action {
    display: flex;
    justify-content: center;
}

.site-footer--no-dividers .site-footer__feature,
.site-footer--no-dividers .site-footer__bottom {
    border-color: transparent;
}

.site-footer a:focus-visible {
    border-radius: var(--bs-radius-3);
    outline: 3px solid var(--site-footer-fg);
    outline-offset: 3px;
}

@media (max-width: 63.999rem) {
    .site-footer__feature {
        grid-template-columns: minmax(0, 1fr);
        align-items: flex-start;
    }

    .site-footer__feature-action,
    .site-footer__feature-action .widget {
        width: 100%;
        max-width: none;
    }

    .site-footer__feature-action .site-footer__action {
        width: 100%;
    }
}

@media (max-width: 35.999rem) {
    .site-footer--centered-cta .site-footer__centered-actions {
        inline-size: min(100%, 24rem);
        flex-direction: column;
    }

    .site-footer--centered-cta
        .site-footer__centered-actions
        .site-footer__action {
        inline-size: 100%;
        white-space: normal;
    }

    .site-footer--directory-signup
        .site-footer__directory-signup
        .cms-shortcode-form__form {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .site-footer--directory-signup
        .site-footer__directory-signup
        .cms-shortcode-form__control {
        border-radius: var(--bs-control-border-radius);
    }

    .site-footer--directory-signup
        .site-footer__directory-signup
        .cms-shortcode-form__actions {
        grid-column: 1;
    }

    .site-footer--directory-signup
        .site-footer__directory-signup
        .cms-shortcode-form__submit {
        inline-size: 100%;
        border: 1px solid var(--site-footer-fg);
        border-radius: var(--bs-btn-border-radius);
        background: var(--site-footer-fg);
        color: var(--site-footer-bg);
        overflow: visible;
        text-indent: 0;
        white-space: normal;
    }

    .site-footer--directory-signup
        .site-footer__directory-signup
        .cms-shortcode-form__submit::before {
        display: none;
    }

    .site-footer__bottom-inner,
    .site-footer__bottom-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (min-width: 36rem) {
    .site-footer__directory-grid--2,
    .site-footer__directory-grid--3,
    .site-footer__directory-grid--4,
    .site-footer__directory-grid--5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 64rem) {
    .site-footer__directory-grid--2 {
        grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    }

    .site-footer__directory-grid--3 {
        grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
    }

    .site-footer__directory-grid--4 {
        grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr));
    }

    .site-footer__directory-grid--5 {
        grid-template-columns: minmax(0, 1.25fr) repeat(4, minmax(0, 1fr));
    }
}

.site-footer__legal :is(ul, li) {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__legal a {
    padding-inline: 0;
}
