/* =================================== */
/* Header index                        */
/* =================================== */

#header_index.header_index {
    /* Kontener */
    --header-index-max-width: min(calc(var(--motyw-sekcja-max-width) + 8dvw), 2080px);
    --header-index-min-height: max(780px, 100dvh);
    --header-index-padding-inline: max(var(--motyw-sekcja-padding-inline), 2.5dvw);
    --header-index-wewnatrz-padding-inline: 0;

    /* Grid */
    --header-index-grid-padding-block: 60px;
    --header-index-grid-columns: minmax(0, 1fr) minmax(420px, 0.92fr);
    --header-index-grid-gap: clamp(40px, 4.4dvw, 108px);
    --header-index-grid-align-items: center;

    /* Kolumna treści */
    --header-index-tresc-max-width: 860px;
    --header-index-tresc-padding-right: 0;
    --header-index-tresc-padding-bottom: 0;

    /* Typografia */
    --header-index-tag-margin-bottom: calc(var(--font-size) * 1.4);
    --header-index-naglowek-font-size: clamp(calc(var(--font-size) * 4.8),
            4.2dvw,
            calc(var(--font-size) * 6.9));
    --header-index-naglowek-line-height: 0.98;
    --header-index-naglowek-letter-spacing: calc(var(--font-size) * -0.036);
    --header-index-opis-margin-top: calc(var(--font-size) * 2.4);
    --header-index-opis-opacity: 0.82;

    /* Atuty */
    --header-index-atuty-max-width: 840px;
    --header-index-atuty-margin-top: clamp(30px, 4vh, 50px);
    --header-index-atuty-columns: repeat(3, minmax(0, 1fr));
    --header-index-atuty-gap: clamp(18px, 1.8dvw, 30px);
    --header-index-atut-min-height: 148px;
    --header-index-atut-padding-top: 18px;
    --header-index-atut-gap: calc(var(--font-size) * 1.05);
    --header-index-atut-border: var(--border-width-thin) solid rgba(var(--motyw-kontekst-tekst-rgb), 0.14);
    --header-index-atut-linia-width: 58px;
    --header-index-atut-linia-height: 2px;
    --header-index-atut-linia-top: -1px;
    --header-index-atut-liczba-font-size: calc(var(--font-size) * 1.4);
    --header-index-atut-liczba-line-height: 1.1;
    --header-index-atut-liczba-letter-spacing: calc(var(--font-size) * 0.18);
    --header-index-atut-opis-font-size: calc(var(--font-size) * 1.62);
    --header-index-atut-opis-line-height: 1.58;
    --header-index-atut-opis-opacity: 0.78;

    /* Media */
    --header-index-media-strefa-min-height: 680px;
    --header-index-media-strefa-margin-top: 0;
    --header-index-media-strefa-padding-bottom: 0;
    --header-index-media-strefa-justify-content: flex-end;
    --header-index-media-width: min(100%, 620px);
    --header-index-media-max-width: none;
    --header-index-media-margin-right: 0;
    --header-index-media-height: clamp(440px, 66vh, 780px);
    --header-index-media-margin-top: 0;
    --header-index-media-object-position: center 20%;
    --header-index-media-cien: 0 26px 72px rgba(var(--kolor-dostarczony-5-rgb), 0.16);
    --header-index-media-nakladka: linear-gradient(180deg,
            rgba(var(--motyw-kontekst-akcent-rgb), 0.08) 0%,
            rgba(255, 255, 255, 0) 30%,
            rgba(var(--motyw-kontekst-tekst-rgb), 0.18) 100%);

    /* Karta informacyjna */
    --header-index-karta-width: min(54%, 336px);
    --header-index-karta-left: 0;
    --header-index-karta-right: auto;
    --header-index-karta-bottom: calc(var(--font-size) * 3.2);
    --header-index-karta-padding: 24px;
    --header-index-karta-tlo: rgba(var(--motyw-header-panel-rgb), 0.96);
    --header-index-karta-border: var(--border-width-thin) solid rgba(var(--motyw-kontekst-tekst-rgb), 0.08);
    --header-index-karta-cien: 0 22px 54px rgba(var(--kolor-dostarczony-5-rgb), 0.14);
    --header-index-karta-linia-width: 72px;
    --header-index-karta-linia-height: 2px;
    --header-index-karta-etykieta-margin-bottom: 10px;
    --header-index-karta-etykieta-font-size: calc(var(--font-size) * 1.32);
    --header-index-karta-etykieta-letter-spacing: calc(var(--font-size) * 0.16);
    --header-index-karta-opis-font-size: calc(var(--font-size) * 1.66);
    --header-index-karta-opis-line-height: 1.58;
    --header-index-karta-opis-opacity: 0.82;

    /* Tło */
    --header-index-tlo: linear-gradient(180deg,
            rgba(var(--motyw-header-gradient-start-rgb), 1) 0%,
            rgba(var(--motyw-header-gradient-end-rgb), 1) 100%);
    --header-index-tlo-efekty:
        radial-gradient(960px 520px at 8% 12%,
            rgba(var(--motyw-kontekst-akcent-rgb), 0.15) 0%,
            rgba(var(--motyw-kontekst-akcent-rgb), 0) 72%),
        radial-gradient(760px 420px at 92% 18%,
            rgba(var(--motyw-kontekst-tekst-rgb), 0.08) 0%,
            rgba(var(--motyw-kontekst-tekst-rgb), 0) 68%),
        radial-gradient(620px 340px at 34% 78%,
            rgba(var(--kolor-dostarczony-4-rgb), 0.1) 0%,
            rgba(var(--kolor-dostarczony-4-rgb), 0) 76%),
        linear-gradient(180deg,
            rgba(var(--motyw-header-gradient-start-rgb), 0.94) 0%,
            rgba(var(--motyw-header-gradient-end-rgb), 0.98) 100%),
        var(--header-index-bg-image, linear-gradient(180deg, transparent, transparent));

    width: 100%;
    min-height: var(--header-index-min-height);
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--header-index-tlo);
}

