.cti_form {
    position: relative;
    color: #414B5A;
}

.cti_form.loading form {
    opacity: 0.3;
    pointer-events: none;
    user-select: none;
}

.cti_form .spinner {
    display: none;
}

.cti_form .spinner svg {
    color: #E05741;
    width: 120px;
    height: 120px;
}

.cti_form.loading .spinner {
    position: absolute;
    display: block;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
}

.cti_form .form_inner {
    max-width: 530px;
    margin: 0 auto;
}

.cti_form .form_title {
    font-family: 'Nacelle', sans-serif;
    font-size: 24px;
    line-height: 1.25;
    font-weight: 600;
    padding-bottom: 16px;
}

.cti_form .form_description {
    line-height: 1.5;
    padding-bottom: 16px;
}

.cti_form .form_description p:last-child {
    margin-bottom: 0;
}

.cti_form .form_error {
    background: #ffe9e9;
    border: 1px solid #F17C7C;
    padding: 5px 10px;
    border-radius: 5px;
    margin-bottom: 15px;
    color: #ff3b3b;
}

.cti_form .form_item {
    padding-bottom: 8px;
}

.cti_form .form_item label {
    width: 100%;
}

.cti_form .form_item.hidden {
    display: none;
}

.cti_form .form_item.checkbox {
    padding: 12px 0;
    line-height: 1.5;
}

.cti_form .form_item.checkbox label {
    cursor: pointer;
}

.cti_form .form_item .form_field {
    position: relative;
}

.cti_form span.password_visibility {
    background-color: transparent;
    border-radius: 0;
    border: 0;
    color: var(--wc-form-color-text, #000);
    cursor: pointer;
    font-size: inherit;
    line-height: inherit;
    margin: 0;
    padding: 0;
    position: absolute;
    right: .7em;
    text-decoration: none;
    top: 50%;
    transform: translateY(-50%);
    -moz-osx-font-smoothing: inherit;
    -webkit-appearance: none;
    -webkit-font-smoothing: inherit;
}

.cti_form span.password_visibility::after {
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>');
    content: "";
    display: block;
    height: 22px;
    width: 22px;
}

.cti_form span.password_visibility.active::after {
    background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>');
}

.cti_form .form_item.checkbox input {
    position: relative;
    appearance: none;
    display: inline-block;
    vertical-align: middle;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 2px solid #000;
    border-radius: 3px;
    margin-right: 12px;
    cursor: pointer;
}

.cti_form .form_item.checkbox input::after {
    position: absolute;
    content: '';
    display: block;
    width: 6px;
    height: 11px;
    border: solid #000;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin: -7px 0 0 -3px;
    opacity: 0;
    top: 50%;
    left: 50%;
    transition: opacity ease-in-out 0.2s;
}

.cti_form .form_item.checkbox input:checked::after {
    opacity: 1;
}

.cti_form .form_label {}

.cti_form .form_field input {
    width: 100%;
    height: 40px;
    padding: 0 10px;
    border: 1px solid #CDDCDF;
    border-radius: 4px;
}

.cti_form .form_item.error .form_field input {
    border-color: #F17C7C;
}

.cti_form .api_error_message {
    background: #fff;
    color: #202020;
    border-radius: 5px;
    padding: 20px;
    margin-top: 16px;
}

.cti_form .api_error_message p {
    margin-top: 0;
}

.cti_form .api_error_message ul {
    list-style-type: decimal;
}

.cti_form .api_error_message li {
    padding-bottom: 10px;
}

.cti_form .api_error_message li:last-child {
    padding-bottom: 0;
}

.cti_form .form_item.submit {
    padding: 28px 0 0;
}

.cti_form .form_item.submit .form_field {
    display: flex;
    justify-content: flex-end;
}

body.woocommerce-order-activation .cti_form .form_item.submit .form_field {
    justify-content: center;
}

.cti_form.cti_sweetspot_user_match .form_item.submit .form_field {
    gap: 12px;
    flex-wrap: wrap;
}

.cti_form.cti_sweetspot_user_match .cti_user_summary {
    font-size: 16px;
    max-width: 520px;
    margin: 18px auto 14px;
    padding: 16px 18px;
    border: 1px solid #CDDCDF;
    border-radius: 12px;
    background: #F7FAFB;
    text-align: left;
}

.cti_form.cti_sweetspot_user_match .cti_user_row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 10px 16px;
    align-items: baseline;
    padding: 8px 0;
}

.cti_form.cti_sweetspot_user_match .cti_user_row + .cti_user_row {
    border-top: 1px solid rgba(205, 220, 223, 0.7);
}

.cti_form.cti_sweetspot_user_match .cti_user_label {
    font-weight: 600;
    color: #6B7280;
}

.cti_form.cti_sweetspot_user_match .cti_user_value {
    font-weight: 600;
    color: #111827;
    overflow-wrap: anywhere;
}

.cti_form.cti_sweetspot_user_match .cti_user_question {
    margin: 10px 0 0;
    text-align: center;
}

@media (max-width: 520px) {
    .cti_form.cti_sweetspot_user_match .cti_user_row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

.cti_form .form_item.submit button {
    border: none;
}

.cti_form .form_field input[name="code"] {
    text-align: center;
    letter-spacing: 0.3em;
    font-size: 24px;
    height: 52px;
}

.cti_form .cti_change_email_link {
    display: inline-block;
    margin-top: 4px;
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
}
