.contact__form {
    padding: 0 16px;
}

.contact__form form {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.contact__form label {
    position: relative;
    display: flex;
    align-items: center;
    padding: 14px 10px;
    border: 1px solid #E7E7E7;
    font: 14px/21px font-secondary;
    color: var(--color-primary-600);
    transition: border 0.25s;
}

.contact__form .label--invalid:has(> input),
.contact__form .label--invalid:has(> textarea) {
    border-color: var(--color-error-100);
}

.contact__form label:hover {
    border-color: var(--color-primary-500);
}

.contact__form label:focus-within {
    outline: none;
    border-color: var(--color-primary-300);
}

.contact__form input,
.contact__form textarea {
    width: 100%;
    border: 0;
    padding: 0;
    font: 14px/21px font-secondary;
    color: var(--color-primary-600);
    background-color: transparent;
}

.contact__form textarea {
    min-height: 262px;
    min-width: 100%;
}

.form__placeholder {
    position: absolute;
    left: 10px;
    display: flex;
    color: #E7E7E7;
    transform: translate(0, 0) scale(1);
    cursor: text;
    background-color: var(--color-secondary-200);
    transition: transform 0.125s ease-out, font-size 0.125s ease-out, color 0.25s ease-out;
}

.contact__form label.label--invalid .form__placeholder {
    color: var(--color-error-100);
}

.contact__form label:hover .form__placeholder {
    color: var(--color-primary-500);
}

.contact__form label:focus-within .form__placeholder {
    color: var(--color-primary-300);
}

.contact__form textarea  + .form__placeholder {
    top: 14px;
}

.contact__form input:focus + .form__placeholder, 
.contact__form input:not(:placeholder-shown) + .form__placeholder,
.contact__form textarea:focus + .form__placeholder, 
.contact__form textarea:not(:placeholder-shown) + .form__placeholder {
    transform: translate(-10%, -25px) scale(0.8);
}

.contact__form label > svg {
    fill: var(--color-error-100);
    height: 100%;
    width: auto;
    cursor: text;
    opacity: 0;
    visibility: hidden;
    transition: all ease-out 0.25s;
}

.contact__form .label--invalid > svg {
    opacity: 1;
    visibility: visible;
}

.contact__form label.form__checkbox-label {
    align-items: flex-start;
    padding: 0 6px;
    border: 0;
    gap: 19px;
}

.checkbox-label__checkbox {
    position: relative;
    min-width: 18px;
    height: 18px;
}

.checkbox-label__checkbox input {
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
}

.checkbox-label__checkbox .checkbox__checkmark {
    position: absolute;
    top: -2px;
    left: -2px;
    width: 100%;
    height: 100%;
    border: 2px solid #707070;
    border-radius: 2px;
    transition: border-color 0.25s;
}

.checkbox__checkmark svg {
    height: 100%;
    width: 100%;
    transform: scale(1.8);
    margin-left: 10%;
    fill: #E7E7E7;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.125s ease-in, opacity 0.125s ease-in;
}

.label--invalid .checkbox-label__checkbox .checkbox__checkmark {
    border-color: var(--color-error-100);
}

.checkbox-label__checkbox input:hover + .checkbox__checkmark {
    border-color: var(--color-primary-500);
}

.checkbox-label__checkbox input:focus + .checkbox__checkmark,
.checkbox-label__checkbox input:checked + .checkbox__checkmark {
    border-color: var(--color-primary-300);
}

.checkbox-label__checkbox input:checked + .checkbox__checkmark > svg {
    visibility: visible;
    opacity: 1;
}

.contact__form label.form__checkbox-label p {
    margin: 0;
    font: 12px/16px font-primary;
    color: #E7E7E7;
}

.contact__form label + p {
    font: 11px/18px font-secondary;
    color: var(--color-error-100);
    margin: 0;
    visibility: hidden;
    opacity: 0;
    transition: all ease-out 0.25s;
}

.contact__form label.label--invalid + p {
    visibility: visible;
    opacity: 1;
}

.contact__form button {
    position: relative;
    text-transform: uppercase;
    color: var(--color-primary-400);
    font: normal normal bold 16px/21px font-primary;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--color-primary-300);
    transition: ease-out all 0.5s;
    z-index: 1;
    height: 51px;
}