#header_index.header_index::before {
    content: "";
    inset: 0;
    position: absolute;
    background-image: var(--header-index-tlo-efekty);
    background-size: auto, auto, auto, auto, cover;
    background-position: 8% 12%, 92% 18%, 34% 78%, center, center;
    background-repeat: no-repeat;
    background-blend-mode: normal, normal, normal, normal, soft-light;
    pointer-events: none;
    z-index: -2;
}

/* Wyłącza globalny pseudo-element kratki, jeśli klasa efektu trafi na header. */
#header_index.header_index::after {
    content: none;
}

#header_index .header_index_wewnatrz {
    width: 100%;
    max-width: var(--header-index-max-width);
    min-height: inherit;
    margin: 0 auto;
    padding-inline: var(--header-index-wewnatrz-padding-inline);
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
}

#header_index .header_index_grid {
    width: 100%;
    flex: 1;
    margin: 0;
    padding: var(--header-index-grid-padding-block) var(--header-index-padding-inline);
    display: grid;
    grid-template-columns: var(--header-index-grid-columns);
    gap: var(--header-index-grid-gap);
    align-items: var(--header-index-grid-align-items);
}

#header_index .header_index_kolumna {
    width: 100%;
    position: relative;
}

#header_index .header_index_kolumna_tresc {
    max-width: var(--header-index-tresc-max-width);
    padding-right: var(--header-index-tresc-padding-right);
    padding-bottom: var(--header-index-tresc-padding-bottom);
    z-index: 2;
}

#header_index .header_index_kolumna_tresc .tag_container {
    margin-bottom: var(--header-index-tag-margin-bottom);
}

#header_index .header_index_kolumna_tresc .tag_container .tag_label {
    color: var(--motyw-kontekst-akcent);
}

#header_index .header_index_kolumna_tresc .naglowek_container h1 {
    font-size: var(--header-index-naglowek-font-size);
    line-height: var(--header-index-naglowek-line-height);
    letter-spacing: var(--header-index-naglowek-letter-spacing);
}

