/* Formularz budowa domu – style kontrolek (radio/checkbox/pola)
 * Przeniesione z Elementor Custom CSS; selektor: .elementor-element-70523a7
 */

.elementor-element-70523a7 {
    --form-accent: #e94b18;
    --form-accent-dark: #c83c10;
    --form-accent-soft: #fff4ef;

    --form-text: #171b22;
    --form-muted: #68707d;

    --form-border: #d3dae4;
    --form-border-hover: #aeb7c4;
    --form-border-light: #e6e9ee;

    --form-field-bg: #ffffff;
    --form-option-bg: #ffffff;

    --form-focus: rgba(233, 75, 24, 0.16);
}


/* ==================================================
   FORMULARZ I KROKI
   ================================================== */

.elementor-element-70523a7 .elementor-form {
    color: var(--form-text);
}

.elementor-element-70523a7 .e-form__step {
    row-gap: 0;
}

.elementor-element-70523a7
.e-form__step > .elementor-field-group:not(.e-form__buttons__wrapper) {
    margin-bottom: 27px;
}


/* ==================================================
   ETYKIETY PYTAŃ
   ================================================== */

.elementor-element-70523a7 .elementor-field-label {
    display: block;
    width: 100%;
    margin: 0 0 10px;

    color: var(--form-text);

    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;

    text-transform: none;
    letter-spacing: 0;
}

.elementor-element-70523a7
.elementor-field-required
.elementor-field-label::after {
    color: var(--form-accent);
}


/* ==================================================
   POLA TEKSTOWE, SELECTY I TEXTAREA
   ================================================== */

.elementor-element-70523a7 input.elementor-field-textual,
.elementor-element-70523a7 select.elementor-field-textual,
.elementor-element-70523a7 textarea.elementor-field-textual {
    width: 100%;
    min-height: 52px;
    padding: 12px 16px;

    color: var(--form-text);
    background-color: var(--form-field-bg);

    border: 1px solid var(--form-border);
    border-radius: 999px;
    box-shadow: none;

    /* Nadpisuje Elementor body-lg (clamp do 2rem) */
    font-size: 15px !important;
    font-weight: 400;
    line-height: 1.45;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease;
}

.elementor-element-70523a7 textarea.elementor-field-textual {
    min-height: 130px;
    padding-top: 14px;
    border-radius: 18px;
    resize: vertical;
}

.elementor-element-70523a7 input.elementor-field-textual:hover,
.elementor-element-70523a7 select.elementor-field-textual:hover,
.elementor-element-70523a7 textarea.elementor-field-textual:hover {
    border-color: var(--form-border-hover);
}

.elementor-element-70523a7 input.elementor-field-textual:focus,
.elementor-element-70523a7 select.elementor-field-textual:focus,
.elementor-element-70523a7 textarea.elementor-field-textual:focus {
    outline: none;
    border-color: var(--form-accent);
    box-shadow: 0 0 0 4px var(--form-focus);
}

.elementor-element-70523a7 input::placeholder,
.elementor-element-70523a7 textarea::placeholder {
    color: #7a828d;
    font-size: 15px !important;
    font-weight: 400;
    opacity: 1;
}

.elementor-element-70523a7 input::-webkit-input-placeholder,
.elementor-element-70523a7 textarea::-webkit-input-placeholder {
    color: #7a828d;
    font-size: 15px !important;
    font-weight: 400;
    opacity: 1;
}

.elementor-element-70523a7 input::-moz-placeholder,
.elementor-element-70523a7 textarea::-moz-placeholder {
    color: #7a828d;
    font-size: 15px !important;
    font-weight: 400;
    opacity: 1;
}


/* ==================================================
   SELECT I STRZAŁKA
   ================================================== */

.elementor-element-70523a7 .elementor-select-wrapper {
    position: relative;
}

.elementor-element-70523a7 select.elementor-field-textual {
    padding-right: 48px;
    cursor: pointer;
}

.elementor-element-70523a7 .select-caret-down-wrapper {
    right: 17px;
    color: var(--form-muted);
    pointer-events: none;
}

.elementor-element-70523a7 .select-caret-down-wrapper svg {
    width: 12px;
    height: 12px;
}


/* ==================================================
   WSPÓLNY UKŁAD RADIO I CHECKBOXÓW
   ================================================== */

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-subgroup,

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-subgroup {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 10px 12px;
    width: 100%;
}

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option,

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option {
    position: relative;
    display: inline-flex;
    margin: 0;
}


/* Ukrywamy natywne pola, ale pozostają dostępne dla klawiatury */

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option input[type="radio"],

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option input[type="checkbox"] {
    position: absolute;

    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;

    overflow: hidden;
    opacity: 0;

    clip: rect(0 0 0 0);
    clip-path: inset(50%);

    white-space: nowrap;
}


