:root{
    --inner-width: 1080px;
    --margin: 20px;
    --main-offset-top: 0px;
    --font-awesome: "FontAwesome";
}

.inner-width{
    padding-left: var(--margin);
    padding-right: var(--margin);
    max-width: var(--inner-width);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

.vertical-center{
    display: grid;
    align-items: center;
    box-sizing: border-box;
    min-height: calc(100vh - var(--global--admin-bar--height) - var(--global--header-height) - var(--global--footer-height));
}

body > .main{
    animation-name: fadein;
    animation-duration: 300ms;
}

/* FORM */
.form_layout {
    display: grid;
    grid-gap: 40px;
    max-width: 500px;
    margin: 40px auto;
}

.form_layout form {
    display: grid;
    grid-gap: 10px;
    margin: 0;
}

.form_layout form .field {
    display: grid;
}

.form_layout form .field label{
    font-weight: var(--font-weight-bold);
}

.form_layout form .field.required label::after {
    content: attr(data-required_label);
    color: var(--color-error);
    margin-left: 10px;
    font-size: var(--font-size-1);
}

.form_layout form .field > input:not([type="number"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.form_layout form .field > select, .form_layout form .field > textarea {
    width: 100%;
}

.form_layout form .field a {
    display: contents;
    text-decoration: none;
}

/* MOBILE TOOLS */

body.mobile_tools_open {
    overflow: hidden;
}

.mobile_tools {
    position: fixed;
    width: 100%;
    height: 0;
    top: 0;
    left: 0;
    background-color: var(--color-mono-1);
    padding: 20px;
    box-sizing: border-box;
    opacity: 0;
    pointer-events: none;
    transition: opacity 300ms;
    display: none;
    z-index: 2;
    grid-template-rows: auto 1fr;
}

.mobile_tools .btn_close {
    font-size: 30px;
    line-height: 1;
    display: inline-block;
    cursor: pointer;
}

.mobile_tools .content {
    overflow: auto;
    padding: 10px 0;
}

.mobile_tools > *:nth-child(1) {
    text-align: right;
    /* position: sticky; */
    /* top: 0; */
    /* background-color: var(--color-mono-1); */
}

.btn_mobile_tools{
    display: none;
}

.grecaptcha-badge{
    z-index: 1;
}

@keyframes fadein {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@media screen and (max-width: 1024px) {
    .mobile_tools, .btn_mobile_tools {
        display: grid;
    }
    .mobile_tools_open .mobile_tools {
        opacity: 1;
        pointer-events: auto;
        height: 100%;
    }
}