#header_index .header_index_kolumna_tresc .opis_container p {
    margin-top: var(--header-index-opis-margin-top);
    opacity: var(--header-index-opis-opacity);
}

#header_index .header_index_atuty {
    width: 100%;
    max-width: var(--header-index-atuty-max-width);
    margin-top: var(--header-index-atuty-margin-top);
    display: grid;
    grid-template-columns: var(--header-index-atuty-columns);
    gap: var(--header-index-atuty-gap);
}

#header_index .header_index_atut {
    min-height: var(--header-index-atut-min-height);
    padding: var(--header-index-atut-padding-top) 0 0;
    display: grid;
    align-content: start;
    gap: var(--header-index-atut-gap);
    position: relative;
    border-top: var(--header-index-atut-border);
}

#header_index .header_index_atut::before {
    content: "";
    width: var(--header-index-atut-linia-width);
    height: var(--header-index-atut-linia-height);
    top: var(--header-index-atut-linia-top);
    left: 0;
    position: absolute;
    background-color: var(--motyw-kontekst-akcent);
}

#header_index .header_index_atut_liczba {
    display: inline-block;
    font-family: var(--font-family-cabinet);
    font-size: var(--header-index-atut-liczba-font-size);
    font-weight: 700;
    line-height: var(--header-index-atut-liczba-line-height);
    letter-spacing: var(--header-index-atut-liczba-letter-spacing);
    color: var(--motyw-kontekst-akcent);
}

#header_index .header_index_atut .opis_container,
#header_index .header_index_atut .opis_container p {
    margin: 0;
}

#header_index .header_index_atut .opis_container p {
    max-width: none;
    font-size: var(--header-index-atut-opis-font-size);
    line-height: var(--header-index-atut-opis-line-height);
    opacity: var(--header-index-atut-opis-opacity);
}

#header_index .header_index_media_strefa {
    width: 100%;
    min-height: var(--header-index-media-strefa-min-height);
    margin-top: var(--header-index-media-strefa-margin-top);
    padding-bottom: var(--header-index-media-strefa-padding-bottom);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: var(--header-index-media-strefa-justify-content);
}

#header_index .header_index_media_strefa::after {
    content: none;
}

#header_index .header_index_media_box {
    width: var(--header-index-media-width);
    max-width: var(--header-index-media-max-width);
    margin-right: var(--header-index-media-margin-right);
    position: relative;
    isolation: isolate;
    z-index: 2;
}

#header_index .header_index_media_obraz {
    width: 100%;
    height: var(--header-index-media-height);
    margin-top: var(--header-index-media-margin-top);
    overflow: hidden;
    position: relative;
    box-shadow: var(--header-index-media-cien);
    z-index: 1;
}

#header_index .header_index_media_obraz::before {
    content: "";
    inset: 0;
    position: absolute;
    background-image: var(--header-index-media-nakladka);
    pointer-events: none;
    z-index: 1;
}

#header_index .header_index_media_obraz img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: var(--header-index-media-object-position);
}

#header_index .header_index_karta_info {
    width: var(--header-index-karta-width);
    left: var(--header-index-karta-left);
    right: var(--header-index-karta-right);
    bottom: var(--header-index-karta-bottom);
    margin: 0;
    padding: var(--header-index-karta-padding);
    position: absolute;
    background-color: var(--header-index-karta-tlo);
    border: var(--header-index-karta-border);
    box-shadow: var(--header-index-karta-cien);
    z-index: 3;
}

#header_index .header_index_karta_info::before {
    content: "";
    width: var(--header-index-karta-linia-width);
    height: var(--header-index-karta-linia-height);
    top: 0;
    left: 0;
    position: absolute;
    background-color: var(--motyw-kontekst-akcent);
}