/* ==================================================
   RADIO
   ================================================== */

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option label {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 44px;
    padding: 8px 16px;

    color: var(--form-text);
    background-color: var(--form-option-bg);

    border: 1px solid var(--form-border);
    border-radius: 999px;

    font-size: 15px !important;
    font-weight: 500;
    line-height: 1.35;

    cursor: pointer;
    user-select: none;

    transition:
        color 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.1s ease;
}

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option label:hover {
    color: var(--form-accent-dark);
    background-color: var(--form-accent-soft);
    border-color: var(--form-accent);
}

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option input[type="radio"]:checked + label {
    color: #ffffff;
    background-color: var(--form-accent);
    border-color: var(--form-accent);

    box-shadow: 0 5px 14px rgba(233, 75, 24, 0.18);
}

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option input[type="radio"]:focus-visible + label {
    outline: none;

    box-shadow:
        0 0 0 4px var(--form-focus),
        0 5px 14px rgba(233, 75, 24, 0.16);
}

.elementor-element-70523a7
.elementor-field-type-radio
.elementor-field-option label:active {
    transform: translateY(1px);
}


/* ==================================================
   ZWYKŁE CHECKBOXY
   Media, zakres prac, formalności
   ================================================== */

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option label {
    position: relative;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-height: 44px;
    padding: 8px 14px 8px 12px;

    color: var(--form-text);
    background-color: var(--form-option-bg);

    border: 1px solid var(--form-border);
    border-radius: 999px;

    font-size: 15px !important;
    font-weight: 500;
    line-height: 1.35;

    cursor: pointer;
    user-select: none;

    transition:
        color 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.1s ease;
}


