html {
    scroll-behavior: smooth;
}

body {
    --calc-offset: calc(((var(--data-fullwidth, 100vw) - var(--wp--style--global--content-size))) / 2);
    --calc-offset-wide: calc(((var(--data-fullwidth, 100vw) - var(--wp--style--global--wide-size))) / 2);
}

* {
    box-sizing: border-box;
}

.is-vertically-aligned-stretch > .wp-block-template-part {
    height: 100%;
}

/* Helpers */

.align-self-center {
    align-self: center;
}

.align-self-stretch {
    align-self: stretch;
}

/* Empty blocks */

.wp-block-template-part:empty,
.wp-block-column:empty,
.wp-block-heading:empty,
.wp-block-buttons:empty {
    display: none;
}

/* Block Styles */

:root :where(.is-style-size-fill),
:root :where(.is-style-size-fill > img) {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

:root :where(.is-style-size-fill > img) {
    height: inherit !important;
}

/* Menu block styles */

.wp-block-menu .menu--footer {
    --menu-gap: var(--wp--preset--spacing--40);

    align-items: flex-start;
}

.wp-block-menu .menu--footer .menu-item > a {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 0.125em;
    transition: all 0.25s ease-out;
    transition-property: color, text-decoration-color;
}

.wp-block-menu .menu--footer > .menu-item > a {
    color: var(--wp--preset--color--primary);
    font-weight: bold;
    position: relative;
    text-transform: uppercase;
}

.wp-block-menu .menu--footer .menu-item > a:focus,
.wp-block-menu .menu--footer .menu-item > a:hover {
    color: var(--wp--preset--color--primary);
    text-decoration-color: currentcolor;
}

.wp-block-menu .menu--footer > .menu-item > a:focus,
.wp-block-menu .menu--footer > .menu-item > a:hover {
    color: var(--wp--preset--color--contrast);
}

.wp-block-menu .menu--footer .menu-item > a:active,
.wp-block-menu .menu--footer > .menu-item > a:active {
    color: var(--wp--preset--color--accent);
    transition-duration: 1ms;
}

.wp-block-menu .menu--footer > .menu-item > a::before,
.wp-block-menu .menu--footer > .menu-item > .sub-menu > .menu-item-has-children > a::before {
    border-bottom: 0.25em solid transparent;
    border-left: 0.375em solid currentcolor;
    border-top: 0.25em solid transparent;
    color: var(--wp--preset--color--accent);
    display: inline-block;
    height: 0;
    margin-right: 0.25em;
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
}

.wp-block-menu .menu--footer .sub-menu {
    padding-left: 0;
}

.wp-block-menu .menu--footer .menu-item .sub-menu > .menu-item-has-children > a {
    font-weight: bold;
    position: relative;
    text-transform: uppercase;
}

.wp-block-menu .menu--footer > .menu-item > .sub-menu > .menu-item-has-children > a::before {
    content: '';
}

@media screen and (max-width: 599px) {
    .wp-block-menu .menu--footer {
        --menu-gap: var(--wp--preset--spacing--50);

        flex-direction: column;
        padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
    }

    .wp-block-menu .menu--footer .menu-item {
        width: 100%;
    }

    .wp-block-menu .menu--footer > .menu-item {
        border-bottom: 1px solid var(--wp--preset--color--neutral);
        padding-bottom: var(--menu-gap);
    }

    .wp-block-menu .menu--footer > .menu-item > .sub-menu {
        gap: var(--wp--preset--spacing--30);
        padding-left: var(--wp--preset--spacing--40);
    }

    .wp-block-menu .menu--footer > .menu-item > a::before {
        content: '';
    }
}

/* Details block styles */

.wp-block-details.is-style-faq {
    border-left-width: 0;
    border-right-width: 0;
}

.wp-block-details.is-style-faq + .wp-block-details.is-style-faq {
    border-top-width: 0;
    margin-top: 0;
}

.wp-block-details.is-style-faq > summary {
    color: var(--wp--preset--color--primary);
    font-size: var(--wp--preset--font-size--large);
    font-weight: bold;
    list-style-type: none;
    padding-bottom: var(--wp--preset--spacing--40);
    padding-right: var(--wp--preset--spacing--50);
    padding-top: var(--wp--preset--spacing--40);
    position: relative;
}

.wp-block-details.is-style-faq > summary::after {
    color: var(--wp--preset--color--accent);
    content: '+';
    font-size: 2rem;
    font-weight: 300;
    padding-left: 0.25em;
    padding-right: 0.25em;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.5s ease-out;
    transition-property: color, transform;
}

.wp-block-details.is-style-faq[open] {
    padding-bottom: var(--wp--preset--spacing--40);
}

.wp-block-details.is-style-faq[open] > summary::after {
    color: var(--wp--preset--color--primary);
    transform: translateY(-50%) rotate(225deg);
}

/* Columns block styles */

@media screen and (min-width: 782px) {
    .wp-block-columns.is-style-inner-border > .wp-block-column {
        border-bottom-width: 0;
        border-top-width: 0;
    }

    .wp-block-columns.is-style-inner-border > .wp-block-column:first-of-type {
        border-left-width: 0;
    }

    .wp-block-columns.is-style-inner-border > .wp-block-column:last-of-type {
        border-right-width: 0;
    }
}

@media screen and (max-width: 781px) {
    .wp-block-columns.is-style-inner-border > .wp-block-column {
        border-width: 1px;
        border-left-width: 0;
        border-right-width: 0;
    }

    .wp-block-columns.is-style-inner-border > .wp-block-column:first-of-type {
        border-top-width: 0;
    }

    .wp-block-columns.is-style-inner-border > .wp-block-column:last-of-type {
        border-bottom-width: 0;
    }
}

/* Media & Text block styles */

.wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content {
    padding-left: 0;
}

@media screen and (max-width: 600px) {
    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
        padding-left: 0;
        padding-top: var(--wp--preset--spacing--40);
    }
}

