.csn-donation-v2 { margin: .75rem 0; }
.csn-donation-v2 > h3 { margin-bottom: .25rem; }
.csn-donation-v2 > p { margin-bottom: .65rem; }
.csn-donation-v2 .form-group { margin-bottom: .55rem; min-width: 0; }
.csn-donation-v2 .form-group > label {
    display: block; margin-bottom: .2rem; font-size: .875rem; line-height: 1.25; font-weight: 400;
}
.csn-donation-v2 .form-control {
    width: 100%; min-width: 0; height: auto; min-height: 36px;
    padding: .35rem .55rem; font-size: .95rem; line-height: 1.4;
}
.csn-donation-v2 .csn-field-grid { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: .75rem; }
.csn-donation-v2 .csn-options {
    margin: .85rem 0; padding: .9rem;
    background: #f7f6fa; border: 0; border-radius: .6rem;
}
.csn-donation-v2 .csn-options h4 {
    margin: 0 0 .55rem; font-size: 1rem; line-height: 1.3; text-transform: none;
}
.csn-donation-v2 .csn-check { display: flex; align-items: flex-start; gap: .45rem; margin: 0 0 .6rem; line-height: 1.35; }
.csn-donation-v2 .csn-check input { flex: 0 0 auto; margin-top: .2rem; }
.csn-donation-v2 .csn-check small { font-size: .78rem; }
.csn-donation-v2 details { border: 0; padding: 0; margin-top: .65rem; }
.csn-donation-v2 summary {
    display: flex; align-items: center; justify-content: space-between; gap: .75rem;
    cursor: pointer; list-style: none; font-size: .9rem; line-height: 1.4;
    padding: .85rem 1rem; background: #fff; border: 0; border-radius: .3rem;
    box-shadow: 0 0 0 1px #e5e3e9;
}
.csn-donation-v2 summary::-webkit-details-marker { display: none; }
.csn-donation-v2 summary::after {
    content: ''; flex: 0 0 auto; width: .65rem; height: .65rem;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg); margin: -.3rem .2rem 0 .5rem;
}
.csn-donation-v2 details[open] summary { margin-bottom: .85rem; }
.csn-donation-v2 details[open] summary::after { transform: rotate(225deg); margin-top: .3rem; }
.csn-donation-v2 summary:focus-visible { outline: 2px solid #49358b; outline-offset: 3px; }
.csn-donation-v2 .csn-status:empty { display: none; }
@media (min-width: 576px) {
    .csn-donation-v2 .csn-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
    .csn-donation-v2 .csn-field-grid-address { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.csn-donation-v2 .form-group > label.csn-required { font-weight: 700; }
.csn-donation-v2 .csn-gift-options {
    margin-bottom: 1.4rem; padding: .9rem; background: #f7f6fa; border-radius: .6rem;
}
.csn-donation-v2 .csn-frequency { margin-bottom: .6rem; display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; padding: .25rem; background: #f0f1f4; border-radius: .6rem; }
.csn-donation-v2 .csn-choice { border: 1px solid #dfe2e6; border-radius: .45rem; background: white; color: inherit; font: inherit; font-weight: 600; padding: .55rem .4rem; line-height: 1.25; cursor: pointer; }
.csn-donation-v2 .csn-choice.is-selected { background: #49358b; border-color: #49358b; color: white; box-shadow: 0 1px 3px #00000012; }
.csn-donation-v2 .csn-choice:focus-visible { outline: 2px solid #49358b; outline-offset: 2px; }
.csn-donation-v2 .csn-choice:disabled { opacity: .55; cursor: not-allowed; }
.csn-donation-v2 .csn-option-note { margin: .3rem 0 .6rem; font-size: .8rem; color: #666; }
.csn-donation-v2 .csn-amount-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; margin-bottom: .6rem; }
.csn-donation-v2 .csn-sms-row { margin: -.1rem 0 .55rem; }
.csn-donation-v2 [hidden] { display: none !important; }
@media (min-width: 576px) {
    .csn-donation-v2 .csn-sms-row { width: calc(50% - .375rem); margin-left: auto; }
}

.csn-donation-v2 .csn-options { margin-top: 3rem; }
.csn-donation-v2 .csn-frequency .csn-choice { background: #f0e3f0; border-color: #e2cce2; color: #713d70; }
.csn-donation-v2 .csn-frequency .csn-choice.is-selected { background: #9f5c9e; border-color: #9f5c9e; color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.csn-donation-v2 .csn-frequency .csn-choice:not(.is-selected) .glow-heart { filter: brightness(.45); }
.csn-donation-v2 .csn-frequency .glow-heart { width: 25px; height: 25px; object-fit: contain; vertical-align: middle; }
.csn-donation-v2 .csn-monthly-consent { padding: .8rem; margin: 0 0 1rem; background: #f6f3f8; border-radius: .4rem; }
.csn-donation-v2 .csn-monthly-consent p { margin: .5rem 0 0; font-size: .85rem; }
.csn-donation-v2 .csn-dedication-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.csn-donation-v2 .csn-donate-action { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: center; margin: 2rem 0; }
.csn-donation-v2 .csn-donate-action .btn { background-color: #49358b !important; border-color: #49358b !important; color: #fff; }
.csn-donation-v2 .csn-donate-action .btn:hover { background-color: #3c2b73 !important; border-color: #3c2b73 !important; }
.csn-donation-v2 .csn-ratings { display: flex; justify-content: center; align-items: center; gap: 5px; margin: 1.1rem 0; }
.csn-donation-v2 .csn-ratings img { max-width: 25%; height: auto; }
.csn-donation-v2 .csn-ratings img:nth-child(2) { max-width: 45%; }

.csn-donation-v2 .csn-payment { margin-top: 1.5rem; }
.csn-donation-v2 .csn-payment h4 { font-size: 1rem; text-transform: none; margin-bottom: .75rem; }
.csn-donation-v2 .csn-payment-loading { color: #666; font-size: .9rem; }

.csn-donation-v2 .csn-payment-security { margin-top: 1rem; }

.csn-donation-v2 .csn-paypal { margin-top: 1rem; }
.csn-donation-v2 .csn-paypal-buttons, .csn-donation-v2 .csn-paypal-monthly-buttons { width: 100%; max-width: none; }
.csn-donation-v2 .csn-wallets { margin-top: 1rem; width: 100%; }
.csn-donation-v2 .csn-alternative-label { margin: 0; padding-top: 1.5rem; border-top: 1px solid #e1dfe7; font-size: .9rem; }
.csn-donation-v2 .csn-dafpay { margin-top: 1rem; width: 100%; }
.csn-donation-v2 .csn-dafpay chariot-button { display: block; width: 100%; }
.row:has(> div > #donate-button):not(:has(#donate-button a)) { display: none; }
.progress-row:has(~ .csn-donation-jump:not([hidden])) > div { margin-bottom: 0 !important; }
.csn-donation-jump { padding: 1.5rem 0; text-align: center; }
.csn-donation-jump[hidden] { display: none !important; }
.csn-donation-jump .btn { background: #49358b !important; border-color: #49358b !important; color: #fff; font-weight: 700; animation: csn-donate-pulse 2s ease-out infinite; }
.csn-donation-jump .btn:hover, .csn-donation-jump .btn:focus { background: #3b2b70 !important; border-color: #3b2b70 !important; color: #fff; }
.csn-donation-jump .fas { margin-left: .35rem; }
.csn-donation-v2 { scroll-margin-top: 1rem; }
@keyframes csn-donate-pulse {
    0% { box-shadow: 0 0 0 0 rgba(73, 53, 139, .4); }
    100% { box-shadow: 0 0 0 9px rgba(73, 53, 139, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .csn-donation-jump .btn { animation: none; }
}

.csn-donation-v2 .csn-choice { transition: background-color .15s ease, border-color .15s ease; }
@media (hover: hover) {
    .csn-donation-v2 .csn-amount-options .csn-choice:hover:not(:disabled) { background: #f0edf7; border-color: #c9c0df; }
    .csn-donation-v2 .csn-amount-options .csn-choice.is-selected:hover:not(:disabled) { background: #3f2e78; border-color: #3f2e78; }
    .csn-donation-v2 .csn-frequency .csn-choice:hover:not(:disabled) { background: #e6d2e6; border-color: #d4b5d4; }
    .csn-donation-v2 .csn-frequency .csn-choice.is-selected:hover:not(:disabled) { background: #8e508d; border-color: #8e508d; }
}
@media (prefers-reduced-motion: reduce) {
    .csn-donation-v2 .csn-choice { transition: none; }
}

.csn-donation-v2 .csn-other-payment { margin-top: 1rem; width: 100%; }
.csn-donation-v2 .csn-other-payment > summary {
    min-height: 55px; box-sizing: border-box; justify-content: center;
    background: #87cceb; color: #fff; font-size: 1rem; font-weight: 700;
    box-shadow: none; transition: background-color .15s ease;
}
.csn-donation-v2 .csn-other-payment > summary:hover { background: #73c2e5; }
.csn-donation-v2 .csn-other-payment-info { padding: .5rem .75rem; line-height: 1.6; }
.csn-donation-v2 .csn-other-payment-info p:last-child { margin-bottom: 0; }
.csn-donation-v2 .csn-success-heading { display: flex; align-items: center; gap: 1.25rem; margin-bottom: .75rem; }
.csn-donation-v2 .csn-success-heading h3 { margin: 0; }
.csn-donation-v2 .csn-success .text-center .btn { margin-bottom: .35rem; }
.csn-donation-v2 .csn-donate-again { background-color: #49358b; border-color: #49358b; color: #fff; }
.csn-donation-v2 .csn-donate-again:hover { background-color: #3c2b73; border-color: #3c2b73; color: #fff; }

/* Keep payment failures visible on phones, including above the processing overlay. */
.csn-checkout-notice {
    position: fixed;
    z-index: 11000;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px);
    max-width: 560px;
    max-height: 65vh;
    overflow-y: auto;
    padding: 18px;
    border: 2px solid #49358b;
    border-radius: 8px;
    background: #fff;
    color: #222;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .25);
}
.csn-checkout-notice[hidden] { display: none !important; }
.csn-checkout-notice p { margin: 8px 0; }
.csn-checkout-notice pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; user-select: text; }
