.fav-donation-selector{
    width:100%;
    max-width:1080px;
    margin:24px auto 18px;
    box-sizing:border-box;
}
.fav-donation-selector *{box-sizing:border-box}
.fav-donation-selector__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.fav-donation-selector__card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:228px;
    padding:26px 25px 23px;
    border:1px solid #ded8ce;
    border-top:4px solid #d58c0b;
    background:#fff;
}
.fav-donation-selector__kicker{
    margin:0 0 9px!important;
    color:#c77e00;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:800!important;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.fav-donation-selector__card h3{
    margin:0 0 11px!important;
    color:#171717;
    font-size:clamp(24px,3vw,30px)!important;
    line-height:1.15!important;
    font-weight:500!important;
}
.fav-donation-selector__copy{
    margin:0 0 22px!important;
    color:#444;
    font-size:15px!important;
    line-height:1.6!important;
}
.fav-donation-selector__action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:fit-content;
    min-height:46px;
    margin-top:auto;
    padding:11px 18px;
    border:1px solid #171717;
    border-radius:0;
    background:#171717;
    color:#fff!important;
    font:inherit;
    font-size:14px;
    line-height:1.25;
    font-weight:700;
    text-decoration:none!important;
    cursor:pointer;
    transition:background-color .16s ease,border-color .16s ease,color .16s ease;
}
.fav-donation-selector__action:hover,
.fav-donation-selector__action:focus-visible{
    border-color:#c77e00;
    background:#c77e00;
    color:#fff!important;
}
.fav-donation-selector__action:focus-visible,
.fav-donation-selector__close:focus-visible{
    outline:3px solid rgba(199,126,0,.28);
    outline-offset:3px;
}
.fav-donation-selector__note{
    margin:12px 0 0!important;
    color:#666;
    font-size:12px!important;
    line-height:1.5!important;
}
.fav-donation-selector__source[hidden],
.fav-donation-selector__source-shell{display:none!important}