#header_index .header_index_karta_etykieta {
    display: inline-block;
    margin-bottom: var(--header-index-karta-etykieta-margin-bottom);
    font-family: var(--font-family-cabinet);
    font-size: var(--header-index-karta-etykieta-font-size);
    font-weight: 700;
    letter-spacing: var(--header-index-karta-etykieta-letter-spacing);
    text-transform: uppercase;
    color: var(--motyw-kontekst-akcent);
}

#header_index .header_index_karta_info .opis_container,
#header_index .header_index_karta_info .opis_container p {
    margin: 0;
}

#header_index .header_index_karta_info .opis_container p {
    font-size: var(--header-index-karta-opis-font-size);
    line-height: var(--header-index-karta-opis-line-height);
    opacity: var(--header-index-karta-opis-opacity);
}

/* =================================== */
/* Header index - responsive           */
/* =================================== */

@media (max-width: 1180px) {
    #header_index.header_index {
        --header-index-min-height: auto;
        --header-index-grid-padding-block: 120px;
        --header-index-grid-columns: minmax(0, 1.08fr) minmax(360px, 0.82fr);
        --header-index-grid-gap: calc(var(--font-size) * 4.8);
        --header-index-tresc-max-width: none;
        --header-index-tresc-padding-right: 20px;
        --header-index-naglowek-font-size: calc(var(--font-size) * 5.2);
        --header-index-opis-margin-top: calc(var(--font-size) * 2);
        --header-index-atuty-max-width: 100%;
        --header-index-atuty-margin-top: calc(var(--font-size) * 3.6);
        --header-index-atuty-gap: calc(var(--font-size) * 2);
        --header-index-media-strefa-min-height: 0;
        --header-index-media-strefa-padding-bottom: calc(var(--font-size) * 6.4);
        --header-index-media-width: 100%;
        --header-index-media-max-width: 460px;
        --header-index-media-height: 620px;
        --header-index-karta-width: 290px;
        --header-index-karta-left: calc(var(--font-size) * -4.4);
        --header-index-karta-bottom: calc(var(--font-size) * 1.6);
    }
}

@media (max-width: 980px) {
    #header_index.header_index {
        --header-index-wewnatrz-padding-inline: max(calc(var(--padding-size) * 1.8), 5dvw);
        --header-index-grid-columns: minmax(0, 1fr);
        --header-index-grid-gap: calc(var(--font-size) * 3.6);
        --header-index-tresc-padding-right: 0;
        --header-index-tresc-padding-bottom: 40px;
        --header-index-naglowek-font-size: calc(var(--font-size) * 4.6);
        --header-index-atuty-columns: repeat(3, minmax(0, 1fr));
        --header-index-atuty-gap: calc(var(--font-size) * 1.6);
        --header-index-atut-min-height: 0;
        --header-index-atut-padding-top: calc(var(--font-size) * 1.6);
        --header-index-media-strefa-min-height: auto;
        --header-index-media-strefa-margin-top: calc(var(--font-size) * 1.4);
        --header-index-media-strefa-padding-bottom: calc(var(--font-size) * 10.8);
        --header-index-media-strefa-justify-content: center;
        --header-index-media-width: 100%;
        --header-index-media-max-width: 620px;
        --header-index-media-height: 560px;
        --header-index-karta-width: min(78%, 340px);
        --header-index-karta-left: calc(var(--font-size) * 2.4);
        --header-index-karta-right: auto;
        --header-index-karta-bottom: calc(var(--font-size) * 2.8);
    }
}

