/* =========================
   Forminator – elegancki formularz (parafia)
   ========================= */

/* Zmienne dla spójności */
:root {
    --parafia-bg: #f7f5ef;
    --parafia-card: #ffffff;
    --parafia-text: #1f2937;
    --parafia-muted: #6b7280;
    --parafia-border: #e5e7eb;
    --parafia-focus: #254deb;
    --parafia-danger: #b42318;
    --parafia-danger-bg: #fef3f2;
    --parafia-success: #067647;
    --parafia-shadow: 0 10px 30px rgba(17, 24, 39, 0.1);
    --parafia-radius: 14px;
}

#forminator-p24 {
    /* Opcjonalnie: tło sekcji, w której stoi formularz (jeśli nie chcesz globalnie, usuń) */
    /* body { background: var(--parafia-bg); } */

    /* Kontener formularza jako karta */
    .forminator-ui.forminator-custom-form,
    .forminator-ui .forminator-custom-form {
        max-width: 720px;
        margin: 0 auto;
        padding: 22px 22px 18px;
        background: var(--parafia-card);
        border: 1px solid rgba(2, 2, 2, 0.04);
        border-radius: var(--parafia-radius);
        box-shadow: var(--parafia-shadow);
    }

    /* Nagłówki */
    .forminator-ui .forminator-title {
        margin: 0 0 6px;
        color: var(--parafia-text);
        font-size: 26px;
        font-weight: 700;
        letter-spacing: -0.01em;
    }

    .forminator-ui .forminator-subtitle,
    .forminator-ui .forminator-description {
        margin: 0 0 16px;
        color: var(--parafia-muted);
        line-height: 1.5;
        font-size: 15px;
    }

    .forminator-ui .forminator-subtitle {
        margin-top: 20px;
        font-weight: 400;
        font-size: 15px;
    }

    /* Licznik limitu znaków pod polem, wyrównany do prawej */
    .forminator-ui .forminator-field .forminator-description {
        display: block;
        margin-top: 6px;
        margin-bottom: 0;
        text-align: right;
        font-size: 12px;
    }

    .forminator-ui .forminator-field:has(.forminator-description) {
        display: flex;
        flex-direction: column;

        div {
            order: 3;
            align-self: flex-end;
        }

        div:has(.forminator-error-message) {
            width: 100%;
            display: flex;
            flex-direction: row;
            justify-content: space-between;
        }
    }

    /* Układ pól – pionowy rytm */
    .forminator-ui .forminator-row {
        margin-bottom: 14px;
    }

    .forminator-ui .forminator-field {
        margin-bottom: 0;
    }

    /* Etykiety */
    .forminator-ui .forminator-label {
        color: var(--parafia-text);
        font-weight: 600;
        font-size: 14px;
        letter-spacing: 0.01em;
        text-transform: none;
        margin-bottom: 6px;
    }

    /* Inputy / textarea / select */
    .forminator-ui input[type="text"],
    .forminator-ui input[type="email"],
    .forminator-ui input[type="tel"],
    .forminator-ui input[type="number"],
    .forminator-ui input[type="date"],
    .forminator-ui input,
    .forminator-ui select,
    .forminator-ui textarea {
        width: 100%;
        background: #fff;
        color: var(--parafia-text);
        border: 1px solid var(--parafia-border);
        border-radius: 12px;
        padding: 12px 12px;
        line-height: 1.2;
        transition:
            border-color 0.15s ease,
            box-shadow 0.15s ease,
            transform 0.05s ease;
        box-shadow: 0 1px 0 rgba(17, 24, 39, 0.02);
    }

    .forminator-ui textarea {
        max-height: 173px;
    }

    /* Placeholder */
    .forminator-ui input::placeholder,
    .forminator-ui textarea::placeholder {
        color: rgba(107, 114, 128, 0.85);
    }

    /* Textarea bardziej „dostojna” */
    .forminator-ui textarea {
        min-height: 120px;
        resize: vertical;
    }

    /* Hover */
    .forminator-ui input[type="text"]:hover,
    .forminator-ui input[type="email"]:hover,
    .forminator-ui input[type="tel"]:hover,
    .forminator-ui input[type="number"]:hover,
    .forminator-ui select:hover,
    .forminator-ui textarea:hover {
        border-color: rgba(37, 77, 235, 0.35);
    }

    /* Focus – mocny, czytelny */
    .forminator-ui input:focus,
    .forminator-ui select:focus,
    .forminator-ui textarea:focus {
        outline: none;
        border-color: var(--parafia-focus);
        box-shadow: 0 0 0 3px rgba(37, 77, 235, 0.18);
    }

    /* Ikona kalendarza w datepicker – Forminator często używa wrappera z ikoną */
    .forminator-ui .forminator-datepicker,
    .forminator-ui .forminator-date-input {
        position: relative;
    }
    .forminator-ui .forminator-datepicker .forminator-icon-calendar,
    .forminator-ui .forminator-date-input .forminator-icon-calendar {
        opacity: 0.65;
    }

    /* Kalendarz Forminator (flat datepicker) */
    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat {
        background: var(--parafia-card);
        border: 1px solid var(--parafia-border);
        border-radius: 12px;
        box-shadow: var(--parafia-shadow);
        padding: 10px;
    }

    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-datepicker-header {
        background: transparent;
        border: none;
        color: var(--parafia-text);
        font-weight: 600;
    }

    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-datepicker-title {
        font-size: 14px;
        letter-spacing: 0.02em;
    }

    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-state-default {
        background: var(--parafia-bg);
        border: 1px solid transparent;
        color: var(--parafia-text);
        border-radius: 8px;
        padding: 6px 0;
    }

    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-state-hover,
    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-state-focus {
        background: #efe9dd;
        border-color: var(--parafia-border);
    }

    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-state-active,
    .ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all.forminator-calendar--flat
        .ui-state-highlight {
        background: #d7c3a1;
        border-color: #c2a57f;
        color: #1f2937;
    }

    table.ui-datepicker-calendar
        .ui-datepicker-today.ui-state-disabled
        .ui-state-default,
    .ui-datepicker-calendar
        .ui-datepicker-today.ui-state-disabled
        .ui-state-default,
    .ui-datepicker-calendar
        .ui-datepicker-today.ui-state-disabled
        .ui-state-default
        :not(.ui-state-active) {
        color: var(--parafia-focus) !important;
    }

    /* Walidacja / błędy */
    .forminator-ui .forminator-error-message,
    .forminator-ui .forminator-required {
        color: var(--parafia-danger);
    }

    .forminator-ui .forminator-has_error input,
    .forminator-ui .forminator-has_error select,
    .forminator-ui .forminator-has_error textarea {
        border-color: var(--parafia-danger);
        background: var(--parafia-danger-bg);
        box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.14);
    }

    /* Komunikaty pod polami */
    .forminator-ui .forminator-field-error,
    .forminator-ui .forminator-error-message {
        margin-top: 6px;
        font-size: 12px;
        line-height: 1.3;
    }

    /* Przyciski */
    .forminator-ui .forminator-button,
    .forminator-ui .forminator-button-submit {
        border-radius: 999px;
        padding: 12px 18px;
        font-weight: 600;
        border: 1px solid transparent;
        transition:
            transform 0.05s ease,
            box-shadow 0.15s ease,
            background 0.15s ease;
    }

    /* CTA */
    .forminator-ui .forminator-button-submit {
        background: var(--parafia-focus);
        color: #fff;
        width: 100%;
        box-shadow: 0 10px 18px rgba(37, 77, 235, 0.18);
    }

    .forminator-ui .forminator-button-submit:hover {
        filter: brightness(0.98);
        box-shadow: 0 12px 22px rgba(37, 77, 235, 0.22);
    }

    .forminator-ui .forminator-button-submit:active {
        transform: translateY(1px);
    }

    .forminator-ui .forminator-button-submit:focus {
        outline: none;
        box-shadow:
            0 0 0 3px rgba(37, 77, 235, 0.22),
            0 12px 22px rgba(37, 77, 235, 0.22);
    }

    /* Checkboxy/radia jeśli kiedyś dojdą – spójne focusy */
    .forminator-ui input[type="checkbox"]:focus,
    .forminator-ui input[type="radio"]:focus {
        outline: none;
        box-shadow: 0 0 0 3px rgba(37, 77, 235, 0.18);
    }

    /* Stopka / odstępy pod submit */
    .forminator-ui .forminator-actions {
        margin-top: 14px;
    }

    /* Komunikat sukcesu (thank you) */
    .forminator-ui .forminator-response-message {
        border-radius: 12px;
        padding: 14px 14px;
        border: 1px solid rgba(6, 118, 71, 0.25);
        background: rgba(6, 118, 71, 0.06);
        color: var(--parafia-text);
    }

    /* Domyślnie ukryj komunikaty */
    .forminator-ui .forminator-response-message,
    .forminator-ui .forminator-error {
        display: none;
    }

    /* Sufiks cenowy */
    .forminator-ui .forminator-input-with-suffix {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0;
        background: transparent;
        border: none;
    }

    .forminator-ui .forminator-input-with-suffix input {
        flex: 1 1 auto;
        min-width: 0;
    }

    .forminator-ui .forminator-input-with-suffix .forminator-suffix {
        background: var(--parafia-bg);
        border: 1px solid var(--parafia-border);
        border-radius: 10px;
        color: var(--parafia-muted);
        font-size: 13px;
        font-weight: 600;
        padding: 9px 12px;
        white-space: nowrap;
    }
}

