/* ==========================================================================
   PPD Donation Request – Public Form CSS
   ========================================================================== */

.ppd-form-wrapper { max-width: 780px; margin: 0 auto; font-family: inherit; }
.ppd-form-wrapper *, .ppd-form-wrapper *::before, .ppd-form-wrapper *::after { box-sizing: border-box; }

.ppd-form-header { margin-bottom: 28px; }
.ppd-form-header h2 { font-size: 26px; margin-bottom: 8px; }
.ppd-form-header p  { color: #555; line-height: 1.6; }
.ppd-req { color: #c0392b; font-weight: bold; }

/* ── Sections ── */
.ppd-form .ppd-section {
  background: #fff; border: 1px solid #ddd; border-radius: 10px;
  padding: 26px; margin-bottom: 22px; box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.ppd-form .ppd-section legend {
  font-size: 16px; font-weight: 700; color: #2c3338;
  padding: 0 8px; margin-left: -4px;
  border-bottom: none;
}

/* ── Layout helpers ── */
.ppd-row   { display: grid; gap: 16px; }
.ppd-row-2 { grid-template-columns: 1fr 1fr; }
.ppd-row-3 { grid-template-columns: 1fr auto auto; }
.ppd-field-sm   { width: 80px; }
.ppd-field-grow { flex: 1; }

/* ── Fields ── */
.ppd-field { margin-bottom: 16px; }
.ppd-field label { display: block; margin-bottom: 5px; font-weight: 600; font-size: 14px; color: #2c3338; }
.ppd-hint { display: block; font-size: 12px; color: #888; margin-top: 4px; }
.ppd-guideline-list { margin: 0 0 24px 20px; }
.ppd-guideline-list li { margin-bottom: 8px; line-height: 1.5; }

.ppd-question {
  margin-top: 18px; padding: 18px; border-left: 4px solid #3c7a34;
  background: #f5f8f4; border-radius: 4px;
}
.ppd-question-title { margin: 0 0 10px; font-weight: 700; line-height: 1.5; }
.ppd-question > label { display: block; margin: 9px 0; font-weight: 400; line-height: 1.45; }
.ppd-question input[type="radio"] { margin-right: 8px; }
.ppd-js .ppd-application-fields { display: none; }
.ppd-js.ppd-screening-passed .ppd-application-fields { display: block; }

.ppd-screening-rejection {
  margin: 0 0 22px; padding: 22px; background: #fdf1f2;
  border: 2px solid #e9a0a0; border-radius: 10px;
}
.ppd-screening-rejection[hidden] { display: none; }
.ppd-screening-rejection h3 { margin-top: 0; color: #8f1515; }
.ppd-btn-secondary {
  display: inline-block; padding: 10px 16px; background: #2c3338; color: #fff !important;
  border-radius: 6px; text-decoration: none; font-weight: 700;
}
.ppd-btn-secondary:hover, .ppd-btn-secondary:focus { background: #15191c; color: #fff; }

.ppd-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.ppd-field input[type="text"],
.ppd-field input[type="email"],
.ppd-field input[type="tel"],
.ppd-field input[type="url"],
.ppd-field input[type="date"],
.ppd-field input[type="number"],
.ppd-field select,
.ppd-field textarea {
  width: 100%; padding: 10px 13px; border: 1px solid #ccc; border-radius: 6px;
  font-size: 15px; background: #fafafa; box-sizing: border-box;
  transition: border-color .18s, box-shadow .18s;
}
.ppd-field input:focus,
.ppd-field select:focus,
.ppd-field textarea:focus {
  outline: none; border-color: #3c7a34; background: #fff;
  box-shadow: 0 0 0 3px rgba(60,122,52,.12);
}
.ppd-field input.ppd-error, .ppd-field select.ppd-error, .ppd-field textarea.ppd-error {
  border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.1);
}

.ppd-check-label { display: flex; align-items: flex-start; gap: 10px; font-weight: normal; cursor: pointer; line-height: 1.5; }
.ppd-check-label input[type="checkbox"] { width: auto; margin-top: 3px; flex-shrink: 0; }
.ppd-taxid-input { margin-top: 10px !important; }
.ppd-taxid-input[hidden] { display: none !important; }
input[readonly] { background: #f0f0f0 !important; color: #555; }

/* ── Section agree ── */
.ppd-section-agree { background: #f7f7f7; border-color: #e0e0e0; }

/* ── reCAPTCHA ── */
.ppd-recaptcha { margin-top: 18px; }
.ppd-recaptcha .g-recaptcha { min-height: 78px; }
.ppd-recaptcha-message { margin: 8px 0 0; font-size: 14px; }
.ppd-recaptcha-error { color: #a61717; font-weight: 600; }
.ppd-recaptcha-privacy { margin: 9px 0 0; color: #666; font-size: 12px; line-height: 1.5; }
.ppd-recaptcha-privacy a { text-decoration: underline; }

/* ── Submit button ── */
.ppd-btn-submit {
  display: block; width: 100%; margin-top: 18px; padding: 14px;
  background: #3c7a34; color: #fff; border: none; border-radius: 8px;
  font-size: 17px; font-weight: 700; cursor: pointer; letter-spacing: .2px;
  transition: background .18s;
}
.ppd-btn-submit:hover  { background: #2d5e28; }
.ppd-btn-submit:active { transform: scale(.995); }
.ppd-btn-submit:disabled { background: #aaa; cursor: not-allowed; }
.ppd-btn-submit.ppd-btn-danger { background: #a61717; }
.ppd-btn-submit.ppd-btn-danger:hover { background: #7f1111; }
.ppd-btn-loading[hidden], .ppd-btn-text[hidden] { display: none; }

/* ── Error banner ── */
.ppd-error-banner {
  padding: 12px 16px; background: #fdf1f2; border: 1px solid #e9a0a0;
  border-radius: 6px; color: #a61717; margin-bottom: 20px; font-weight: 500;
}

/* ── Confirmation ── */
.ppd-confirm {
  max-width: 600px; margin: 40px auto; padding: 40px 36px;
  border-radius: 12px; text-align: center;
}
.ppd-confirm-approved { background: #edfaef; border: 2px solid #6fbe80; }
.ppd-confirm-denied   { background: #fdf1f2; border: 2px solid #e9a0a0; }
.ppd-confirm-pending  { background: #fff8e5; border: 2px solid #d7a422; }
.ppd-confirm-icon { font-size: 56px; margin-bottom: 14px; }
.ppd-confirm-approved .ppd-confirm-icon { color: #1a7f37; }
.ppd-confirm-denied   .ppd-confirm-icon { color: #a61717; }
.ppd-confirm h2  { font-size: 24px; margin-bottom: 14px; }
.ppd-confirm p   { font-size: 15px; line-height: 1.7; color: #444; }
.ppd-approval-page { max-width: 760px; text-align: left; }
.ppd-approval-page > .ppd-confirm-icon, .ppd-approval-page > h2 { text-align: center; }
.ppd-approval-details { margin: 24px 0; padding: 24px; background: #fff; border: 1px solid #b8ddc0; border-radius: 10px; }
.ppd-approval-details h3 { margin: 0 0 10px; color: #1a5f2b; font-size: 19px; }
.ppd-approval-details h3:not(:first-child) { margin-top: 24px; }
.ppd-approval-deadline { padding: 12px 14px; background: #fff8e5; border-left: 4px solid #d7a422; }
.ppd-approval-contents { margin: 10px 0 18px 22px; }
.ppd-approval-contents li { margin-bottom: 7px; line-height: 1.5; }
.ppd-email-action-page { max-width: 720px; }
.ppd-email-action-details { margin: 24px 0; padding: 20px; background: #f7f7f7; border: 1px solid #ddd; border-radius: 8px; }
.ppd-email-action-details p { margin: 0 0 12px; line-height: 1.6; }
.ppd-email-action-details p:last-child { margin-bottom: 0; }
.ppd-email-action-result { max-width: 680px; }

/* ── Responsive ── */
@media (max-width: 620px) {
  .ppd-row-2, .ppd-row-3 { grid-template-columns: 1fr; }
  .ppd-field-sm { width: 100%; }
  .ppd-form .ppd-section { padding: 18px; }
  .ppd-confirm { padding: 26px 18px; }
	.ppd-recaptcha { overflow-x: auto; }
}