@media (max-width: 640px) {
    #header_index.header_index {
        --header-index-grid-gap: calc(var(--font-size) * 2.8);
        --header-index-tag-margin-bottom: calc(var(--font-size) * 1);
        --header-index-opis-margin-top: calc(var(--font-size) * 1.6);
        --header-index-atuty-margin-top: calc(var(--font-size) * 2.6);
        --header-index-atuty-columns: minmax(0, 1fr);
        --header-index-atut-padding-top: calc(var(--font-size) * 1.4);
        --header-index-atut-opis-font-size: calc(var(--font-size) * 1.5);
        --header-index-media-strefa-padding-bottom: calc(var(--font-size) * 15.5);
        --header-index-media-height: 420px;
        --header-index-karta-width: auto;
        --header-index-karta-left: calc(var(--font-size) * 1.4);
        --header-index-karta-right: calc(var(--font-size) * 1.4);
        --header-index-karta-bottom: calc(var(--font-size) * 2.4);
        --header-index-karta-padding: 20px 18px 18px;
        --header-index-karta-etykieta-margin-bottom: 8px;
        --header-index-karta-etykieta-font-size: calc(var(--font-size) * 1.18);
        --header-index-karta-opis-font-size: calc(var(--font-size) * 1.5);
    }
}

/* =================================== */
/* Main                                */
/* =================================== */

.section_oferta,
.section_opinie {
    overflow-x: hidden;
}

.section_opinie {
    --section-opinie-element-margin-top: calc(var(--font-size) * 4);
}

.section_opinie .kafelki_slider_loop_effect_container,
.section_opinie .kafelek_opinie_google_container {
    margin-top: var(--section-opinie-element-margin-top);
}

.home_news_section .news_card {
    --news-card-date-color: rgba(0, 0, 0, 0.62);
    --news-card-title-color: rgba(0, 0, 0, 1);
    --news-card-excerpt-color: rgba(0, 0, 0, 1);
}

/* =================================== */
/* Realizacje                          */
/* =================================== */

.home_realizations_section {
    /* Układ sekcji */
    --home-realizations-row-gap: calc(var(--font-size) * 2.4);
    --home-realizations-card-gap: calc(var(--font-size) * 1.8);
    --home-realizations-loop-margin-top: calc(var(--padding-size) * 2.4);
    --home-realizations-loop-padding-block: calc(var(--font-size) * 0.8);
    --home-realizations-second-row-offset: calc(var(--home-realizations-card-width) * -0.42);

    /* Kafelek */
    --home-realizations-card-width-desktop: 520px;
    --home-realizations-card-width: clamp(
        360px,
        38vw,
        var(--home-realizations-card-width-desktop)
    );
    --home-realizations-card-ratio: 4 / 3;
    --home-realizations-card-border:
        var(--border-width-thin) solid rgba(var(--motyw-kontekst-tekst-rgb), 0.1);
    --home-realizations-card-background: rgba(var(--motyw-kontekst-tekst-rgb), 0.04);
    --home-realizations-card-shadow: var(--motyw-cien-style-1);
    --home-realizations-card-shadow-hover: var(--motyw-cien-style-1-hover);
    --home-realizations-card-border-hover:
        rgba(var(--motyw-kontekst-akcent-rgb), 0.62);
    --home-realizations-card-hover-offset: calc(var(--font-size) * -0.3);

    /* Zdjęcie i nakładka */
    --home-realizations-image-scale: 1.001;
    --home-realizations-image-scale-hover: 1.055;
    --home-realizations-image-filter-hover: saturate(0.88) contrast(1.04);
    --home-realizations-overlay-min-height: 46%;
    --home-realizations-overlay-padding: calc(var(--padding-size) * 1.7);
    --home-realizations-overlay-gap: calc(var(--font-size) * 0.55);
    --home-realizations-overlay-offset: calc(var(--font-size) * 1.2);
    --home-realizations-overlay-gradient:
        linear-gradient(
            180deg,
            transparent 26%,
            rgba(0, 0, 0, 0.12) 52%,
            rgba(0, 0, 0, 0.82) 100%
        );
    --home-realizations-overlay-opacity: 0.28;
    --home-realizations-overlay-text-color: #fff;

    /* Typografia */
    --home-realizations-title-max-width: 22ch;
    --home-realizations-title-font-size:
        clamp(
            calc(var(--main-typo-heading-5-size) * 0.86),
            2vw,
            var(--main-typo-heading-4-size)
        );
    --home-realizations-title-line-height: 1.02;
    --home-realizations-title-letter-spacing: calc(var(--font-size) * -0.025);
    --home-realizations-location-gap: calc(var(--font-size) * 0.7);
    --home-realizations-location-font-size:
        calc(var(--main-typo-body-small-size) * 1.15);
    --home-realizations-location-line-height: 1.35;
    --home-realizations-location-color: rgba(255, 255, 255, 0.86);
    --home-realizations-location-line-width: calc(var(--font-size) * 2.4);
    --home-realizations-location-line-thickness: 2px;

    /* Interakcje */
    --home-realizations-transition-duration: 0.34s;
    --home-realizations-image-transition-duration: 0.7s;
    --home-realizations-image-filter-duration: 0.5s;
    --home-realizations-image-easing: cubic-bezier(0.22, 0.61, 0.36, 1);

    overflow: hidden;
}