/* Modal de donación puntual: el checkout original se mueve aquí sin clonarlo. */
html.fav-donation-selector--modal-open,
body.fav-donation-selector--modal-open{overflow:hidden!important}
.fav-donation-selector__modal{
    position:fixed;
    inset:0;
    z-index:100000;
    display:grid;
    place-items:center;
    padding:24px;
}
.fav-donation-selector__modal[hidden]{display:none!important}
.fav-donation-selector__backdrop{
    position:absolute;
    inset:0;
    background:rgba(17,17,17,.66);
}
.fav-donation-selector__dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:min(90vh,900px);
    overflow:auto;
    background:#fff;
    border-top:4px solid #d58c0b;
    box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.fav-donation-selector__dialog-header{
    position:sticky;
    top:0;
    z-index:3;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:22px 24px 17px;
    border-bottom:1px solid #ece7df;
    background:#fff;
}
.fav-donation-selector__dialog-kicker{
    margin:0 0 5px!important;
    color:#c77e00;
    font-size:11px!important;
    line-height:1.3!important;
    font-weight:800!important;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.fav-donation-selector__dialog-title{
    margin:0!important;
    color:#171717;
    font-size:27px!important;
    line-height:1.15!important;
    font-weight:500!important;
}
.fav-donation-selector__close{
    flex:0 0 auto;
    min-height:40px;
    padding:8px 12px;
    border:1px solid #d7d0c6;
    background:#fff;
    color:#222;
    font:inherit;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}
.fav-donation-selector__close:hover{border-color:#c77e00;color:#a66500}
.fav-donation-selector__dialog-body{padding:22px 24px 26px}
.fav-donation-selector__dialog-body .fav-donations-checkout{
    width:100%;
    max-width:none;
    margin:0!important;
    box-shadow:none!important;
}

@media(max-width:720px){
    .fav-donation-selector{margin:20px auto 14px}
    .fav-donation-selector__grid{grid-template-columns:1fr;gap:14px}
    .fav-donation-selector__card{min-height:0;padding:22px 20px 21px}
    .fav-donation-selector__action{width:100%}
    .fav-donation-selector__modal{padding:0;align-items:end}
    .fav-donation-selector__dialog{
        width:100%;
        max-height:92vh;
        border-top-width:4px;
        box-shadow:0 -16px 45px rgba(0,0,0,.24);
    }
    .fav-donation-selector__dialog-header{padding:18px 18px 14px}
    .fav-donation-selector__dialog-title{font-size:24px!important}
    .fav-donation-selector__dialog-body{padding:18px 16px 22px}
}
@media(prefers-reduced-motion:reduce){
    .fav-donation-selector__action{transition:none}
}

/* 0.1.5 — modal periódico con un único scroll estable y altura basada en contenido real.
 * El iframe no hereda una altura mínima después de cargar: JS mide únicamente
 * .fav-recurring-card/.fav-recurring-shell y el modal termina tras el último elemento. */
.fav-donation-selector__dialog--recurring{
    width:min(1180px,calc(100vw - 48px));
    max-height:calc(100vh - 32px);
    overflow:auto;
    overflow-anchor:none;
}
.fav-donation-selector__dialog-body--recurring{
    position:relative;
    padding:0 22px 24px;
    min-height:320px;
    overflow:visible;
    background:#fff;
}
.fav-donation-selector__dialog-body--recurring.is-loaded{min-height:0}
.fav-donation-selector__recurring-frame{
    display:block;
    width:100%;
    min-height:0;
    height:1px;
    border:0;
    background:#fff;
    overflow-anchor:none;
}
.fav-donation-selector__frame-loading{
    position:absolute;
    inset:0;
    z-index:1;
    display:grid;
    place-items:center;
    margin:0!important;
    padding:24px;
    background:#fff;
    color:#666;
    font-size:14px!important;
}
.fav-donation-selector__frame-loading[hidden]{display:none!important}
@media(max-width:900px){
    .fav-donation-selector__dialog--recurring{
        width:min(100%,calc(100vw - 24px));
        max-height:calc(100vh - 18px);
    }
    .fav-donation-selector__dialog-body--recurring{padding:0 12px 18px;min-height:280px}
    .fav-donation-selector__dialog-body--recurring.is-loaded{min-height:0}
}
@media(max-width:720px){
    .fav-donation-selector__dialog--recurring{
        width:100%;
        max-height:100vh;
        overflow:auto;
    }
    .fav-donation-selector__dialog-body--recurring{padding:0 8px 18px;min-height:240px}
    .fav-donation-selector__dialog-body--recurring.is-loaded{min-height:0}
}


/* 0.1.6 — en móvil el modal pasa a pantalla completa real.
 * Evita recortes laterales y garantiza acceso al botón Cerrar,
 * calendario y CTA. Se añaden además safe areas de iOS. */
@media(max-width:720px){
    .fav-donation-selector__modal{
        inset:0;
        padding:0;
        place-items:stretch;
        align-items:stretch;
        justify-items:stretch;
    }
    .fav-donation-selector__dialog,
    .fav-donation-selector__dialog--recurring{
        width:100vw;
        max-width:100vw;
        min-width:0;
        height:100vh;
        max-height:100vh;
        margin:0;
        border-top-width:4px;
        border-radius:0;
        overflow-x:hidden;
        overflow-y:auto;
        overscroll-behavior:contain;
        box-shadow:none;
    }
    @supports(height:100dvh){
        .fav-donation-selector__dialog,
        .fav-donation-selector__dialog--recurring{
            height:100dvh;
            max-height:100dvh;
        }
    }
    .fav-donation-selector__dialog-header{
        gap:12px;
        align-items:flex-start;
        padding-top:calc(14px + env(safe-area-inset-top,0px));
        padding-right:calc(16px + env(safe-area-inset-right,0px));
        padding-bottom:14px;
        padding-left:calc(16px + env(safe-area-inset-left,0px));
    }
    .fav-donation-selector__dialog-header > :first-child{
        flex:1 1 auto;
        min-width:0;
    }
    .fav-donation-selector__dialog-title{
        font-size:22px!important;
        line-height:1.15!important;
        word-break:break-word;
    }
    .fav-donation-selector__close{
        flex:0 0 auto;
        min-height:44px;
        padding:10px 14px;
        white-space:nowrap;
    }
    .fav-donation-selector__dialog-body,
    .fav-donation-selector__dialog-body--recurring{
        padding-top:16px;
        padding-right:calc(14px + env(safe-area-inset-right,0px));
        padding-bottom:calc(22px + env(safe-area-inset-bottom,0px));
        padding-left:calc(14px + env(safe-area-inset-left,0px));
        min-height:0;
        overflow:visible;
    }
    .fav-donation-selector__dialog-body .fav-donations-checkout,
    .fav-donation-selector__dialog-body--recurring .fav-donations-checkout,
    .fav-donation-selector__recurring-frame{
        width:100%!important;
        max-width:100%!important;
    }
}
