/* Giving page additions; existing site typography, palette, buttons and layout remain authoritative. */
.donation-page { --donation-ink: #1e2d4d; --donation-gold: #bd9854; }
.donation-banner { background: linear-gradient(120deg, rgba(30,45,77,.96), rgba(78,37,48,.88)); color: #fff; padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.donation-banner h1 { max-width: 760px; margin: .45rem 0 .85rem; color: #fff; font-family: var(--font-display, Georgia, serif); font-size: clamp(2.5rem, 6vw, 4.7rem); line-height: 1.06; }
.donation-banner p { max-width: 620px; margin: 0; color: rgba(255,255,255,.88); font-size: 1.08rem; }
.donation-eyebrow { display: inline-block; color: var(--donation-gold); font-size: .77rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.donation-layout { display: grid; grid-template-columns: minmax(250px,.82fr) minmax(0,1.18fr); gap: clamp(2rem,6vw,5.5rem); align-items: start; padding-top: 1rem; padding-bottom: 4rem; }
.donation-story { position: sticky; top: 1.5rem; padding: 1.4rem 0; }
.donation-story h2,.donation-registration h2 { color: var(--donation-ink); font-family: var(--font-display,Georgia,serif); font-size: clamp(1.9rem,4vw,3rem); line-height: 1.12; }
.donation-story>p { color: #586174; line-height: 1.75; }
.donation-impact { display: grid; gap: 1.25rem; margin: 2rem 0; padding: 0; list-style: none; }
.donation-impact li { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; align-items: start; }
.donation-impact li>span { color: var(--donation-gold); font-weight: 700; }
.donation-impact h3,.donation-help h3 { margin: 0 0 .2rem; color: var(--donation-ink); font-size: 1rem; }
.donation-impact p,.donation-help p { margin: 0; color: #586174; line-height: 1.65; }
.donation-help { margin-top: 2rem; padding: 1.1rem 1.2rem; border-left: 3px solid var(--donation-gold); background: #f8f6f2; }
.donation-help p+p { margin-top: .55rem; }
.donation-card { min-width: 0; padding: clamp(1.15rem,4vw,2.1rem); border: 1px solid #e7e8eb; border-radius: 18px; background: #fff; box-shadow: 0 16px 50px rgba(30,45,77,.09); }
.donation-card-heading h2 { margin: .25rem 0; color: var(--donation-ink); font-family: var(--font-display,Georgia,serif); font-size: 1.8rem; }
.donation-card-heading>p { margin: 0 0 1.4rem; color: #657084; line-height: 1.55; }
.donation-notice { margin: 1rem 0; padding: .9rem 1rem; border: 1px solid #e2c892; border-radius: 10px; background: #fff8e9; color: #55431e; line-height: 1.5; }
.donation-card fieldset { min-width: 0; }
.donation-card>form>fieldset[disabled] { opacity: .72; }
.donation-group { margin: 0 0 1.25rem; padding: 1.15rem; border: 1px solid #e6e8ed; border-radius: 12px; }
.donation-group legend { padding: 0 .35rem; color: var(--donation-ink); font-weight: 700; }
.donation-group legend>span { display: inline-grid; width: 1.6rem; height: 1.6rem; margin-right: .3rem; place-items: center; border-radius: 50%; background: #f2edf0; color: #762c43; font-size: .8rem; }
.donation-frequency { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin: .25rem 0 1rem; }
.donation-frequency label { cursor: pointer; }
.donation-frequency input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.donation-frequency label>span { display: block; height: 100%; padding: .8rem; border: 1px solid #dfe2e8; border-radius: 10px; color: var(--donation-ink); font-weight: 700; }
.donation-frequency small,.donation-receipt small { display: block; margin-top: .15rem; color: #697385; font-size: .78rem; font-weight: 400; }
.donation-frequency input:checked+span { border-color: #762c43; background: #fbf6f7; box-shadow: inset 0 0 0 1px #762c43; }
.donation-frequency input:focus-visible+span { outline: 3px solid #a8bfdc; outline-offset: 2px; }
.donation-amounts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .5rem; margin: .9rem 0; }
.donation-amounts button { min-height: 42px; padding: .45rem .25rem; border: 1px solid #dfe2e8; border-radius: 8px; background: #fff; color: var(--donation-ink); cursor: pointer; font: inherit; font-weight: 600; }
.donation-amounts button[aria-pressed="true"] { border-color: #762c43; background: #762c43; color: #fff; }
.donation-card .form-group { min-width: 0; margin-bottom: .95rem; }
.donation-card .form-group>label { display: block; margin-bottom: .35rem; color: #303a4c; font-size: .91rem; font-weight: 600; }
.donation-card input:not([type=checkbox]):not([type=radio]),.donation-card textarea,.donation-card select { box-sizing: border-box; width: 100%; min-height: 44px; padding: .65rem .75rem; border: 1px solid #cfd4dd; border-radius: 7px; background-color: #fff; color: #222b3c; font: inherit; }
.donation-card textarea { resize: vertical; }
.donation-card input:focus-visible,.donation-card textarea:focus-visible,.donation-card select:focus-visible { outline: 3px solid #b9cadf; outline-offset: 1px; border-color: #355482; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.donation-hint { margin: .3rem 0 0; color: #667084; font-size: .82rem; line-height: 1.45; }
.donation-monthly-panel { margin: .9rem 0 .1rem; padding: 1rem; border-radius: 9px; background: #f7f6f3; }
.donation-monthly-panel>p { margin: .25rem 0 .75rem; color: #374257; line-height: 1.55; }
.donation-check { display: flex; gap: .65rem; align-items: flex-start; margin: .75rem 0; color: #364055; line-height: 1.5; }
.donation-check input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: .15rem 0 0; accent-color: #762c43; }
.donation-receipt { margin: .8rem 0; }
.donation-declarations { background: #fcfcfd; }
.donation-status { min-height: 1.4em; margin: .8rem 0; color: #455064; line-height: 1.55; }
.donation-status[data-tone="error"] { color: #9e2534; }
.donation-status[data-tone="success"] { color: #20623a; }
.donation-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.donation-actions .btn { min-height: 46px; }
.donation-actions button:disabled { cursor: not-allowed; opacity: .62; }
.donation-security { margin: .8rem 0 0; color: #697385; font-size: .82rem; line-height: 1.5; }
.donation-registration { display: grid; grid-template-columns: minmax(220px,.8fr) minmax(0,1.2fr); gap: 2rem; align-items: center; padding-top: 2rem; padding-bottom: 2rem; }
.donation-registration>div { min-width: 0; }
.donation-registration h2 { margin: .35rem 0 .75rem; font-size: clamp(1.7rem,3vw,2.35rem); }
.donation-registration p { color: #505c70; line-height: 1.65; }
.donation-registration a,.donation-help a { overflow-wrap: anywhere; }
.donation-legal-name { color: var(--donation-ink)!important; font-size: .86rem; font-weight: 700; letter-spacing: .05em; }
.donation-registration-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin: 0; }
.donation-registration-details>div { padding: .8rem; border: 1px solid #e5e6e9; border-radius: 9px; background: #fff; }
.donation-registration-details dt { color: #47536a; font-size: .82rem; line-height: 1.5; }
.donation-registration-details dd { margin: .3rem 0 0; color: var(--donation-ink); font-weight: 700; overflow-wrap: anywhere; }
.donation-sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
[hidden] { display: none!important; }
@media(max-width:800px) { .donation-layout { grid-template-columns: 1fr; gap: .5rem; padding-bottom: 2.5rem; } .donation-story { position: static; padding-bottom: 0; } .donation-story h2 br { display: none; } .donation-impact { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; } .donation-impact li { grid-template-columns: 1fr; gap: .35rem; } .donation-registration { grid-template-columns: 1fr; gap: .5rem; } }
@media(max-width:520px) { .donation-group { padding: .85rem; } .form-row { grid-template-columns: 1fr; gap: 0; } .donation-amounts { grid-template-columns: repeat(2,minmax(0,1fr)); } .donation-impact { grid-template-columns: 1fr; } .donation-impact li { grid-template-columns: 2rem 1fr; } .donation-registration-details { grid-template-columns: 1fr; } }
@media(prefers-reduced-motion:reduce) { .donation-page * { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; } }