.home_realizations_section--ratio-16-9 {
    --home-realizations-card-ratio: 16 / 9;
}

.home_realizations_section--ratio-4-3 {
    --home-realizations-card-ratio: 4 / 3;
}

.home_realizations_heading_grid {
    align-items: end;
}

.home_realizations_heading_grid > .naglowek_btn_container:last-child {
    justify-self: end;
    align-self: end;
}

.home_realizations_loop {
    width: 100vw;
    margin-top: var(--home-realizations-loop-margin-top);
    margin-left: calc(50% - 50vw);
    /* overflow: hidden; */
}

.home_realizations_section .kafelki_kolaz_slider_scroll_loop_container {
    width: 100%;
    padding-block: var(--home-realizations-loop-padding-block);
    display: grid;
    gap: var(--home-realizations-row-gap);
    /* overflow: hidden; */
}

.home_realizations_row {
    width: max-content;
    display: flex;
    align-items: stretch;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

.home_realizations_cycle {
    flex: 0 0 auto;
    padding-right: var(--home-realizations-card-gap);
    display: flex;
    align-items: stretch;
    gap: var(--home-realizations-card-gap);
}

.home_realization_gallery_card {
    width: var(--home-realizations-card-width);
    min-width: var(--home-realizations-card-width);
    flex: 0 0 var(--home-realizations-card-width);
    margin: 0;
}

.home_realization_gallery_link {
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    aspect-ratio: var(--home-realizations-card-ratio);
    border: var(--home-realizations-card-border);
    background: var(--home-realizations-card-background);
    box-shadow: var(--home-realizations-card-shadow);
    text-decoration: none;
    transition:
        transform var(--home-realizations-transition-duration) ease,
        box-shadow var(--home-realizations-transition-duration) ease,
        border-color var(--home-realizations-transition-duration) ease;
}

.home_realization_gallery_link::after {
    content: "";
    inset: 0;
    position: absolute;
    z-index: 1;
    background: var(--home-realizations-overlay-gradient);
    opacity: var(--home-realizations-overlay-opacity);
    transition: opacity var(--home-realizations-transition-duration) ease;
    pointer-events: none;
}

.home_realization_gallery_image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(var(--home-realizations-image-scale));
    transition:
        transform var(--home-realizations-image-transition-duration)
            var(--home-realizations-image-easing),
        filter var(--home-realizations-image-filter-duration) ease;
}

.home_realization_gallery_overlay {
    min-height: var(--home-realizations-overlay-min-height);
    padding: var(--home-realizations-overlay-padding);
    inset: auto 0 0;
    position: absolute;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: var(--home-realizations-overlay-gap);
    color: var(--home-realizations-overlay-text-color);
    opacity: 0;
    transform: translate3d(0, var(--home-realizations-overlay-offset), 0);
    transition:
        opacity var(--home-realizations-transition-duration) ease,
        transform var(--home-realizations-transition-duration) ease;
    pointer-events: none;
}

.home_realization_gallery_title {
    max-width: var(--home-realizations-title-max-width);
    display: block;
    font-family: var(--font-family-cabinet);
    font-size: var(--home-realizations-title-font-size);
    font-weight: 700;
    line-height: var(--home-realizations-title-line-height);
    letter-spacing: var(--home-realizations-title-letter-spacing);
    color: inherit;
    text-wrap: balance;
}

