/* -- FORM -------------------------------------------------- */

.ti-form {
    width: 100%;
}

.ti-form-row {
    display: flex;
    gap: 20px;
}

.ti-form-group {
    margin-bottom: 20px;
    width: 100%;
}

.ti-form-group:has(.ti-form-textarea) {
    margin-bottom: 0;
}

.ti-form label {
    display: block;
    margin-bottom: 10px;
    color: var(--ti-ldm-color-black-white);
    font-size: var(--ti-font-size);
    width: 100%;
}

.ti-checkbox-label {
    cursor: pointer;
}

.ti-form-input,
.ti-form-textarea {
    width: 100%;
    padding: 5px 10px;
    background-color: var(--ti-ldm-color-element);
    color: var(--ti-ldm-color-black-white);
    border: var(--ti-ldm-border);
    border-radius: var(--ti-border-radius-sm);
    font-size: var(--ti-font-size);
    line-height: var(--ti-line-height);
    transition: border-color 0.3s ease;
}

.ti-form-input.ti-invalid,
.ti-form-textarea.ti-invalid {
    border: 1px solid var(--ti-color-red);
}

.ti-form-input.ti-valid,
.ti-form-textarea.ti-valid {
    border: 1px solid var(--ti-color-green-light);
}

.ti-form-textarea {
    min-height: 120px;
    resize: vertical;
    overflow: auto;
}

.ti-form-textarea-counter {
    height: 20px;
    font-weight: 500;
    font-size: var(--ti-font-size);
    color: var(--ti-ldm-color-black-white);
    display: block;
    text-align: right;
    margin-top: 10px;
}

.ti-form-textarea-counter.counter-over-limit {
    color: var(--ti-color-red);
    font-weight: 600;
}

.ti-form-input::placeholder,
.ti-form-textarea::placeholder {
    color: var(--ti-ldm-color-muted);
}

.ti-form-field-required::after {
    content: ' *';
    color: var(--ti-color-red);
    font-weight: 600;
}

.ti-form-submit-button.loading {
    opacity: 0.5;
    cursor: not-allowed;
}

.ti-form-submit-button i {
    font-size: 17px;
}

.ti-form-success-message-container,
.ti-form-error-message-container {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    position: relative;
    transition: opacity 0.6s ease;
}

.ti-form-success-message-container p,
.ti-form-error-message-container p {
    color: var(--ti-ldm-color-black-white);
}

.ti-form-success-message-container .ti-form-success-message-icon,
.ti-form-error-message-container .ti-form-error-message-icon {
    font-size: 17px;
    margin-top: 4px;
}

.ti-form-success-message-container .ti-form-success-message-icon {
    color: var(--ti-color-green-light);
}

.ti-form-error-message-container .ti-form-error-message-icon {
    color: var(--ti-color-yellow);
}

.ti-form-success-message-container .ti-form-success-message-icon::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 7px;
    width: 12px;
    height: 12px;
    background-color: var(--ti-color-white);
    border-radius: 50%;
    z-index: -1;
}

.ti-form-error-message-container .ti-form-error-message-icon::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 9px;
    width: 10px;
    height: 10px;
    background-color: var(--ti-color-black);
    border-radius: 50%;
    z-index: -1;
}

.ti-form-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* -- Radio Form ---------------------------------------- */

.ti-radio-form,
.ti-radio-form-group {
    width: 100%;
}

.ti-radio-item-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ti-radio-text {
    color: var(--ti-ldm-color-black-white);
}

.ti-radio-form .ti-button {
    margin-top: 15px;
}
