/* =========================================================
   Rising Hope Donation – Front-end form styles
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap');

.rhd-donation-form {
    font-family: 'Outfit', sans-serif !important;
    background: #fff !important;
    box-shadow: 0 5px 30px rgba(0,0,0,0.1) !important;
    border-radius: 16px !important;
    max-width: 520px !important;
    width: 100% !important;
    padding: 35px 30px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    border-top: 4px solid #4CBBAA !important;
}

/* ── Step Indicator ─────────────────────────────────────── */
.rhd-step-indicator {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 28px !important;
    gap: 0 !important;
}
.rhd-step {
    background: #F0F0F0 !important;
    color: #CBCBCB !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    transition: background 0.3s, color 0.3s !important;
    flex-shrink: 0 !important;
}
.rhd-step.rhd-active {
    background: #E95395 !important;
    color: #fff !important;
}
.rhd-step.rhd-done {
    background: #4CBBAA !important;
    color: #fff !important;
}
.rhd-step-line {
    flex: 1 !important;
    height: 2px !important;
    background: #E9E9E9 !important;
    margin: 0 6px !important;
    max-width: 60px !important;
}

/* ── Heading ─────────────────────────────────────────────── */
.rhd-donation-form h2 {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #001011 !important;
    text-align: center !important;
    margin-bottom: 24px !important;
    text-transform: capitalize !important;
}

/* ── Inner scroll area ───────────────────────────────────── */
.rhd-inner {
    max-height: 380px !important;
    overflow-y: auto !important;
    padding-right: 4px !important;
    margin-bottom: 20px !important;
}
.rhd-inner::-webkit-scrollbar { width: 4px !important; }
.rhd-inner::-webkit-scrollbar-track { background: #f0f0f0 !important; border-radius: 4px !important; }
.rhd-inner::-webkit-scrollbar-thumb { background: #4CBBAA !important; border-radius: 4px !important; }

/* ── Inputs ──────────────────────────────────────────────── */
.rhd-select,
.rhd-input {
    width: 100% !important;
    padding: 11px 14px !important;
    border: 1px solid #E9E9E9 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-family: 'Outfit', sans-serif !important;
    background: #fff !important;
    color: #001011 !important;
    margin-bottom: 14px !important;
    box-sizing: border-box !important;
    transition: border 0.25s, box-shadow 0.25s !important;
}
.rhd-select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234CBBAA'%3e%3cpath d='M7 10l5 5 5-5z'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 18px !important;
}
.rhd-textarea {
    resize: vertical !important;
    min-height: 80px !important;
}
.rhd-input:focus,
.rhd-select:focus {
    border-color: #4CBBAA !important;
    box-shadow: 0 0 0 3px rgba(76,187,170,0.15) !important;
    outline: none !important;
}
.rhd-input.rhd-error {
    border-color: #e53935 !important;
}

/* ── Toggle groups (Frequency / Fund) ───────────────────── */
.rhd-toggle-group {
    display: flex !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
}
.rhd-toggle-group input[type="radio"] { display: none !important; }
.rhd-toggle-group label {
    flex: 1 !important;
    background: #fff !important;
    border: 1px solid #E9E9E9 !important;
    border-radius: 8px !important;
    padding: 10px !important;
    text-align: center !important;
    cursor: pointer !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    color: #CBCBCB !important;
    transition: 0.25s !important;
}
.rhd-toggle-group input:checked + label {
    background: #4CBBAA !important;
    border-color: #4CBBAA !important;
    color: #fff !important;
}

/* ── Amount grid ─────────────────────────────────────────── */
.rhd-amount-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
}
.rhd-amount-grid input[type="radio"] { display: none !important; }
.rhd-amount-grid label {
    padding: 12px 8px !important;
    text-align: center !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #001011 !important;
    background: #fff !important;
    border: 1px solid #E9E9E9 !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05) !important;
    transition: 0.25s !important;
}
.rhd-amount-grid label:hover {
    border-color: #4CBBAA !important;
}
.rhd-amount-grid input[type="radio"]:checked + label {
    border-color: #4CBBAA !important;
    color: #004346 !important;
    font-weight: 600 !important;
    background: #f0faf9 !important;
}
.rhd-amount-grid label.rhd-error {
    border-color: #e53935 !important;
    color: #e53935 !important;
}