.home_realization_gallery_location {
    display: flex;
    align-items: center;
    gap: var(--home-realizations-location-gap);
    font-family: var(--font-family-open-sans);
    font-size: var(--home-realizations-location-font-size);
    font-weight: 600;
    line-height: var(--home-realizations-location-line-height);
    color: var(--home-realizations-location-color);
}

.home_realization_gallery_location::before {
    content: "";
    width: var(--home-realizations-location-line-width);
    height: var(--home-realizations-location-line-thickness);
    flex: 0 0 auto;
    background: var(--motyw-kontekst-akcent);
}

.home_realization_gallery_link:hover,
.home_realization_gallery_link:focus-visible {
    outline: none;
    border-color: var(--home-realizations-card-border-hover);
    box-shadow: var(--home-realizations-card-shadow-hover);
    transform: translateY(var(--home-realizations-card-hover-offset));
}

.home_realization_gallery_link:hover::after,
.home_realization_gallery_link:focus-visible::after {
    opacity: 1;
}

.home_realization_gallery_link:hover .home_realization_gallery_image,
.home_realization_gallery_link:focus-visible .home_realization_gallery_image {
    filter: var(--home-realizations-image-filter-hover);
    transform: scale(var(--home-realizations-image-scale-hover));
}

.home_realization_gallery_link:hover .home_realization_gallery_overlay,
.home_realization_gallery_link:focus-visible .home_realization_gallery_overlay {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.home_realizations_row:nth-child(2) {
    margin-left: var(--home-realizations-second-row-offset);
}

/* Urządzenia bez rzeczywistego hovera pokazują treść kafelka stale. */
@media (hover: none), (pointer: coarse) {
    .home_realization_gallery_link::after {
        opacity: 0.86;
    }

    .home_realization_gallery_overlay {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1200px) {
    .home_realizations_section {
        --home-realizations-card-width:
            clamp(
                340px,
                48vw,
                min(var(--home-realizations-card-width-desktop), 560px)
            );
    }
}

@media (max-width: 1024px) {
    .home_realizations_section {
        --home-realizations-card-width:
            clamp(
                320px,
                58vw,
                min(var(--home-realizations-card-width-desktop), 520px)
            );
    }

    .home_realizations_heading_grid > .naglowek_btn_container:last-child {
        justify-self: stretch;
    }
}

@media (max-width: 767px) {
    .home_realizations_section {
        --home-realizations-row-gap: calc(var(--font-size) * 1.4);
        --home-realizations-card-gap: calc(var(--font-size) * 1.1);
        --home-realizations-card-width: min(86vw, 440px);
        --home-realizations-loop-margin-top: calc(var(--padding-size) * 1.6);
        --home-realizations-overlay-padding: calc(var(--padding-size) * 1.25);
        --home-realizations-title-max-width: 19ch;
        --home-realizations-title-font-size:
            calc(var(--main-typo-heading-5-size) * 0.94);
        --home-realizations-location-font-size: var(--main-typo-body-small-size);
    }

    .home_realizations_heading_grid {
        grid-template-columns: 1fr;
        gap: calc(var(--font-size) * 1.6);
    }

    .home_realizations_heading_grid > .naglowek_btn_container:last-child {
        justify-self: stretch;
    }

    .home_realizations_heading_grid .btn_style_1 {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home_realizations_row {
        transform: none !important;
        will-change: auto;
    }

    .home_realizations_loop {
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .home_realizations_section .kafelki_kolaz_slider_scroll_loop_container {
        overflow: visible;
    }

    .home_realizations_cycle[data-cycle="1"],
    .home_realizations_cycle[data-cycle="3"] {
        display: none;
    }

    .home_realization_gallery_link,
    .home_realization_gallery_image,
    .home_realization_gallery_overlay,
    .home_realization_gallery_link::after {
        transition: none !important;
    }
}