/* Komunikat płatności */
.im-p24-notice {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    background: rgba(17, 24, 39, 0.55);
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
}

.im-p24-notice__card {
    background: #ffffff;
    border: 1px solid #ffffff;
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(17, 24, 39, 0.18);
    max-width: 520px;
    width: 100%;
    padding: 22px 26px 24px;
    position: relative;
    text-align: left;
    font-family: "Georgia", "Times New Roman", serif;
}

.im-p24-notice__card h3 {
    margin: 0 0 6px;
    color: var(--parafia-text);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.im-p24-notice__card p {
    margin: 0;
    color: var(--parafia-muted);
    font-size: 14px;
    line-height: 1.5;
}

.im-p24-notice__close {
    appearance: none;
    background: #ffffff;
    border: 1px solid #e9e4db;
    border-radius: 999px;
    color: var(--parafia-muted);
    cursor: pointer;
    font-size: 18px;
    height: 32px;
    width: 32px;
    position: absolute;
    right: 12px;
    top: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

.im-p24-notice__close:hover {
    color: var(--parafia-text);
    border-color: #cfc5b7;
}

.im-p24-notice__close:active {
    transform: scale(0.98);
}

.im-p24-notice-success .im-p24-notice__card {
    border-color: #e0efe7;
    background: #ffffff;
}

.im-p24-notice-error .im-p24-notice__card {
    border-color: #f0d9d4;
    background: #ffffff;
}

/* Lepsza czytelność na mobile */
@media (max-width: 600px) {
    #forminator-p24 {
        .forminator-ui.forminator-custom-form,
        .forminator-ui .forminator-custom-form {
            padding: 18px 16px 14px;
            border-radius: 12px;
        }

        .forminator-ui textarea {
            min-height: 110px;
        }
    }
}
