.opengive-form {
  --og-accent: #176b56;
  --og-secondary: #2aa47f;
  --og-button: #176b56;
  --og-button-text: #fff;
  --og-surface: #fff;
  --og-header: #eff9f5;
  --og-title: #17231f;
  --og-text: #31443d;
  --og-muted: #66756f;
  --og-field-bg: #fff;
  --og-border: #bdcbc6;
  --og-selected: #e9f7f1;
  --og-progress-bg: #dfe9e5;
  --og-success: #17633b;
  --og-error: #9a332d;
  --og-max-width: 760px;
  --og-title-size: 34px;
  --og-body-size: 16px;
  --og-label-size: 14px;
  --og-padding: 34px;
  --og-gap: 17px;
  --og-border-width: 1px;
  --og-radius: 18px;
  background: var(--og-surface);
  border: var(--og-border-width) solid var(--og-border);
  border-radius: var(--og-radius);
  color: var(--og-text);
  font-size: var(--og-body-size);
  margin: 28px auto;
  max-width: var(--og-max-width);
  overflow: hidden;
}
.opengive-form--shadow-none { box-shadow: none; }
.opengive-form--shadow-soft { box-shadow: 0 18px 50px rgba(26, 66, 55, .09); }
.opengive-form--shadow-strong { box-shadow: 0 24px 70px rgba(22, 55, 45, .19); }
.opengive-form--font-system { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.opengive-form--font-serif { font-family: Georgia, "Times New Roman", serif; }
.opengive-form--font-inherit { font-family: inherit; }
.opengive-form--width-full { max-width: none; width: 100%; }
.opengive-form--corners-square { --og-radius: 0px !important; }
.opengive-form--corners-slight { --og-radius: 8px !important; }
.opengive-form * { box-sizing: border-box; }
.opengive-form__header { background: linear-gradient(135deg, var(--og-header), var(--og-surface)); padding: calc(var(--og-padding) - 4px) var(--og-padding) calc(var(--og-padding) - 12px); }
.opengive-form__image { margin: calc((var(--og-padding) - 4px) * -1) calc(var(--og-padding) * -1) 24px; max-height: 270px; overflow: hidden; }
.opengive-form__image img { display: block; height: 270px; object-fit: cover; width: 100%; }
.opengive-form__header h2 { color: var(--og-title); font-size: clamp(1.35rem, 4vw, var(--og-title-size)); line-height: 1.15; margin: 7px 0 10px; }
.opengive-form__eyebrow { color: var(--og-accent); font-size: .78em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.opengive-form__description, .opengive-form__description p { color: var(--og-muted); margin-bottom: 0; }
.opengive-form__campaign { background: color-mix(in srgb, var(--og-header) 60%, var(--og-surface)); border-bottom: var(--og-border-width) solid var(--og-border); display: grid; gap: 12px; grid-template-columns: 1fr auto; padding: 18px var(--og-padding); }
.opengive-form__campaign strong, .opengive-form__campaign span { display: block; }
.opengive-form__campaign span { color: var(--og-muted); font-size: .84em; }
.opengive-form__campaign > b { color: var(--og-accent); }
.opengive-form__campaign > div:last-child { background: var(--og-progress-bg); border-radius: 999px; grid-column: 1 / -1; height: 9px; overflow: hidden; }
.opengive-form__campaign > div:last-child span { background: linear-gradient(90deg, var(--og-accent), var(--og-secondary)); border-radius: inherit; display: block; height: 100%; transition: width .7s ease; }
.opengive-public-form { padding: calc(var(--og-padding) - 6px) var(--og-padding) var(--og-padding); }
.opengive-fieldset { border: 0; margin: 0 0 25px; padding: 0; }
.opengive-fieldset legend, .opengive-public-form label > span:first-child { color: var(--og-title); font-size: var(--og-label-size); font-weight: 700; margin-bottom: 8px; }
.opengive-amounts { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); margin-top: 12px; }
.opengive-amount { position: relative; }
.opengive-amount input { opacity: 0; position: absolute; }
.opengive-amount span { align-items: center; background: var(--og-field-bg); border: var(--og-border-width) solid var(--og-border); border-radius: calc(var(--og-radius) * .62); color: var(--og-text); cursor: pointer; display: flex; font-weight: 750; justify-content: center; min-height: 52px; padding: 10px; transition: .18s ease; }
.opengive-amount input:focus-visible + span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--og-accent) 24%, transparent); outline: 2px solid transparent; }
.opengive-amount input:checked + span { background: var(--og-selected); border-color: var(--og-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--og-accent) 14%, transparent); color: var(--og-accent); }
.opengive-custom-amount { margin-top: 16px; }
.opengive-grid { display: grid; gap: var(--og-gap); grid-template-columns: 1fr 1fr; }
.opengive-form--stacked .opengive-grid { grid-template-columns: 1fr; }
.opengive-grid label, .opengive-field-wide, .opengive-custom-amount, .opengive-field { display: flex; flex-direction: column; }
.opengive-field--wide { grid-column: 1 / -1; }
.opengive-field legend { color: var(--og-title); font-size: var(--og-label-size); font-weight: 700; }
.opengive-field-help { color: var(--og-muted); display: block; font-size: .82em; margin: 3px 0 8px; }
.opengive-form input[type="text"], .opengive-form input[type="email"], .opengive-form input[type="tel"], .opengive-form input[type="number"], .opengive-form input[type="date"], .opengive-form select, .opengive-form textarea { background: var(--og-field-bg); border: var(--og-border-width) solid var(--og-border); border-radius: calc(var(--og-radius) * .52); color: var(--og-text); font: inherit; min-height: 47px; padding: 10px 12px; width: 100%; }
.opengive-form input:focus, .opengive-form select:focus, .opengive-form textarea:focus { border-color: var(--og-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--og-accent) 14%, transparent); outline: none; }
.opengive-field--phone > label { font-weight: 700; }
.opengive-phone-control { display: grid; gap: 8px; grid-template-columns: minmax(145px, .9fr) minmax(150px, 1.1fr); }
.opengive-phone-control select { overflow: hidden; text-overflow: ellipsis; }
.opengive-options { display: grid; gap: 9px; margin-top: 4px; }
.opengive-option { align-items: center; flex-direction: row !important; gap: 8px; }
.opengive-option input { margin: 0; }
.opengive-input-with-suffix { align-items: center; display: flex; position: relative; }
.opengive-input-with-suffix span { color: var(--og-muted); font-weight: 800; position: absolute; right: 13px; }
.opengive-field-wide { margin-top: var(--og-gap); }
.opengive-check { align-items: flex-start; display: flex; gap: 9px; margin-top: 16px; }
.opengive-check input { margin-top: 4px; }
.opengive-check span { color: var(--og-muted); font-size: .92em; font-weight: 500 !important; }
.opengive-submit { background: var(--og-button); border: 0; border-radius: calc(var(--og-radius) * .58); color: var(--og-button-text); cursor: pointer; font: inherit; font-weight: 800; margin-top: 22px; min-height: 52px; padding: 13px 22px; transition: .18s ease; width: 100%; }
.opengive-form--button-auto .opengive-submit { display: block; margin-left: auto; width: auto; }
.opengive-submit:hover { filter: brightness(.88); transform: translateY(-1px); }
.opengive-submit:focus-visible, .opengive-back:focus-visible { outline: 3px solid color-mix(in srgb, var(--og-accent) 35%, transparent); outline-offset: 3px; }
.opengive-form__footnote { color: var(--og-muted); font-size: .82em; margin: 12px 0 0; text-align: center; }
.opengive-notice { border-radius: calc(var(--og-radius) * .58); margin: 20px var(--og-padding) 0; padding: 13px 15px; }
.opengive-notice--success { background: color-mix(in srgb, var(--og-success) 11%, #fff); color: var(--og-success); }
.opengive-notice--pending { background: #fff7df; color: #765b07; }
.opengive-notice--error { background: color-mix(in srgb, var(--og-error) 9%, #fff); color: var(--og-error); }
.opengive-honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 0; }
.opengive-step[hidden] { display: none !important; }
.opengive-steps { align-items: center; display: grid; grid-template-columns: auto 1fr auto; margin: 0 0 27px; }
.opengive-steps > span { align-items: center; background: color-mix(in srgb, var(--og-header) 70%, #eee); border-radius: 999px; color: var(--og-muted); display: flex; font-size: .8em; font-weight: 800; gap: 6px; height: 34px; padding: 0 12px; }
.opengive-steps > span.is-active { background: var(--og-accent); color: #fff; }
.opengive-steps > span small { font-size: .92em; }
.opengive-steps > i { background: var(--og-progress-bg); height: 2px; }
.opengive-back { background: transparent; border: 0; color: var(--og-accent); cursor: pointer; display: block; font: inherit; font-weight: 700; margin: 12px auto 0; padding: 7px; }
.opengive-form--experience-two_panel { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(380px,1.15fr); max-width: min(1040px, var(--og-max-width)); }
.opengive-form--experience-two_panel .opengive-form__header { grid-column: 1; grid-row: 1 / span 2; padding: var(--og-padding); }
.opengive-form--experience-two_panel .opengive-form__campaign, .opengive-form--experience-two_panel .opengive-public-form { grid-column: 2; }
.opengive-form--experience-two_panel .opengive-public-form { align-self: center; }
.opengive-form--experience-two_panel .opengive-form__image { margin: calc(var(--og-padding) * -1) calc(var(--og-padding) * -1) 28px; }
.opengive-form--context-campaign { --og-max-width: 100%; }
.opengive-elementor-form--hide-description .opengive-form__description { display: none; }
.opengive-elementor-placeholder { background: #f4f7f6; border: 1px dashed #9cb0a8; border-radius: 8px; color: #52625c; padding: 18px; text-align: center; }
@media (max-width: 620px) {
  .opengive-form { --og-padding: 20px !important; }
  .opengive-grid { grid-template-columns: 1fr; }
  .opengive-phone-control { grid-template-columns: minmax(120px, .9fr) minmax(130px, 1.1fr); }
}
@media (max-width: 840px) { .opengive-form--experience-two_panel { display: block; } .opengive-form--experience-two_panel .opengive-form__header, .opengive-form--experience-two_panel .opengive-form__campaign, .opengive-form--experience-two_panel .opengive-public-form { grid-column: auto; grid-row: auto; } }
@media (prefers-reduced-motion: reduce) { .opengive-amount span, .opengive-submit, .opengive-form__campaign > div:last-child span { transition: none; } }
