main,
footer,
.editor-styles-wrapper {

    /* nice balanced headers */
    & :is(h1, h2, h3, h4, h5, h6, .wp-block-button__link) {
        text-wrap-style: balance;
        hyphens: auto;
        hyphenate-limit-chars: 12 6 6;
    }

    & :is(h1, h2, h3, h4, h5, h6):first-child {
        margin-top: 1em;
    }

    &>* {
        margin-block-start: 1.5rem;
        margin-block-end: 0;
    }

    & a:not(.wp-block-button__link) {
        text-decoration: underline;
    }

    & .wp-block-file .wp-block-file__button {
        text-decoration: none;

        &:is(:hover, :focus) {
            color: inherit;
            text-decoration: underline;
        }
    }

    /* gutenberg constrain inner content */
    & .wp-block-cover__inner-container.is-layout-constrained {
        margin-inline: max(calc((100% - var(--wp--style--global--content-size)) / 2), 12px) !important;
    }

    & .wp-block-group.alignfull.is-layout-constrained:not(:has(.wp-block-cover, .wp-block-columns)) {
        padding-inline: max(calc((100% - var(--wp--style--global--content-size)) / 2), 12px) !important;
    }

    /* patterns css */
    & .wp-block-group.alignfull:is(.page-opening, .automenu) {

        &>.wp-block-cover>.wp-block-cover__inner-container {
            background: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(5px);
            border-radius: 1rem 0 1rem 0;
            padding: 1.2rem;
            width: 100%;
            margin-bottom: 50px;

            & a {
                color: inherit;
                text-decoration: underline;
            }
        }

        &>.wp-block-buttons {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 5px;

            margin-top: calc(-50px + 1em);
            margin-inline: max(calc((100% - var(--wp--style--global--content-size)) / 2), 12px) !important;

            position: relative;

            & .wp-block-button {
                display: flex;
                flex-direction: column;
            }
        }

        &:is(.automenu)>.wp-block-buttons {
            margin-top: 1rem;
            margin-inline: 0 !important;
        }

    }

    & .wp-block-group.alignfull.has-background.is-layout-constrained:not([style*="border-radius"]) {
        border-radius: 2em 0 2em 0;
        padding-block: 2rem;

        &:has(>.wp-block-buttons.is-content-justification-center:last-child) {
            margin-bottom: calc(1.5rem + 1.86rem);
            padding-bottom: 0;

            &>.wp-block-buttons.is-content-justification-center:last-child {
                transform: translateY(1.86rem);
                margin-top: 0.14rem;
            }
        }
    }

    & .wp-block-media-text.has-background:not([style*="border-radius"]) {
        border-radius: 2rem 0 2rem 0;
        overflow: auto;
    }

    /* FOOTER PATTERN */
    & .page-footer {
        margin-top: 5rem;
        padding-block: 5rem;
        padding-inline: max(calc((100% - var(--wp--style--global--wide-size)) / 2), 36px) !important;
        background-color: var(--wp--preset--color--mainlight);
        background-image: url('../images/footer-hands.svg');
        background-repeat: no-repeat;
        background-position: bottom -1rem right;

        &>.wp-block-columns {
            gap: 2rem 4rem;
        }

        & .wp-block-gallery.footer-social {

            & figure,
            img {
                width: 36px !important;
                margin: 0 auto;
            }
        }

        & .wp-block-column>.wp-block-image.size-large {
            max-width: 60vw;
            margin-inline: auto;
        }

        & a {
            color: inherit;
        }
    }

    /* ICONS */
    [class*="icon-"] {
        padding-left: 2rem;
        position: relative;

        &:before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            width: 20px;
            height: 20px;
            background-position: center center;
            background-repeat: no-repeat;
        }

        &.icon-mail {

            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            width: 100%;

            &:before {
                background-image: url('../images/icon-mail.svg');

            }
        }

        &.icon-location:before {
            background-image: url('../images/icon-location.svg');
        }

        &.icon-locations:before {
            background-image: url('../images/icon-locations.svg');
        }

        &.icon-phone:before {
            background-image: url('../images/icon-phone.svg');
        }
    }

    /* forms */

    & :is(input, select) {
        font-size-adjust: var(--wp--preset--font-family--poppins);
        font-size: var(--wp--preset--font-size--default);
        padding: .2rem .5rem;
    }

}

@media only screen and (min-width: 600px) {

    & main,
    footer,
    .editor-styles-wrapper {

        & .wp-block-group.alignfull>* {
            margin-inline: revert;
        }

        /* patterns css */
        & .wp-block-group.alignfull:is(.page-opening, .automenu) {

            &>.wp-block-cover>.wp-block-cover__inner-container {
                width: calc(167px * 2 + 1rem);
                margin-bottom: 75px;
            }

            &>.wp-block-buttons {
                display: flex;
                flex-wrap: wrap;
                flex-direction: row;
                gap: 1rem;
                margin-top: calc(-75px + 1em);

                & .wp-block-button {

                    flex-basis: 167px;

                    &>:is(a, div) {
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        padding: .5rem;
                        aspect-ratio: 3 / 2;
                        transition: all .2s ease-out;

                        &:hover {
                            filter: drop-shadow(0px 0px 5px #999);
                        }
                    }
                }

            }

            &:is(.automenu)>.wp-block-buttons {
                margin-top: 1rem;
            }

        }

        /* FOOTER PATTERN */
        .page-footer>.wp-block-columns {
            display: grid;
            grid-template-columns: 1fr 1fr;
        }

    }
}

@media only screen and (min-width: 900px) {

    & main,
    footer,
    .editor-styles-wrapper {

        /* FOOTER PATTERN */
        .page-footer>.wp-block-columns {
            display: flex;
        }

    }
}