:root {
    --rem: 10px;
	--color--black: #000000;
	--color--black-a1: #000000;
	--color--black-a2: #00000010;
	--color--black-a4: #00000020;
	--color--black-a8: #00000040;
	--color--black-a16: #00000080;
	--color--white: #FFFFFF;
	--color--light-gray: #E9E8E5;
	--color--light-gray-d25: #E9E8E5;
    --color--stahl-red: #CD171F;
    --color--stahl-red-b50: #E68B8F;
    --color--stahl-red-b25: #DA5157;
    --color--stahl-red-d25: #9A1117;
    --color--stahl-red-d50: #670C10;
    --color--stahl-dark-red: #8C1D20;
    --color--stahl-dark-red-b50: #C68E90;
    --color--stahl-dark-red-b25: #A95658;
    --color--stahl-dark-red-d25: #691618;
    --color--stahl-dark-red-d50: #460F10;
    --color--night-blue: #1E323B;
    --color--night-blue-b50: #8F999D;
    --color--night-blue-b25: #56656C;
    --color--night-blue-d25: #17262C;
    --color--night-blue-d50: #0F191E;
}
:root {
    --site-header--height: 8rem;
    --logo-header--width: 20rem;
    --logo-header--height: 6rem;
    --logo-header--padding-v: 1rem;
    --logo-header--padding-h: 2rem;
    --logo-header--extra-offset-bottom: calc(var(--logo-header--height) * 0.275);
    --logo-footer--width: 15rem;
    --logo-footer--padding-v: 1rem;
    --logo-footer--padding-h: 2rem;
}
/* rem */
html {
    font-size: var(--rem);
    width: 100vw;
	max-width: 100%;
    overflow-x: hidden;
}
/* stretch content */
body {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    min-height: 100vh;
	overflow-x: hidden;
}
body > * {
    width: 100%;
    flex: 0 0 auto;
}
body > main#content,
body > [data-elementor-type="single-post"] {
    flex: 1 1 auto;
}
/* admin-bar */
body {
    --admin-bar--height: 0px;
}
body.admin-bar {
    --admin-bar--height: 32px;
}
@media screen and (max-width: 782px) {
    body.admin-bar {
        --admin-bar--height: 46px;
    }
}
/* editor hidden element */
body:not(.visible)

/* transition */
a, button {
    transition: 0.4s ease all !important;
    cursor: pointer;
}
/* banner */
.e-con.banner {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 4;
}
/* stack */
.e-con {
    &.stacked {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
        > .elementor-element {
            grid-column: 1;
            grid-row: 1;

        }
    }
}
/* header coloring */
h1, h2, h3, h4, h5, h6 {
    b {
        color: var(--color--alt);
        font-weight: inherit;
    }
    i {
        color: var(--color--alt);
        font-style: inherit;
    }
}
/* aspect-ratio */
.elementor-element {
    &.full-width {
        width: 100%;
    }
    &.no-overflow {
        overflow: hidden;
    }
    &.aspect-ratio--1-1 {
        height: auto;
        aspect-ratio: 1 / 1;
    }
    &.aspect-ratio--4-3 {
        height: auto;
        aspect-ratio: 4 / 3;
    }
    &.aspect-ratio--16-9 {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}
/* image */
.elementor-widget-image {
    &.block {
        &, figure, a, img {
            display: block;
        }
    }
    &.object-fit--cover {
        figure, a, img {
            width: 100%;
            height: 100%;
        }
        img {
            object-fit: cover;
        }
    }
    &.object-position--center {
        img {
            object-position: center;
        }
    }
}
/* testimonial */
.elementor-widget-testimonial {
    &.rect {
        img {
            border-radius: unset !important;
            height: auto !important;
        }
    }
}
/* forms */
.elementor-widget-form {
    &.form-1 {
        .elementor-field-type-acceptance {
            .elementor-field-option {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                justify-content: flex-start;
                align-items: flex-start;

                input[type="checkbox"] {
                    width: 1.00em;
                    height: 1.00em;
                    margin: 0.125em 0.75em 0.125em 0;
                    cursor: pointer;
                    accent-color: var(--color--stahl-red);
                }

                label {
                    cursor: pointer;
                }
            }
        }
    }
}
/* anchor */
body:not(.elementor-editor-active) {
    .elementor-widget-menu-anchor {
        position: absolute;
        top: calc(-1 * var(--site-header--height));
    }
}
/* text */
.elementor-widget-text-editor {
    p, ul, ol {
        &:not(:last-child) {
            margin-bottom: 2rem;
        }
        &:last-child {
            margin-bottom: 0;
        }
    }
    ul, ol {
        padding-inline-start: 1.5em;
        li:not(:last-child) {
            margin-bottom: 1rem;
        }
    }
}