/* =========================================================
   GLOBAL FORMS
   ========================================================= */


/* Text */

.form-description {
    margin-bottom: 32px;
}


/* Form */

.custom-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}


.custom-form .form-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
}


.custom-form .form-group {
    flex-shrink: 1;
    min-width: 0;
}


/* Full-width row */

.custom-form .form-row.full {
    flex-direction: column;
    align-items: stretch;
}


/* Two-column row */

.custom-form .form-row.two-columns {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
}


.custom-form .form-row.two-columns > .form-group {
    display: flex;
    flex-direction: column;
    flex: 1 1 50%;
    min-width: 250px;
}


/* Three-column row */

.custom-form .form-row.three-columns {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
}


.custom-form .form-row.three-columns > .form-group {
    display: flex;
    flex-direction: column;
    flex: 1 1 33.333%;
    min-width: 180px;
}


.custom-form input::placeholder,
.custom-form textarea::placeholder {
    color: var(--color-accent);
    opacity: 0.7;
}


/* Textarea */

.custom-form textarea {
    min-height: 6em;
    resize: vertical;
}


/* Checkbox / Radio */

.custom-form input[type="checkbox"],
.custom-form input[type="radio"] {

    width: auto;
    height: auto;
    padding: 0;
    margin: 0;

}


/* Checkbox group */

.custom-form .checkbox-group {

    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    line-height: 1.4;
}


.custom-form .checkbox-group input[type="checkbox"] {

    flex-shrink: 0;
    margin-top: 3px;

}


/* Optional label text */

.custom-form .optional {
    font-weight: normal;
    opacity: 0.7;
}


/* Submit row */

.custom-form .submit-row {
    width: 100%;
}


/* Feedback */

.form-feedback {
    text-align: center;
    font-weight: bold;
}


/* Success message */

.custom-form .success-message {
    text-align: center;
    font-weight: bold;
}


/* Honeypots */

.custom-form .honeypot {
    pointer-events: none;
}


/* Responsive */

@media (max-width: 768px) {

    .custom-form .form-row,
    .custom-form .form-row.two-columns,
    .custom-form .form-row.three-columns {

        flex-wrap: wrap;

    }

}