:root {
        --color-dark: rgba(43, 43, 44, 1);
        --color-black: rgba(15, 18, 23, 1);
        --color-white: rgba(255, 255, 255, 1);
        --color-green-primary: rgba(76, 197, 116, 1);
        --color-green-button: rgba(85, 205, 108, 1);
        --color-green-button-light: rgba(97, 215, 119, 1);
        --color-green-button-hover: rgba(112, 209, 144, 1);
        --color-green-button-active: rgba(148, 220, 172, 1);
        --color-green-light-bg: rgba(219, 243, 227, 1);
        --color-green-dark: rgba(61, 158, 93, 1);
        --color-green-card-bg: rgba(183, 232, 199, 1);
        --color-gray-text: rgba(85, 86, 88, 1);
        --color-gray-text-secondary: #555658;
        --color-gray-subtitle: rgba(128, 130, 132, 1);
        --color-gray-bg: rgba(238, 239, 241, 1);
        --color-gray-icon: rgba(170, 173, 176, 0.4);
        --color-gray-line: rgba(230, 232, 234, 1);
        --color-gray-border: rgba(213, 216, 220, 1);
        --color-blue-dark: rgba(74, 90, 114, 1);
        --color-sort-list-bg: rgba(219, 243, 227, 0.7);

        --contain-width: 1395px;
        --padding-tablet: 60px 30px;
        --padding-mobile: 60px 18px 60px 18px;
        --border-radius-sm: 10px;
        --border-radius-md: 15px;
        --border-radius-lg: 20px;
        --border-radius-btn: 119px;

        --font-family-primary: 'Open Sans', sans-serif;
        --font-family-secondary: 'Inter', sans-serif;
        --font-family-tertiary: 'Roboto Flex', sans-serif;
        --font-size-h1: 40px;
        --font-size-h2: 20px;
        --font-size-text: 16px;
        --font-size-xs: 11px;
        --font-size-large: 50px;
        --font-size-tablet-h1: 27px;
        --line-height: 1.4;
        --max-width-text: 741px;
    }

    .catalog {
        padding: var(--padding-tablet);
    }

    .catalog__container {
        max-width: var(--contain-width);
        margin: 0 auto;
    }

    .catalog__sort {
        margin-bottom: 45px;
    }

    .catalog__sort-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 15px;
        list-style: none;
    }

    .catalog__sort-tag {
        font-family: var(--font-family-primary);
        font-size: var(--font-size-text);
        font-weight: 400;
        color: var(--color-green-primary);
        padding: 15px 20px;
        background-color: var(--color-green-light-bg);
        border: none;
        border-radius: var(--border-radius-btn);
        cursor: pointer;
        transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
        list-style: none;
    }

    .catalog__sort-tag:hover {
        background-color: var(--color-green-card-bg);
        color: var(--color-green-primary);
    }

    .catalog__sort-tag--active {
        background-color: var(--color-green-button-active);
        color: var(--color-white);
    }

    .catalog__sort-trigger {
        display: none;
        width: 100%;
        padding: 14px 20px;
        font-family: var(--font-family-primary);
        font-size: var(--font-size-text);
        font-weight: 400;
        color: var(--color-green-primary);
        background-color: var(--color-green-light-bg);
        border: none;
        border-radius: var(--border-radius-btn);
        cursor: pointer;
        align-items: center;
        justify-content: center;
        gap: 8px;
        position: relative;
        transition: background-color 0.2s ease, color 0.2s ease;
    }

    .catalog__sort-trigger--open {
        background-color: var(--color-green-button-active);
        color: var(--color-white);
    }

    .catalog__sort-trigger--open .catalog__sort-trigger-icon {
        filter: brightness(0) invert(1);
        transform: rotate(180deg);
    }

    .catalog__sort-trigger-icon {
        width: 9px;
        height: 7px;
        flex-shrink: 0;
        transition: filter 0.2s ease, transform 0.2s ease;
    }

    .catalog__sort-list {
        display: none;
        flex-direction: column;
        gap: 0;
        margin-top: -20px;
        padding-top: 20px;
        border: none;
        overflow: hidden;
        list-style: none;
        background-color: var(--color-sort-list-bg);
        border-radius: 0 0 50px 50px;
    }

    .catalog__sort-list--open {
        display: flex;
    }

    .catalog__sort-list-item {
        padding: 14px 20px;
        font-family: var(--font-family-primary);
        font-size: var(--font-size-text);
        font-weight: 400;
        color: var(--color-green-primary);
        background-color: transparent;
        cursor: pointer;
        transition: background-color 0.2s ease;
        list-style: none;
        border: none;
        width: 100%;
        text-align: center;
    }

    .catalog__sort-list-item:hover {
        background-color: rgba(183, 232, 199, 1);
    }

    .catalog__card--hidden {
        display: none !important;
    }

    .catalog__cards {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }

    .catalog__card {
        position: relative;
        min-height: 468px;
        border-radius: var(--border-radius-lg);
        overflow: hidden;
        text-decoration: none;
        color: var(--color-white);
        display: block;
        transition: box-shadow 0.3s ease, transform 0.3s ease;
    }

    .catalog__card-bg {
        position: absolute;
        inset: 0;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-color: var(--color-gray-bg);
    }

    .catalog__card-bg::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(15, 18, 23, 0.9) 0%, rgba(15, 18, 23, 0.4) 40%, transparent 70%);
    }

    .catalog__card-icon-wrap {
        position: absolute;
        top: 20px;
        left: 20px;
        width: 70px;
        height: 70px;
        border-radius: 50%;
        background-color: var(--color-white);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
    }

    .catalog__card-icon {
        width: 30px;
        height: 30px;
        display: block;
        -webkit-mask-size: contain;
        mask-size: contain;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        background-color: var(--color-dark);
        transition: background-color 0.3s ease;
    }

    .catalog__card:hover .catalog__card-icon {
        background-color: var(--color-green-primary);
    }

    .catalog__card-content {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 20px 16px 20px;
        z-index: 2;
    }

    .catalog__card-tag {
        font-family: var(--font-family-primary);
        font-size: var(--font-size-text);
        font-weight: 700;
        line-height: 1.2;
        display: inline-block;
        margin-bottom: 10px;
        padding: 6px 14px;
        background-color: var(--color-green-primary);
        border-radius: 100px;
        color: var(--color-white);
    }

    .catalog__card-title {
        font-family: var(--font-family-primary);
        font-size: var(--font-size-tablet-h1);
        font-weight: 700;
        line-height: 1.3;
        margin-bottom: 12px;
        color: var(--color-white);
    }

    .catalog__card-text {
        font-family: var(--font-family-tertiary);
        font-size: var(--font-size-h2);
        font-weight: 400;
        line-height: var(--line-height);
        margin: 0;
        color: rgba(255, 255, 255, 0.9);
    }

    .catalog__card-br--mobile {
        display: none;
    }

    @media (min-width: 1001px) {
        .catalog__card-br--mobile {
            display: block;
        }
    }

    @media (max-width: 1000px) {
        .catalog__sort-tags {
            display: none;
        }

        .catalog__sort-trigger {
            display: flex;
        }

        .catalog__sort-list {
            display: none;
        }

        .catalog__sort-list--open {
            display: flex;
        }

        .catalog__cards {
            grid-template-columns: repeat(2, 1fr);
            gap: 25px;
        }

        .catalog__card {
            min-height: 377px;
        }

        .catalog__card-tag {
            font-size: var(--font-size-xs);
        }

        .catalog__card-title {
            font-size: var(--font-size-h2);
        }

        .catalog__card-text {
            font-size: var(--font-size-text);
        }

        .catalog__card-icon-wrap {
            width: 60px;
            height: 60px;
        }

        .catalog__card-icon {
            width: 26px;
            height: 26px;
        }
    }

    @media (max-width: 500px) {
        .catalog {
            padding: var(--padding-mobile);
        }

        .catalog__cards {
            grid-template-columns: 1fr;
            gap: 15px;
        }

        .catalog__card {
            min-height: auto;
            background-color: var(--color-white);
            border: 1px solid var(--color-green-primary);
            border-radius: var(--border-radius-sm);
            padding: 20px;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
        }

        .catalog__card:hover {
            background-color: var(--color-green-primary);
            border-color: var(--color-green-primary);
        }

        .catalog__card-bg {
            display: none;
        }

        .catalog__card-icon-wrap {
            position: static;
            width: 60px;
            height: 60px;
            background-color: var(--color-green-primary);
            margin-bottom: 25px;
            transition: background-color 0.3s ease;
        }

        .catalog__card:hover .catalog__card-icon-wrap {
            background-color: var(--color-white);
        }

        .catalog__card-icon {
            width: 30px;
            height: 30px;
            background-color: var(--color-white);
            transition: background-color 0.3s ease;
        }

        .catalog__card:hover .catalog__card-icon {
            background-color: var(--color-green-primary);
        }

        .catalog__card-tag {
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        .catalog__card:hover .catalog__card-tag {
            background-color: var(--color-white);
            color: var(--color-green-primary);
        }

        .catalog__card-content {
            position: static;
            padding: 0;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
        }

        .catalog__card-tag {
            margin-bottom: 10px;
        }

        .catalog__card:hover .catalog__card-title {
            color: var(--color-white);
        }

        .catalog__card-title {
            color: var(--color-gray-text-secondary);
            margin-bottom: 10px;
            transition: color 0.3s ease;
        }

        .catalog__card:hover .catalog__card-text {
            color: var(--color-white);
        }

        .catalog__card-text {
            color: var(--color-gray-text-secondary);
            transition: color 0.3s ease;
        }
    }
