.example2 label:has(+ input:required)::after {
    content: " *";
    color: #e74c3c;
    font-weight: bold;
}

.example2 label:has(+ input:optional)::after {
    content: " (optional)";
    color: #7f8c8d;
    font-size: 0.9em;
    font-weight: normal;
}

.example2 input:required:focus {
    outline: 2px solid #e74c3c;
    outline-offset: 2px;
}

.example2 input:optional:focus {
    outline: 2px solid #27ae60;
    outline-offset: 2px;
}

.example2 label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.example2 input {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 2px solid #ecf0f1;
    border-radius: 6px;
    transition: all 0.3s ease;
}