/* Pagination block styles */

.wp-block-query-pagination {
    --pagination-gap: 0.25em;

    gap: var(--pagination-gap);
}

.wp-block-query-pagination-next,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-numbers > .page-numbers {
    transition: all 0.25s ease-out;
    transition-property: background-color, color;
}

.wp-block-query-pagination-numbers > .page-numbers {
    background-color: var(--wp--preset--color--accent);
    padding-block: var(--wp--preset--spacing--30);
    padding-inline: var(--wp--preset--spacing--40);
}

.wp-block-query-pagination-next:focus,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:focus,
.wp-block-query-pagination-previous:hover {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--accent);
}

.wp-block-query-pagination-next:focus,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:focus,
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-numbers > .page-numbers:focus,
.wp-block-query-pagination-numbers > .page-numbers:hover {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--accent);
}

.wp-block-query-pagination-numbers > .page-numbers:focus,
.wp-block-query-pagination-numbers > .page-numbers:hover {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--accent);
}

.wp-block-query-pagination-numbers > .page-numbers.current {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--accent);
}

.wp-block-post-featured-image {
    max-width: 100%;
}

/* Hover image card styles */

.hover-image-button {
    border-bottom-right-radius: 1.875rem;
    overflow: hidden;
    position: relative;
}

.hover-image-button img {
    transform: scale(1);
    transition: transform 0.25s ease-in-out;
}

.hover-image-button:hover img {
    transform: scale(1.1);
}

.hover-image-button .wp-block-button > .wp-block-button__link {
    align-items: flex-end;
    background-color: transparent;
    display: flex;
    font-size: 0;
    inset: 0;
    justify-content: flex-end;
    padding: 0;
    position: absolute;
}

.hover-image-button .wp-block-button > .wp-block-button__link::after {
    background-color: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--primary);
    content: 'View All';
    font-size: var(--wp--preset--font-size--medium);
    padding: calc(0.667em + 2px) calc(1.333em + 2px);
    transition: all 0.25s ease;
    transition-property: background-color, color;
}

