/* DIVINE SMART FORMS - Frontend Styles */
.divine-form-wrapper { max-width: 680px; margin: 0 auto; }
.divine-form { background: #fff; border-radius: 10px; padding: 32px; box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.divine-form-title { font-size: 22px; font-weight: 700; margin: 0 0 24px; color: #222; }
.divine-form-fields { display: flex; flex-wrap: wrap; gap: 18px; }

.divine-form-field { box-sizing: border-box; }
.divine-width-full    { width: 100%; }
.divine-width-half    { width: calc(50% - 9px); }
.divine-width-third   { width: calc(33.333% - 12px); }
.divine-width-quarter { width: calc(25% - 14px); }
@media (max-width: 600px) {
    .divine-width-half, .divine-width-third, .divine-width-quarter { width: 100%; }
}

.divine-form-field > label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; color: #444; }
.divine-required { color: #e00; margin-left: 2px; }
.divine-help-text { display: block; font-size: 12px; color: #888; margin-top: 4px; }

.divine-form input[type=text],
.divine-form input[type=email],
.divine-form input[type=tel],
.divine-form input[type=number],
.divine-form input[type=url],
.divine-form input[type=password],
.divine-form input[type=date],
.divine-form input[type=time],
.divine-form input[type=datetime-local],
.divine-form textarea,
.divine-form select {
    width: 100%; padding: 10px 13px; border: 1px solid #d1d5db; border-radius: 6px;
    font-size: 15px; box-sizing: border-box; transition: border-color .2s, box-shadow .2s;
    background: #fff; color: #333;
}
.divine-form input:focus, .divine-form textarea:focus, .divine-form select:focus {
    border-color: #667eea; box-shadow: 0 0 0 3px rgba(102,126,234,.15); outline: none;
}
.divine-form textarea { min-height: 110px; resize: vertical; }

.divine-choice-label { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 4px 0; cursor: pointer; }
.divine-radio-group, .divine-checkbox-group { display: flex; flex-direction: column; gap: 2px; }

/* Star rating */
.divine-rating-wrap { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.divine-star { font-size: 28px; color: #ddd; cursor: pointer; transition: color .15s; }
.divine-star-label input:checked ~ .divine-star,
.divine-star-label:hover ~ .divine-star-label .divine-star,
.divine-star-label:hover .divine-star { color: #f59e0b; }

/* Range */
.divine-range-wrap { display: flex; align-items: center; gap: 12px; }
.divine-range-wrap input[type=range] { flex: 1; }
.divine-range-val { font-weight: 700; min-width: 36px; text-align: center; }

/* Section break */
.divine-section-break hr { border: none; border-top: 2px solid #e0e0e0; margin: 8px 0; }
.divine-html-content { font-size: 14px; line-height: 1.6; }

/* Submit */
.divine-form-submit { margin-top: 24px; }
.divine-form-submit button {
    background: linear-gradient(135deg, #667eea, #764ba2); color: #fff;
    padding: 12px 36px; border: none; border-radius: 6px; font-size: 16px;
    font-weight: 600; cursor: pointer; transition: opacity .2s, transform .1s;
}
.divine-form-submit button:hover { opacity: .9; transform: translateY(-1px); }
.divine-form-submit button:disabled { opacity: .6; cursor: not-allowed; transform: none; }

/* Messages */
.divine-form-message { padding: 14px 18px; margin-bottom: 18px; border-radius: 6px; font-size: 15px; }
.divine-form-message.success { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.divine-form-message.error   { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.divine-error { color: #dc2626; font-size: 13px; margin-top: 4px; display: block; }