/* ── Custom amount ───────────────────────────────────────── */
#rhd-custom-amount-wrap {
    margin-bottom: 14px !important;
}
#rhd-custom-amount {
    margin-bottom: 0 !important;
}

/* ── Bank box ────────────────────────────────────────────── */
.rhd-bank-box {
    background: #f8fffe !important;
    border: 1px solid #d0f0ec !important;
    border-radius: 10px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
    font-size: 14px !important;
    line-height: 2 !important;
    color: #001011 !important;
}
.rhd-bank-box strong { color: #004346 !important; }

/* ── Summary ─────────────────────────────────────────────── */
.rhd-summary-box {
    background: #fff8ff !important;
    border: 1px solid #f0d0e5 !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    margin-bottom: 16px !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
    color: #001011 !important;
}
.rhd-summary-box strong { color: #E95395 !important; }

/* ── Upload ──────────────────────────────────────────────── */
.rhd-upload-section { margin-bottom: 16px !important; }
.rhd-upload-label {
    display: block !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    margin-bottom: 8px !important;
    color: #001011 !important;
}
.rhd-upload-section input[type="file"] {
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    cursor: pointer !important;
    width: 100% !important;
}
.rhd-upload-section input[type="file"]::file-selector-button {
    background: #4CBBAA !important;
    color: #fff !important;
    border: none !important;
    padding: 8px 16px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 500 !important;
    margin-right: 10px !important;
}
.rhd-upload-section input[type="file"]::file-selector-button:hover { opacity: 0.85 !important; }
.rhd-note {
    font-size: 12px !important;
    color: #999 !important;
    margin-top: 6px !important;
}

/* ── GDPR ────────────────────────────────────────────────── */
.rhd-gdpr-wrap { margin-bottom: 10px !important; }
.rhd-gdpr-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    font-size: 12px !important;
    color: #555 !important;
    cursor: pointer !important;
    line-height: 1.5 !important;
}
.rhd-gdpr-label input[type="checkbox"] {
    margin-top: 2px !important;
    flex-shrink: 0 !important;
    accent-color: #4CBBAA !important;
}

/* ── Buttons ─────────────────────────────────────────────── */
.rhd-btn-wrap { display: flex !important; justify-content: center !important; }
.rhd-btn-group { display: flex !important; gap: 10px !important; }
.rhd-btn-group .rhd-btn { flex: 1 !important; }

.rhd-btn {
    padding: 11px 20px !important;
    background: #fff !important;
    color: #4CBBAA !important;
    border: 1.5px solid #4CBBAA !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    font-family: 'Outfit', sans-serif !important;
    cursor: pointer !important;
    transition: 0.25s !important;
    box-shadow: 0 2px 8px rgba(76,187,170,0.1) !important;
    width: 60% !important;
}
.rhd-btn:hover { background: #4CBBAA !important; color: #fff !important; }
.rhd-btn:active { background: #2AA18F !important; color: #fff !important; }

.rhd-btn-back {
    background: #fff !important;
    border-color: #E9E9E9 !important;
    color: #999 !important;
    width: auto !important;
    padding: 11px 18px !important;
    flex: 0 !important;
}
.rhd-btn-back:hover {
    background: #f5f5f5 !important;
    color: #555 !important;
    border-color: #ccc !important;
}

/* ── Hidden ──────────────────────────────────────────────── */
.rhd-hidden { display: none !important; }

/* ── Error message ───────────────────────────────────────── */
.rhd-form-error {
    background: #fff0f0 !important;
    border: 1px solid #f5c6cb !important;
    color: #721c24 !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    margin-bottom: 14px !important;
    display: none !important;
}
.rhd-form-error.show { display: block !important; }

/* ── Spinner ─────────────────────────────────────────────── */
.rhd-spinner {
    display: none !important;
    width: 20px !important; height: 20px !important;
    border: 3px solid rgba(76,187,170,0.2) !important;
    border-top-color: #4CBBAA !important;
    border-radius: 50% !important;
    animation: rhd-spin 0.7s linear infinite !important;
    margin: 0 auto 12px !important;
}
@keyframes rhd-spin { to { transform: rotate(360deg) !important; } }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 480px) {
    .rhd-donation-form {
        padding: 24px 18px !important;
    }
    .rhd-donation-form h2 {
        font-size: 17px !important;
    }
    .rhd-amount-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .rhd-inner {
        max-height: 420px !important;
    }
}