div[class*="has-primary-navy-"] {
    .wp-block-button {
        &.is-style-solid-white {
            .wp-element-button {
                &:hover {
                    --hover-color: var(--wp--preset--color--primary-orange-900);
                    --button-color: var(--wp--preset--color--white);
                }
            }
        }

        &.is-style-outline {
            .wp-element-button {
                &:hover {
                    border-color: var(--wp--preset--color--primary-orange-900);
                }
            }
        }
    }
}

.wp-block-button {
    --button-background: var(--wp--preset--color--primary-orange-900);
    --hover-color: var(--wp--preset--color--primary-navy-900);
    --button-color: var(--wp--preset--color--white);

    width: min(320px, 100%);

    .wp-element-button {
        transition:
            background-color var(--transition--timing-200),
            border-color var(--transition--timing-200);
    }

    &.is-style-brand-navy,
    &.is-style-brand-navy-condensed {
        --button-background: var(--wp--preset--color--primary-navy-900);
        --hover-color: var(--wp--preset--color--primary-orange-900);
    }

    &.is-style-brand-green {
        --button-background: var(--wp--preset--color--primary-green-900);
    }

    &.is-style-solid-white {
        --button-background: var(--wp--preset--color--white);
        --button-color: var(--wp--preset--color--primary-navy-900);
    }

    &.is-style-outline {
        --button-background: transparent;
    }

    &.is-style-brand,
    &.is-style-brand-navy,
    &.is-style-brand-green,
    &.is-style-solid-white,
    &.is-style-outline,
    &.is-style-brand-orange-outline,
    &.is-style-brand-navy-outline {
        .wp-element-button {
            background-color: var(--button-background);
            color: var(--button-color);
            border-radius: 8px;
            font-weight: 600;
            padding: 20px;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);

            &:hover {
                background-color: var(--hover-color);
                border-color: var(--hover-color);
            }
        }
    }

    &.is-style-brand-condensed,
    &.is-style-brand-navy-condensed {
        .wp-element-button {
            background-color: var(--button-background);
            color: var(--button-color);
            border-radius: 4px;
            font-weight: 600;
            padding: 8px 12px;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);

            &:hover {
                background-color: var(--hover-color);
                border-color: var(--hover-color);
            }
        }
    }

    &.is-style-outline {
        .wp-element-button {
            border: 2px solid var(--button-color);
        }
    }

    &.is-style-solid-white {
        .wp-element-button {
            text-shadow: none;
        }
    }

    &.is-style-link {
        .wp-element-button {
            background-color: transparent;
            color: inherit;
            cursor: pointer;
            border-radius: 4px;
            padding: 0;
        }
    }

    &.is-style-brand-orange-outline {
        background-color: transparent;
        border-color: var(--button-background);
        color: var(--wp--preset--color--primary-navy-900);

        &:hover {
            background-color: var(--wp--preset--color--primary-navy-900);
            border-color: var(--wp--preset--color--primary-navy-900);
            color: var(--button-color);
        }
    }

    &.is-style-brand-navy-outline {
        .wp-element-button {
            background: transparent;
            outline: 2px solid var(--wp--preset--color--primary-navy-900);
            color: var(--wp--preset--color--primary-navy-900);
            border: none;

            &:hover {
                color: var(--button-color);
            }
        }
    }
}
