/* ============================================================
   Ekran wsparcia (pełnoekranowy) — / (sklep donacyjny).
   Pełny ekran telefonu, edytowalna kwota wyśrodkowana, „zł" delikatnie
   na dole po prawej, karuzela produktów na mocny swipe. Bez sugerowanych kwot.
   Brand: granat #24324A · niebieski 1473C0.
   ============================================================ */
.paywin{
    position:fixed; inset:0; z-index:1200; height:100dvh; overflow:hidden;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
    padding:max(20px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom));
    background:linear-gradient(180deg,#ffffff 0%, #e9f1fb 100%);
    font-family:'Inter',system-ui,sans-serif;
    touch-action:pan-y; -webkit-user-select:none; user-select:none;
}
.paywin[hidden]{ display:none; }

/* zamknięcie (→ strona główna) */
.paywin__close{
    position:absolute; top:14px; right:14px; z-index:3;
    width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
    background:rgba(36,50,74,.07); color:#24324a; font-size:30px; line-height:44px; text-align:center;
}
.paywin__close:hover{ background:rgba(36,50,74,.14); }

/* scena produktu — viewport (przycina sąsiednie karty toru) + tor z trzema
   kartami (poprzednia/bieżąca/następna), przesuwany na żywo przy przeciąganiu
   (prawdziwa karuzela zamiast podmiany obrazka). */
.paywin__stage{ width:100%; overflow:hidden; display:flex; align-items:center; flex-shrink:0; }
.paywin__track{ display:flex; flex-shrink:0; width:300%; transition:transform .25s ease; will-change:transform; }
.paywin__card{
    width:33.3333%; flex:0 0 33.3333%; display:flex; flex-direction:column; align-items:center; gap:16px;
    pointer-events:none;
}
.paywin__visual{
    width:min(58vw,240px); height:min(58vw,240px); display:flex; align-items:center; justify-content:center;
    transition:transform .15s ease, box-shadow .15s ease; border-radius:24px;
}
/* Sygnał odblokowania przesuwania (po przytrzymaniu produktu) — ważny
   zwłaszcza na iOS, gdzie Vibration API nie działa i to jedyny feedback. */
