:root {
    --gold: #d5b812;
}

@media(max-width: 575px) {
    form {
        padding: 0 .5rem;
    }
}
.form-input {
    padding: 0;
    position: relative;
}
.form-input input, .form-input textarea, .form-input select {
    width: 100%;
    padding: .5rem;
    background: none;
    border: 1px solid var(--copy);
    margin: 3rem 0 1rem 0;
}
.form-input textarea {
    min-height: 18rem;
    max-height: 32rem;
}
.form-input select {
    cursor: pointer;
}

.form-input input:active,
.form-input input:focus,
.form-input textarea:active,
.form-input textarea:focus {
    border-color: var(--copy);
    outline: none;
    background: white;
}
.form-input label {
    position: absolute;
    top: .5rem;
    left: 0;
    pointer-events: none;
}

form.loading button {
    pointer-events: none;
}
form.loading button p {
    display: none;
}
form.loading button::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    height: 2rem;
    width: 2rem;
    border-radius: 50%;

    border-top: 3px solid var(--baseColor);
    border-right: 3px solid var(--baseColor);
    border-bottom: 3px solid transparent;
    border-left: 0 solid transparent;

    animation-name: loading;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
@keyframes loading {
    from { transform: translate(-50%, -50%) rotate(0); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
.form-input.nb input, .form-input.nb select, .form-input.nb textarea  {
    border-bottom: none;
}
@media (min-width: 992px) {
    .form-input.nt input, .form-input.nt select, .form-input.nt textarea {
        border-top: none;
    }
    .form-input.ne input, .form-input.ne select, .form-input.ne textarea  {
        border-right: none;
    }
}

.rating-input {
    margin: 2.5rem 0;
}
.rating-input svg {
    width: 2rem;
    fill: grey;
    margin-right: .5rem;
}

.rating-input .star:hover svg {
    cursor: pointer;
    fill: var(--gold);
}
.rating-input .star:hover ~ .star svg {
    fill: var(--gold);
}

.stars[data-rating='5'] .star svg,
.stars[data-rating='4'] .star:nth-child(1) ~ .star svg,
.stars[data-rating='3'] .star:nth-child(2) ~ .star svg,
.stars[data-rating='2'] .star:nth-child(3) ~ .star svg,
.stars[data-rating='1'] .star:nth-child(5) svg {
    fill: var(--gold);
}
@media (max-width: 992px) {
    .stars {
        justify-content: center;
    }
    .rating-input label {
        left: 50%;
        transform: translateX(-50%);
    }
}

.form-message {
    --message-color: var(--copy);
    padding: 2rem;
    border: 2px solid var(--message-color);
    border-radius: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    height: fit-content;
    max-height: 0;
    padding: 0 2rem;
    overflow: hidden;
    transition: .25s;
}
.form-message p {
    color: var(--message-color);
    font-weight: bold;
    margin: 0;
    font-size: 18pt;
}
.form-message ul {
    margin: 0;
}
.form-message li {
    color: var(--message-color);
}
.form-message.success, .form-message.error {
    max-height: 20rem;
    padding: 2rem;
    transition: .25s;
}
.form-message.success {
    --message-color: #206820;
}
.form-message.error {
    --message-color: #701111;
    justify-content: start;
    margin-bottom: 2rem;
}