/* Widoczny kwadrat checkboxa */

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option label::before {
    content: "";

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 20px;
    height: 20px;
    flex: 0 0 20px;

    color: #ffffff;
    background-color: #ffffff;

    border: 1.5px solid #aab3bf;
    border-radius: 6px;

    font-size: 14px;
    font-weight: 700;
    line-height: 1;

    transition:
        color 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option label:hover {
    color: var(--form-accent-dark);
    background-color: var(--form-accent-soft);
    border-color: var(--form-accent);
}

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option label:hover::before {
    border-color: var(--form-accent);
}


/* Zaznaczony checkbox */

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option input[type="checkbox"]:checked + label {
    color: var(--form-accent-dark);
    background-color: var(--form-accent-soft);
    border-color: var(--form-accent);

    box-shadow: inset 0 0 0 1px var(--form-accent);
}

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option input[type="checkbox"]:checked + label::before {
    content: "✓";

    color: #ffffff;
    background-color: var(--form-accent);
    border-color: var(--form-accent);
}


/* Focus klawiaturą */

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option input[type="checkbox"]:focus-visible + label {
    outline: none;

    box-shadow:
        inset 0 0 0 1px var(--form-accent),
        0 0 0 4px var(--form-focus);
}

.elementor-element-70523a7
.elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
.elementor-field-option label:active {
    transform: translateY(1px);
}


/* ==================================================
   CHECKBOX ZGODY / POLITYKA PRYWATNOŚCI
   Pozostaje klasycznym checkboxem
   ================================================== */

.elementor-element-70523a7
.elementor-field-type-acceptance
.elementor-field-subgroup {
    display: block;
    width: 100%;
}

.elementor-element-70523a7
.elementor-field-type-acceptance
.elementor-field-option {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    width: 100%;
}

.elementor-element-70523a7
.elementor-field-type-acceptance
input[type="checkbox"] {
    position: static !important;

    display: block !important;
    visibility: visible !important;

    width: 20px !important;
    height: 20px !important;
    min-width: 20px;

    margin: 3px 0 0 !important;
    padding: 0;

    opacity: 1 !important;

    clip: auto !important;
    clip-path: none !important;

    accent-color: var(--form-accent);
    cursor: pointer;
}

.elementor-element-70523a7
.elementor-field-type-acceptance
.elementor-field-option label {
    display: block;

    color: var(--form-muted);

    font-size: 14px;
    font-weight: 400;
    line-height: 1.55;

    cursor: pointer;
}

.elementor-element-70523a7
.elementor-field-type-acceptance
.elementor-field-option label::before {
    display: none;
}

.elementor-element-70523a7
.elementor-field-type-acceptance a {
    color: var(--form-accent-dark);
    font-weight: 600;

    text-decoration: underline;
    text-underline-offset: 2px;
}

.elementor-element-70523a7
.elementor-field-type-acceptance a:hover {
    color: var(--form-accent);
}


/* ==================================================
   PASEK POSTĘPU
   ================================================== */

.elementor-element-70523a7 .e-form__indicators,
.elementor-element-70523a7 .e-form__indicators--type-number,
.elementor-element-70523a7 .e-form__indicators--type-number_text {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;

    width: 100%;
    margin-bottom: 36px;

    /* Nadpisuje Elementorowy flex-start + margin-top separatora */
    --e-form-steps-indicator-padding: 36px;
    --e-form-steps-divider-width: 2px;
}

.elementor-element-70523a7
.e-form__indicators__indicator {
    flex: 0 0 auto;
    padding: 0;
}

.elementor-element-70523a7
.e-form__indicators__indicator__number {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;
    min-width: 36px;
    margin-bottom: 0;

    color: #596475;
    background-color: #ffffff;

    border: 1px solid #9ca8b8;
    border-radius: 50%;

    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

.elementor-element-70523a7
.e-form__indicators__indicator__label {
    display: none;
}

.elementor-element-70523a7
.e-form__indicators__indicator--state-active
.e-form__indicators__indicator__number,

.elementor-element-70523a7
.e-form__indicators__indicator--state-completed
.e-form__indicators__indicator__number {
    color: #ffffff;
    background-color: var(--form-accent);
    border-color: var(--form-accent);
}

.elementor-element-70523a7
.e-form__indicators__indicator__separator,
.elementor-element-70523a7
.e-form__indicators--type-number
.e-form__indicators__indicator__separator,
.elementor-element-70523a7
.e-form__indicators--type-number_text
.e-form__indicators__indicator__separator {
    flex: 1 1 auto;
    align-self: center;

    height: 2px;
    margin: 0 14px;
    margin-top: 0;

    background-color: #d9dee5;
}

.elementor-element-70523a7
.e-form__indicators__indicator--state-completed
+ .e-form__indicators__indicator__separator {
    background-color: var(--form-accent);
}

/*
 * Pominięty krok (pusta ścieżka warunkowa) –
 * wyraźnie wyszarzone, żeby nie wyglądało jak błąd.
 */
.elementor-element-70523a7
.e-form__indicators__indicator.kozwelder-step-skipped
.e-form__indicators__indicator__number,
.elementor-element-70523a7
.e-form__indicators__indicator.kozwelder-step-skipped.e-form__indicators__indicator--state-completed
.e-form__indicators__indicator__number,
.elementor-element-70523a7
.e-form__indicators__indicator.kozwelder-step-skipped.e-form__indicators__indicator--state-active
.e-form__indicators__indicator__number,
.elementor-element-70523a7
.e-form__indicators__indicator.kozwelder-step-skipped.e-form__indicators__indicator--state-inactive
.e-form__indicators__indicator__number {
    color: #9aa3b0;
    background-color: #eef1f4;
    border: 1.5px dashed #c2cad4;
    box-shadow: none;
    opacity: 1;
}

.elementor-element-70523a7
.e-form__indicators__indicator.kozwelder-step-skipped {
    cursor: default;
    opacity: 0.92;
}

.elementor-element-70523a7
.e-form__indicators__indicator__separator.kozwelder-separator-skipped,
.elementor-element-70523a7
.e-form__indicators__indicator--state-completed
+ .e-form__indicators__indicator__separator.kozwelder-separator-skipped {
    background-color: #d9dee5;
    background-image: repeating-linear-gradient(
        90deg,
        #c5ccd6 0,
        #c5ccd6 4px,
        transparent 4px,
        transparent 8px
    );
    background-size: 8px 2px;
    background-repeat: repeat-x;
    background-position: center;
    height: 2px;
}


/* ==================================================
   NAGŁÓWEK OSTATNIEGO KROKU
   ================================================== */

.elementor-element-70523a7 .elementor-field-type-html h5 {
    margin: 0 0 8px;

    color: var(--form-text);

    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
}

.elementor-element-70523a7 .elementor-field-type-html p {
    margin: 0;

    color: var(--form-muted);

    font-size: 16px;
    line-height: 1.6;
}


/* ==================================================
   PRZYCISKI
   ================================================== */

.elementor-element-70523a7 .e-form__buttons {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;

    margin-top: 8px;
    padding-top: 22px;

    border-top: 1px solid var(--form-border-light);
}

.elementor-element-70523a7
.e-form__buttons
.e-form__buttons__wrapper {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
}

.elementor-element-70523a7
.e-form__buttons__wrapper__button {
    width: auto !important;
    min-width: 112px;
    min-height: 46px;
    padding: 11px 23px;

    border-radius: 999px;

    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;

    cursor: pointer;

    transition:
        color 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.1s ease;
}


/* Dalej i Wyślij */

.elementor-element-70523a7
.e-form__buttons__wrapper__button-next,

.elementor-element-70523a7
.elementor-field-type-submit
.e-form__buttons__wrapper__button {
    color: #ffffff;
    background-color: var(--form-accent);
    border: 1px solid var(--form-accent);
}

.elementor-element-70523a7
.e-form__buttons__wrapper__button-next:hover,

.elementor-element-70523a7
.elementor-field-type-submit
.e-form__buttons__wrapper__button:hover {
    color: #ffffff;
    background-color: var(--form-accent-dark);
    border-color: var(--form-accent-dark);
}


/* Wstecz */

.elementor-element-70523a7
.e-form__buttons__wrapper__button-previous {
    color: #394251;
    background-color: #ffffff;
    border: 1px solid var(--form-border);
}

.elementor-element-70523a7
.e-form__buttons__wrapper__button-previous:hover {
    color: var(--form-text);
    background-color: #f5f6f8;
    border-color: var(--form-border-hover);
}


/* Focus przycisków */

.elementor-element-70523a7
.e-form__buttons__wrapper__button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--form-focus);
}

