body {
    background: var(--beige_gradient_bg_color);
}

.cart {
    padding: 0 0 3rem 0;
    margin-bottom: 3rem;
}

.header_block {
    position: relative;
    width: 100%;
    height: 17rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
    .header_block .img_box {
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        display: flex;
        justify-content: center;
        overflow: hidden;
        border-radius: 0.5rem;
    }
        .img_box img {
            width: 100%;
            object-fit: cover;
            object-position: center 45%;
        }

    .header_block .front_page_header {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin-top: 2rem;
    }
        .front_page_header .page_header {
            color: var(--dark_color);
            background: linear-gradient(to right, #f7f3e3, #ebdec1, #f2e2cd);
            border-radius: 0 var(--default_border_radius) var(--default_border_radius) 0;
            box-shadow: var(--default_shadow);
            padding: 0.7rem 2.5rem 0.7rem 4.5rem;
        }

    .header_block .search_block {
        position: relative;
        display: flex;
        justify-content: center;
        margin-bottom: -2.5rem;
    }
        .search_block .search_sub_block {
            width: 60%;
            padding: 1.2rem 5rem;
            background-color: var(--white_color);
            box-shadow: var(--default_shadow);
            border-radius: 0.6rem;
        }
            .search_sub_block .search_input_box {
                border-radius: var(--default_border_radius);
                margin: 0;
            }

.categories_block {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3rem 0;
    margin-top: 4.5rem;
    padding: 0 3rem;
}
.categories_block .category_item {
    width: 100%;
    border: 1px solid var(--gray_very_light_color);
    border-radius: 0.4rem;
}
    .category_item .category_header_row {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 0 0.5rem;
        align-items: center;
        padding: 0.5rem 0.7rem;
        background: var(--gold_gradient_color);
        border-radius: 0.4rem 0.4rem 0 0;
    }
        .category_header_row .title_box {
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 0.1rem 0;
            padding: 0.1rem 1rem;
            color: var(--dark_color_2);
        }
            .category_header_row .title_box .title {
                font-size: 1.2rem;
                font-family: RobotoMedium;
            }
            .category_header_row .title_box .subtitle {
                font-size: 1.1rem;
            }

    .category_item .category_body_row {
        min-height: 2.5rem;
        display: flex;
        flex-direction: column;
    }
        .category_body_row .services_block {
            display: flex;
            flex-direction: column;
        }
            .services_block .service_item {
                position: relative;
                display: grid;
                grid-template-columns: 1fr minmax(5rem, auto);
                grid-gap: 0 2rem;
                justify-content: space-between;
                align-items: center;
                padding: 0.5rem 0.7rem 0.5rem 1rem;
                border-radius: 0 0 0.4rem 0.4rem;
                cursor: pointer;
            }
            .services_block .service_item:hover {
                background-color: var(--gray_very_light_color_1);
            }
            .services_block .service_item:active {
                background-color: var(--gray_very_light_color);
            }
                .service_item .title_box {
                    display: flex;
                    flex-direction: column;
                    align-items: start;
                    gap: 0 1rem;
                }
                    .service_item .title_box .title {
                        width: 100%;
                        font-size: 1.1rem;
                        color: var(--dark_color);
                    }
                    .service_item .title_box .description {
                        width: 100%;
                        font-size: 1rem;
                        color: var(--gray_gold_color);
                        text-align: start;
                        white-space: pre-line;
                        word-break: break-word;
                    }
                .service_item .price_box {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
                    .price_box .price {
                        color: var(--dark_color);
                        font-size: 1rem;
                        text-align: end;
                        word-break: break-word;
                    }

        .category_body_row .subcategories_block {
            display: flex;
            flex-direction: column;
            gap: 0.5rem 0;
        }
            .subcategories_block .subcategory_item {
                display: flex;
                flex-direction: column;
            }
                .subcategory_item .subcategory_header_row {
                    position: relative;
                    display: grid;
                    grid-template-columns: 1fr;
                    grid-gap: 0 0.5rem;
                    align-items: center;
                    padding: 0.5rem 0.7rem 0.2rem 0.7rem;
                    border-radius: 0 0 0.4rem 0.4rem;
                }
                    .subcategory_header_row .title_box {
                    }
                        .subcategory_header_row .title_box .title {
                            font-size: 1.1rem;
                            text-align: center;
                        }
                        .subcategory_header_row .title_box .description {
                            font-size: 1rem;
                            color: var(--gray_gold_color);
                            text-align: center;
                        }

    .categories_block .category_description_row {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0.6rem 32%;
    }
        .category_description_row .category_description {
            text-align: center;
            font-size: 1rem;
            white-space: pre-line;
            word-break: break-word;
            color: var(--gray_gold_color);
        }

@media (max-width: 1280px) {
    .categories_block .category_description_row {
        padding: 0.6rem 25%;
    }
}

@media (max-width: 1024px) {
    .search_block .search_sub_block {
        width: 80%;
    }

    .categories_block .category_description_row {
        padding: 0.6rem 20%;
    }
}

@media (max-width: 768px) {
    .search_block .search_sub_block {
        width: 95%;
    }

    .category_item .category_header_row,
    .subcategory_item .subcategory_header_row {
        padding: 0.5rem 0.2rem;
    }

    .services_block .service_item {
        grid-gap: 0 0.5rem;
        padding: 0.5rem 1rem;
    }

    .categories_block {
        padding: 0 1rem;
    }
        .categories_block .category_description_row {
            padding: 0.6rem 10%;
        }
}

.no_data_block {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-grow: 1;
    font-size: 1.5rem;
    color: var(--gray_color);
    padding: 1.5rem 1rem;
}

@media (max-width: 480px) {
    .front_page_header .page_header {
        padding: 0.7rem 2rem 0.7rem 2.5rem;
    }
    .search_block .search_sub_block {
        padding: 1.2rem 1rem;
    }

    .categories_block {
        padding: 0 0.5rem;
    }
        .categories_block .category_item {
            border: none;
        }
            .category_item .category_header_row {
                background: var(--gold_color_lite);
                border-radius: 0.4rem;
            }

    .category_body_row .services_block {
        gap: 1rem 0;
        margin-top: 0.5rem;
    }
        .services_block .service_item {
            grid-template-columns: 1fr;
            grid-gap: 0.5rem 0;
            background-color: var(--gray_very_light_color_1);
            border-radius: 0.5rem;
            padding: 0;
        }
            .service_item .title_box {
                padding: 0.5rem;
            }
            .service_item .price_box {
                display: flex;
                justify-content: flex-end;
            }
                .price_box .price {
                    border-radius: 0.5rem 0 0.5rem 0;
                    background-color: var(--gold_color_lite);
                    padding: 0.5rem 1rem;
                }

    .categories_block .category_description_row {
        padding: 0.6rem 0.5rem;
        margin-top: 1rem;
    }
}
