/*
 * ============================================================
 *  RECAPTCHA — IZOLOWANE STYLE
 *  Całkowicie niezależne od pozostałych styli strony.
 *  Techniki izolacji:
 *   1. Selektory z najwyższą możliwą specyficznością (id + class chains)
 *   2. !important na każdej właściwości, która może być nadpisana
 *   3. all: initial reset na kontenerze odznaki
 *   4. Ikona ustawiona w lewym dolnym rogu ekranu (position: fixed)
 * ============================================================
 */

/* ----------------------------------------------------------
   1. RESET KONTENERA — neutralizuje wszelkie dziedziczone style
   ---------------------------------------------------------- */
.grecaptcha-badge {
    all: initial !important;
    /* zeruje WSZYSTKIE właściwości CSS */

    /* Pozycjonowanie: lewy dolny róg ekranu */
    position: fixed !important;
    bottom: 14px !important;
    left: 14px !important;
    right: auto !important;
    top: auto !important;
    z-index: 2147483647 !important;
    /* maksymalny możliwy z-index */

    /* Wymiary */
    width: 70px !important;
    height: 60px !important;
    overflow: hidden !important;
    transition: width 300ms cubic-bezier(.4, 0, .2, 1) !important;

    /* Wyśrodkowanie zawartości (iframe) w pionie i poziomie */
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    /* Wygląd */
    box-shadow: 0 1px 3px rgba(0, 0, 0, .28), 0 4px 10px rgba(0, 0, 0, .16) !important;
    border-radius: 4px !important;
    /*
   * #3d6ce4 — dokładny kolor tła iframe Google reCAPTCHA,
   * zmierzony piksel po pikselu ze screenshota.
   * Nie jest to standardowy Google Blue (#4285F4) —
   * reCAPTCHA używa własnego ciemniejszego odcienia.
   */
    background-color: #1a73e8 !important;

    /* Reset dziedziczenia tekstu, aby czcionka strony nie wpadała do odznaki */
    font-family: Roboto, helvetica neue, helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    text-align: left !important;
    color: #000 !important;
    direction: ltr !important;

    /* Upewnij się, że margin/padding strony nie przesuwa ikony */
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    float: none !important;
    clear: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: all !important;
    transform: none !important;
    filter: none !important;
    clip: auto !important;
    clip-path: none !important;
    mask: none !important;

    /* Zapobiega nadpisaniu przez Flexbox/Grid rodzica */
    align-self: auto !important;
    justify-self: auto !important;
    grid-area: auto !important;
    flex: none !important;
}

/* ----------------------------------------------------------
   2. STAN ROZWINIĘTY — po najechaniu kursorem
   ---------------------------------------------------------- */
.grecaptcha-badge:hover {
    /*
   * 300px — bezpieczna szerokość dla wszystkich języków.
   * Google's iframe ma stałą szerokość 256px dla treści,
   * ale etykiety w niektórych językach (np. grecki, turecki,
   * fiński) mogą być szersze niż domyślne 256px kontenera.
   * Ustawienie 300px daje wystarczający zapas.
   * Jeśli iframe sam w sobie przycina tekst — to zachowanie
   * Google i nie można go nadpisać z zewnątrz (cross-origin).
   */
    width: 300px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .3), 0 6px 16px rgba(0, 0, 0, .2) !important;
}

/* ----------------------------------------------------------
   3. WNĘTRZE ODZNAKI — iframe Google nie dziedziczy styli strony
      (iframe ma swój dokument), jednak poniższe reguły
      chroniące kontener są i tak wymagane.
   ---------------------------------------------------------- */
.grecaptcha-badge iframe {
    all: initial !important;
    display: block !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 300px !important;
    /* musi odpowiadać szerokości :hover kontenera */
    height: 60px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

/* ----------------------------------------------------------
   4. ZABEZPIECZENIE PRZED GLOBALNYMI RESETAMI STRONY
      Typowe frameworki/resety (normalize, tailwind preflight,
      meyer reset) mogą nadpisać powyższe — ten blok
      zwiększa specyficzność przez powtórzenie selektora.
   ---------------------------------------------------------- */
:root .grecaptcha-badge,
html body .grecaptcha-badge,
#recaptcha-badge.grecaptcha-badge {
    position: fixed !important;
    bottom: 14px !important;
    left: 14px !important;
    right: auto !important;
    top: auto !important;
    z-index: 2147483647 !important;
}

/* ----------------------------------------------------------
   5. CIEMNY MOTYW — jeśli strona wymusza prefers-color-scheme
      lub klasę .dark, reCAPTCHA zachowuje własne tło
   ---------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
    .grecaptcha-badge {
        background-color: #1a73e8 !important;
        box-shadow: 0 1px 4px rgba(0, 0, 0, .5), 0 4px 14px rgba(0, 0, 0, .35) !important;
    }
}

/* ----------------------------------------------------------
   6. MOBILNE — mniejsza dolna margines, by nie blokować
      nawigacji przeglądarki
   ---------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .grecaptcha-badge {
        bottom: 70px !important;
        /* nad paskiem przeglądarki mobilnej */
        left: 8px !important;
    }
}

/* ----------------------------------------------------------
   7. DOSTĘPNOŚĆ — nie ukrywamy odznaki (wymóg ToS Google),
      ale można ją przełączyć przez JS — style ochronne:
   ---------------------------------------------------------- */
.grecaptcha-badge[data-style="bottomleft"] {
    bottom: 14px !important;
    left: 14px !important;
    right: auto !important;
}

/* Upewnij się, że odznak nie jest ukryta przez "display:none"
   nałożone globalnym resetem lub JS strony */
.grecaptcha-badge[style*="display: none"],
.grecaptcha-badge[style*="display:none"] {
    /* Nie możemy tu nadpisać atrybutu inline bez JS,
     ale poniższy komentarz służy jako przypomnienie:
     nigdy nie ukrywać .grecaptcha-badge — narusza ToS Google. */
}