.elementor-element-70523a7
.e-form__buttons__wrapper__button:active {
    transform: translateY(1px);
}


/* ==================================================
   WALIDACJA I KOMUNIKATY
   ================================================== */

.elementor-element-70523a7
.elementor-field.elementor-error {
    border-color: #d92d20 !important;
    box-shadow: 0 0 0 4px rgba(217, 45, 32, 0.12);
}

.elementor-element-70523a7 .elementor-message {
    margin-top: 16px;
    padding: 12px 14px;

    border-radius: 10px;

    font-size: 15px;
    line-height: 1.5;
}

.elementor-element-70523a7 .elementor-message-danger {
    color: #9b1c1c;
    background-color: #fff1f1;
    border: 1px solid #f2b8b8;
}

.elementor-element-70523a7 .elementor-message-success {
    color: #176534;
    background-color: #effaf3;
    border: 1px solid #a9dfba;
}


/* ==================================================
   URZĄDZENIA MOBILNE
   ================================================== */

@media (max-width: 767px) {

    .elementor-element-70523a7
    .e-form__step > .elementor-field-group:not(.e-form__buttons__wrapper) {
        margin-bottom: 23px;
    }

    .elementor-element-70523a7 .elementor-field-label {
        font-size: 15px;
    }

    .elementor-element-70523a7
    input.elementor-field-textual,

    .elementor-element-70523a7
    select.elementor-field-textual,

    .elementor-element-70523a7
    textarea.elementor-field-textual {
        min-height: 50px;
        font-size: 15px !important;
    }


    /* Radio i checkboxy jeden pod drugim */

    .elementor-element-70523a7
    .elementor-field-type-radio
    .elementor-field-subgroup,

    .elementor-element-70523a7
    .elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
    .elementor-field-subgroup {
        flex-direction: column;
        gap: 8px;
    }

    .elementor-element-70523a7
    .elementor-field-type-radio
    .elementor-field-option,

    .elementor-element-70523a7
    .elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
    .elementor-field-option {
        width: 100%;
    }

    .elementor-element-70523a7
    .elementor-field-type-radio
    .elementor-field-option label,

    .elementor-element-70523a7
    .elementor-field-type-checkbox:not(.elementor-field-type-acceptance)
    .elementor-field-option label {
        width: 100%;
        min-height: 44px;
        font-size: 15px !important;
    }

    .elementor-element-70523a7
    .elementor-field-type-radio
    .elementor-field-option label {
        justify-content: flex-start;
        text-align: left;
    }


    /* Progress */

    .elementor-element-70523a7 .e-form__indicators {
        margin-bottom: 30px;
    }

    .elementor-element-70523a7
    .e-form__indicators__indicator__number {
        width: 32px;
        height: 32px;
        min-width: 32px;
        margin-bottom: 0;

        font-size: 14px;
    }

    .elementor-element-70523a7
    .e-form__indicators__indicator__separator,
    .elementor-element-70523a7
    .e-form__indicators--type-number
    .e-form__indicators__indicator__separator {
        margin: 0 6px;
        margin-top: 0;
    }


    /* Przyciski */

    .elementor-element-70523a7 .e-form__buttons {
        flex-wrap: wrap;
    }

    .elementor-element-70523a7
    .e-form__buttons
    .e-form__buttons__wrapper {
        flex: 1 1 calc(50% - 6px);
    }

    .elementor-element-70523a7
    .e-form__buttons__wrapper__button {
        width: 100% !important;
        min-width: 0;
    }
}


/* ==================================================
   BARDZO MAŁE EKRANY
   ================================================== */

@media (max-width: 420px) {

    .elementor-element-70523a7
    .e-form__buttons
    .e-form__buttons__wrapper {
        flex-basis: 100%;
    }

    .elementor-element-70523a7
    .elementor-field-type-acceptance
    .elementor-field-option label {
        font-size: 13px;
    }
}