.form {
    display: inline-flex;
    flex-direction: column;
    gap: 20px;
}

.form-input {
    padding: 10px 15px;
    font-size: 16px;
    font-weight: 500;
    border: 1px solid white;
    background-color: white;
    color: var(--main-color-3);
    border-radius: 6px;
    width: 100%;
    transition-duration: .1s;
    height: var(--size-l);
}

.form-input::placeholder {
    font-weight: 400;
    font-size: 16px;
    color: #B7B7B7;
}

.form-input:focus {
    background-color: rgb(245, 245, 245);
}

.form-input.error {
    border: 1px solid red;
}

.form-input[disabled] {
    opacity: .7;
}

.form-textarea {
    padding: 10px 15px;
    font-size: 16px;
    font-weight: 500;
    border: 1px solid white;
    background-color: white;
    color: var(--main-color-3);
    border-radius: 6px;
    width: 100%;
    transition-duration: .2s;
    resize: none;
    height: calc(var(--size-m) * 2);
}

.form-textarea::placeholder {
    font-weight: 400;
    font-size: 16px;
    color: #B7B7B7;
}

.form-textarea:focus {
    background-color: rgb(245, 245, 245);
}

.form-textarea.error {
    border: 1px solid red;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.form__button {
    width: 100%;
    --size: var(--size-l);
}

.checkbox {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    overflow: hidden;
    position: relative;
    padding: 0 0 0 30px;
    min-height: 22px;
}

.checkbox:after {
    content: "";
    width: 20px;
    height: 20px;
    border-radius: 3px;
    transition-duration: .1s;
    position: absolute;
    left: 0;
    background-color: white;
    border: 1px solid var(--grey-color-1);
    z-index: 1;
}

.checkbox:hover:after {
    border: 1px solid var(--grey-color-2);
}

.checkbox:before {
    content: "";
    width: 20px;
    height: 20px;
    transition-duration: .1s;
    position: absolute;
    left: 1px;
    background-image: url('../image/check.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 11px;
    border-radius: 3px;
    opacity: 0;
    visibility: hidden;
    z-index: 2;
}

.checkbox:has(.checkbox__input:checked):after {
    background: var(--main-color-1);
}

.checkbox:has(.checkbox__input:checked):before {
    opacity: 1;
    visibility: visible;
}

.checkbox__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    display: none;
}

.checkbox__label {
    width: 100%;
    font-size: 16px;
    font-weight: 400;
    color: #d9d9d9;
}

.checkbox__label a {
    text-decoration-skip-ink: none;
    background: var(--main-color-1);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-decoration: underline;
    text-decoration-color: var(--main-color-1);
}

.checkbox__label a:hover {
    text-decoration: none;
}

.checkbox:has(.checkbox__input.error):after {
    border: 1px solid red;
}