/* -------------------------------------------------- SECTION BANNER -------------------------------- */
.section_banner {
    text-align: center;

    width: 100%;
    padding: calc(var(--vh) * 10) 0 calc(var(--vh) * 2);
}

.branches .logo {
    height: 9.2rem;
    margin-bottom: -26px;
}




/* ----------------------------------------------------- BRANCHES ----------------------------------- */
.branches_container {
    display: grid;
    grid-template-rows: repeat(5, auto);
    gap: 20px 0;

    width: 100%;
    padding: 50px 4%;
}
.branches_container.sk {
    grid-template-rows: repeat(4, auto);
}

.bran_box {
    position: relative;
    overflow: hidden;

    display: flex;
    align-items: flex-end;
    padding: calc(var(--vh) * 12) 10px 20px;

    color: var(--white);
    text-decoration: none;
    cursor: pointer;
    isolation: isolate;
    border-radius: 10px;

    transition: box-shadow .6s;
}

.bran_text {
    position: relative;
    z-index: 1;
    width: 100%;
}

.bran_box p {
    margin-bottom: 12px;
}

.bran_bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    z-index: 0;
}

.bran_bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;

    background: linear-gradient(
        to top,
        rgba(0,0,0,0.95) 0%,
        rgba(0,0,0,0.6) 45%,
        rgba(0,0,0,0.3) 90%,
        rgba(0,0,0,0.15) 100%
    );
}

.surface .bran_bg { background-image: url(../img/main_surface.webp); }
.signs .bran_bg { background-image: url(../img/main_vdz.webp); }
.build .bran_bg { background-image: url(../img/main_build.jpeg); background-position: center center; }
.fabric .bran_bg { background-image: url(../img/main_fabric.webp); }
.floor .bran_bg { background-image: url(../img/main_floor.webp); background-position: center bottom; }

.podlahoviny .bran_bg { background-image: url(../podlahove_studio/img/floor_img.jpg); }
.dvere .bran_bg { background-image: url(../podlahove_studio/img/floor_1.jpg); }







/* ------------------------------------------------------ MOBILE HORIZONTAL --------------------------- */
@media (orientation: landscape) and (max-height: 500px) {
    .section_banner {
        padding: calc(var(--vh) * 10) 0 calc(var(--vh) * 6);
    }

    .branches .logo {
        height: 10.2rem;
        margin-bottom: -30px;
    }

    .branches .font_section {
        margin-left: 10px;
    }




    .branches_container {
        padding: 20px 6% 40px;
    }

    .bran_box {
        padding: calc(var(--vh) * 18) 10px 20px;
    }
}









/* ---------------------------------------------------------- TABLET ---------------------------------- */
@media (min-width: 768px) {
    .section_banner {
        padding: calc(var(--vh) * 6) 0 calc(var(--vh) * 6);
    }

    .branches .logo {
        height: 11.6rem;
        margin-bottom: -36px;
    }

    .branches .font_section {
        margin-left: 10px;
    }



    .branches_container {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto 50px auto auto;
        gap: 20px;

        padding: 20px 6% 40px;
    }
    .floors .branches_container {
        grid-template-rows: auto;
    }
    .branches_container.sk{
        grid-template-rows: auto 50px auto;
    }

    .bran_box {
        padding: calc(var(--vh) * 6) 16px 20px;
    }

    .surface { grid-column: 1/2; grid-row: 1/3; }
    .signs   { grid-column: 2/3; grid-row: 1/2; }
    .build   { grid-column: 1/2; grid-row: 3/4; }
    .fabric  { grid-column: 2/3; grid-row: 2/4; }
    .floor   { grid-column: 1/3; grid-row: 4/5; }
}









/* -------------------------------------------------- NOTEBOOK ------------------------------------ */
@media (min-width: 1024px) {
    .section_banner {
        padding: calc(var(--vh) * 10) 0 calc(var(--vh) * 6);
    }



    .branches_container {
        gap: 36px;
        padding: 40px 12% 100px;
    }

    .bran_box {
        padding: calc(var(--vh) * 12) 16px 20px;
    }
}









/* --------------------------------------------------- DELL ------------------------------------- */
@media (min-width: 1200px) {
    .branches_container {
        grid-template-rows: 200px 100px 200px 200px;
        padding: 40px 10% 100px;

        cursor: default;
    }
    .floors .branches_container {
        grid-template-rows: 260px;
    }
    .branches_container.sk {
        grid-template-rows: 200px 100px 200px;
    }

    .bran_box {
        padding: 20px;
    }

    .bran_more {
        overflow: hidden;

        max-height: 0;
        opacity: 0;

        transform: translateY(20px);

        transition:
            max-height 1s ease,
            opacity .8s ease,
            transform 1s ease;
    }

    .bran_box:is(:hover, :focus-visible) .bran_more {
        max-height: 300px;
        opacity: 1;
        transform: translateY(0);
    }
}



/* ----------------------------------------------------- Standard Display ----------------------------- */
@media (min-width: 1440px) {
    .section_banner {
        padding: calc(var(--vh) * 10) 0 calc(var(--vh) * 6);
    }

    .branches .logo {
        height: 13.6rem;
        margin-bottom: -42px;
    }

    .branches_container {
        grid-template-rows: 250px 150px 250px 220px;
        gap: 28px;

        padding: 40px 16% 100px;
    }

    .branches_container.sk{
        grid-template-rows: 250px 150px 250px;
    }
}

/* Stejný CTA efekt jako u services; odkazem je celá karta. */
.bran_btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-size: var(--fs-body);
    font-weight: 600;
    line-height: 1.4;
    transition: color .3s ease, gap .4s cubic-bezier(.22,.61,.36,1);
}
.bran_arrow {
    color: var(--orange);
    font-size: 22px;
    line-height: 1;
    transition: transform .4s cubic-bezier(.22,.61,.36,1);
}

@media (hover: hover) {
    .bran_box:hover {
        box-shadow: 0 0px 48px 0px rgba(246, 132, 43, .4);
    }

    .bran_box:hover .bran_btn {
        color: var(--orange); gap: 14px;
    }

    .bran_box:hover .bran_arrow {
        transform: translateX(4px);
    }
}

.bran_box:focus-visible {
    outline: 2px solid var(--orange);
    outline-offset: 4px;
}
.bran_box:focus-visible .bran_btn {
    color: var(--orange);
    gap: 14px;
}

.bran_box:focus-visible .bran_arrow {
    transform: translateX(4px);
}

/* Dotykový displej nesmí potřebovat hover pro zobrazení popisu. */
@media (hover: none) {
    .bran_more {
        max-height: none;
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bran_more, .bran_btn, .bran_arrow {
        transition: none;
    }
}