.contact__form button:hover {
    color: var(--color-secondary-100);
    border-color: var(--color-primary-500);
}

.contact__form button:focus-visible {
    color: var(--color-primary-600);
    border-color: var(--color-primary-600);
    outline: unset;
}

.contact__form button:active {
    color: var(--color-primary-600);
    border-color: var(--color-primary-400);
}

.label--invalid button {
    color: var(--color-error-100);
}

.contact__form button span {
    z-index: 1;
}

.submit-button__content {
    position: absolute;
    z-index: 0;
    width: 100%;
    height: 100%;
    max-width: 0;
    border-radius: 100%;
    background-color: var(--color-primary-500);
    transition: ease-out all 0.5s;
}

.contact__form button:hover .submit-button__content {
    max-width: 100%;
    border-radius: 0;
}

.contact__form button:active .submit-button__content {
    background-color: var(--color-primary-400);
}

@media screen and (min-width: 768px) {
    .contact__form {
        padding: 0 41px;
    }

    .contact__form label {
        padding: 14px 21px;
    }

    .form__placeholder {
        left: 21px;
    }

    .contact__form label.form__checkbox-label {
        padding: 0 12px;
    }

    .contact__form label.form__checkbox-label p {
        font: 14px/19px font-primary;
    }

    .contact__form button {
        margin-top: 22px;
        font: normal normal bold 18px/24px font-primary;
        height: 62px;
    }
}

@media screen and (min-width: 912px) {
    .contact__form {
        padding: 0;
        min-width: 50%;
    }

    .contact__form label {
        padding: 13px;
    }

    .form__placeholder {
        left: 13px;
    }

    .contact__form input:focus + .form__placeholder, 
    .contact__form input:not(:placeholder-shown) + .form__placeholder,
    .contact__form textarea:focus + .form__placeholder, 
    .contact__form textarea:not(:placeholder-shown) + .form__placeholder {
        transform: translate(-10%, -24px) scale(0.8);
    }

    .contact__form textarea {
        min-height: 110px;
    }

    .contact__form label.form__checkbox-label {
        padding: 0 21px;
    }

    .contact__form label.form__checkbox-label p {
        font: 12px/16px font-primary;
    }

    .contact__form button {
        margin-top: 0;
        font: normal normal bold 16px/21px font-primary;
        height: 51px;
    }
}

@media screen and (min-width: 1200px) {
    .contact__form label {
        padding: 13px 16px;
    }

    .form__placeholder {
        left: 16px;
    }

    .contact__form textarea {
        min-height: 121px;
    }

    .contact__form label.form__checkbox-label {
        padding: 0 12px;
    }

    .contact__form label.form__checkbox-label p {
        font: 14px/19px font-primary;
    }

    .contact__form button {
        margin-top: 10px;
        font: normal normal bold 18px/24px font-primary;
        height: 62px;
    }
}

@media screen and (min-width: 1400px) {
    .contact__form {
        min-width: unset;
        width: 50%;
    }

    .contact__form form {
        gap: 30px;
    }

    .contact__form label {
        padding: 16px;
        font: 16px/25px font-secondary;
    }

    .contact__form input, .contact__form textarea {
        font: 16px/25px font-secondary;
    }

    .contact__form textarea {
        min-height: 320px;
    }

    .contact__form input:focus + .form__placeholder, 
    .contact__form input:not(:placeholder-shown) + .form__placeholder,
    .contact__form textarea:focus + .form__placeholder, 
    .contact__form textarea:not(:placeholder-shown) + .form__placeholder {
        transform: translate(-10%, -29px) scale(0.8);
    }

    .contact__form label.form__checkbox-label p {
        font: 18px/24px font-primary;
    }

    .contact__form label + p {
        font: 12px/20px font-secondary;
    }

    .contact__form button {
        margin-top: 0;
        font: normal normal bold 20px/27px font-primary;
        height: 72px;
    }
}