.hover-image-button .wp-block-button > .wp-block-button__link:hover::after,
.hover-image-button:hover .wp-block-button > .wp-block-button__link::after {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--base);
}

/* button styles */

.wp-block-button .wp-block-button__link.has-primary-background-color:hover {
    background-color: var(--wp--preset--color--accent) !important;
    color: var(--wp--preset--color--primary) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--primary) !important;
    border-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base) !important;
}

/* Overflow styles */

.alignwide .is-style-overflow-right,
.alignwide .is-style-overflow-left {
    width: calc(100% + var(--calc-offset-wide)) !important;
}

.alignwide .is-style-overflow-left {
    margin-left: calc(((var(--data-fullwidth, 100vw) * -1) + var(--wp--style--global--wide-size)) / 2);
}

.alignwide .is-style-overflow-left > .wp-block-group.is-layout-constrained {
    margin-left: calc(((var(--data-fullwidth, 100vw)) - var(--wp--style--global--wide-size)) / 2) !important;
}

.alignwide .is-style-overflow-right > .wp-block-group.is-layout-constrained {
    margin-right: calc(((var(--data-fullwidth, 100vw)) - var(--wp--style--global--wide-size)) / 2) !important;
}

@media screen and (max-width: 102rem) {
    .alignwide .is-style-overflow-right,
    .alignwide .is-style-overflow-left {
        width: calc(100% + var(--wp--style--root--padding-left)) !important;

        & > .wp-block-group.is-layout-constrained {
            margin-left: 0 !important;
            margin-right: 0 !important;
        }
    }

    .alignwide .is-style-overflow-right > .wp-block-group.is-layout-constrained {
        padding-right: var(--wp--style--root--padding-right);
    }

    .alignwide .is-style-overflow-left > .wp-block-group.is-layout-constrained {
        padding-left: var(--wp--style--root--padding-left);
    }
}

@media screen and (max-width: 88rem) {
    .is-style-overflow-left {
        margin-left: calc(var(--wp--style--root--padding-left) * -1);

        & > .wp-block-group.is-layout-constrained {
            padding-left: var(--wp--style--root--padding-left);
        }
    }

    .is-style-overflow-right > .wp-block-group.is-layout-constrained {
        padding-right: var(--wp--style--root--padding-right);
    }

    .is-style-overflow-right,
    .is-style-overflow-left {
        width: calc(100% + var(--wp--style--root--padding-left)) !important;

        & > .wp-block-group.is-layout-constrained {
            margin-left: 0 !important;
            margin-right: 0 !important;
        }
    }
}

@media screen and (max-width: 781px) {
    .is-style-overflow-left {
        margin-left: unset;
    }

    .is-style-overflow-right,
    .is-style-overflow-left,
    .alignwide .is-style-overflow-right,
    .alignwide .is-style-overflow-left {
        margin-left: calc(var(--wp--style--root--padding-left) * -1) !important;
        margin-right: calc(var(--wp--style--root--padding-right) * -1) !important;
        width: calc(100% + var(--wp--style--root--padding-left) * 2) !important;
    }
}

/* Query Loop slider */

.wp-block-post-template-slider {
    overflow-x: hidden;
    position: relative;
}

.wp-block-post-template-slider--grab-drag {
    cursor: grab;
}

.wp-block-post-template-slider.is-user-grab-drag {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.wp-block-post-template-slider-navigation {
    padding: 2rem 0;
}

.wp-block-post-template-slider-navigation-button {
    background-color: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--primary);
    padding: 1rem;
}

.wp-block-post-template-slider-navigation-button:disabled .wp-block-post-template-slider-navigation-button-icon {
    opacity: 0.5;
}

.alignfull .wp-block-post-template-slider-navigation {
    padding-left: var(--wp--style--root--padding-left);
    padding-right: var(--wp--style--root--padding-right);
}

/* Allows multiple block style variations */
.is-style-arrows-center .wp-block-post-template-slider-navigation {
    justify-content: center;
}

.is-style-fade-edges {
    mask-image: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, #fff 8%, #fff 92%, rgba(255, 255, 255, 0.2) 100%);
}