.paywin__card.is-unlocked .paywin__visual{ transform:scale(1.06); box-shadow:0 0 0 6px rgba(20,115,192,.18); }
.paywin__visual img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:24px; }
.paywin__visual.is-svg img{ width:64%; height:auto; border-radius:0; }
.paywin__name{ font-size:14px; letter-spacing:.18em; text-transform:uppercase; color:#5b6b82; font-weight:600; }

/* kwota — sama liczba, wyśrodkowana; „zł" delikatnie na dole po prawej */
.paywin__amount{ position:relative; display:block; width:min(440px,90vw); }
.paywin__input{
    width:100%; text-align:center; border:0; background:transparent; outline:none; padding:0;
    color:#24324a; font-weight:800; font-size:clamp(74px,24vw,140px); line-height:1;
    -moz-appearance:textfield; caret-color:#1473C0;
}
.paywin__input::-webkit-outer-spin-button,
.paywin__input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.paywin__zl{ position:absolute; right:6px; bottom:12px; font-size:19px; font-weight:400; color:#aab6c6; letter-spacing:.02em; }

.paywin__err{ margin:2px 0 0; color:#c0392b; font-size:14px; font-weight:600; text-align:center; }
.paywin__err[hidden]{ display:none; }

/* kropki produktów */
.paywin__dots{ display:flex; gap:8px; }
.paywin__dot{ width:8px; height:8px; border-radius:50%; background:#cdd8e6; transition:transform .2s ease, background .2s ease; }
.paywin__dot.is-on{ background:#1473C0; transform:scale(1.4); }

/* KUP */
.paywin__form{ width:min(440px,90vw); }
.paywin__btn{
    width:100%; height:56px; border:0; border-radius:14px; cursor:pointer;
    background:#24324a; color:#f5f5f5; font-weight:700; font-size:17px; letter-spacing:.05em;
    transition:filter .15s ease;
}
.paywin__btn:hover{ filter:brightness(1.14); }
.paywin__btn:disabled{ background:#c3cddb; color:#8b98ab; cursor:not-allowed; }
.paywin__btn:disabled:hover{ filter:none; }

.paywin__missing{ margin:2px 0 0; color:#8b98ab; font-size:13px; font-weight:600; text-align:center; }

/* Wesprzyj zamienia się chwilowo w przycisk dopłaty brakującej kwoty. */
.paywin__btn--missing{ background:#c3cddb; color:#24324a; }
.paywin__btn--missing:hover{ filter:brightness(1.05); }

/* niskie ekrany (klawiatura na telefonie) — kompaktowo, by KUP był widoczny */
@media (max-height:680px){
    .paywin{ gap:12px; justify-content:flex-start; padding-top:max(16px,env(safe-area-inset-top)); }
    .paywin__stage{ margin-top:30px; }
    .paywin__visual{ width:min(40vw,150px); height:min(40vw,150px); }
    .paywin__input{ font-size:clamp(58px,18vw,104px); }
    .paywin__name{ font-size:12px; }
}
@media (max-height:540px){
    .paywin__visual{ width:96px; height:96px; }
    .paywin__input{ font-size:64px; }
}

/* ---- Sekcja wsparcia + karuzela fundacji ---- */
.paywin__support{ display:flex; flex-direction:column; align-items:center; gap:10px; width:min(440px,90vw); }
.paywin__support-label{ margin:0; font-size:13px; color:#5b6b82; font-weight:600; letter-spacing:.02em; text-align:center; }
.fnd{ display:flex; align-items:center; gap:6px; width:100%; }
.fnd__viewport{ overflow:hidden; flex:1 1 auto; }
.fnd__track{ display:flex; transition:transform .3s ease; will-change:transform; }
.fnd__item{ flex:0 0 150px; height:56px; display:flex; align-items:center; justify-content:center;
    opacity:.4; transform:scale(.78); filter:grayscale(1); transition:opacity .3s ease, transform .3s ease, filter .3s ease; cursor:pointer; }
.fnd__item.is-active{ opacity:1; transform:scale(1); filter:none; cursor:default; }
.fnd__logo{ display:flex; align-items:center; justify-content:center; height:100%; padding:0 8px; }
.fnd__logo img{ max-height:42px; max-width:140px; object-fit:contain; display:block; }
.fnd__name{ font-weight:800; color:#24324a; font-size:14px; line-height:1.15; text-align:center; }
.fnd__nav{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1px solid #d4deea; background:#fff;
    color:#1473C0; font-size:18px; line-height:1; cursor:pointer; }
.fnd__nav:hover{ background:#eef4fb; }
/* przycisk Wesprzyj — ikona + tekst */
.paywin__btn{ display:flex; align-items:center; justify-content:center; gap:9px; }
@media (max-height:680px){ .paywin__support{ gap:6px; } .fnd__item{ height:46px; } .fnd__logo img{ max-height:34px; } }

/* logo fundacji na bialej karcie + wieksze (czytelnosc) */
.fnd__item{ height:80px; }
.fnd__logo{ background:#fff; border:1px solid #e6eaf0; border-radius:12px; padding:8px 10px; height:66px; width:134px; box-sizing:border-box; }
.fnd__logo img{ max-height:50px; max-width:112px; }
.fnd__name{ font-size:13px; }

/* link polityki prywatnosci pod przyciskiem Wesprzyj */
.paywin__policy{ margin:0; font-size:12px; line-height:1.5; color:#7a8aa0; text-align:center; max-width:min(440px,90vw); }
.paywin__policy a{ color:#1473C0; text-decoration:underline; }
.paywin__policy a:hover{ color:#0f5aa0; }
