/* hero ------------------------------------------------------------ */
.hero, .hero img{
    height: 320px;
}

/* Main categories ----------------------------------------------------------- */
.categories {
    padding: 80px 0;
}
.categories .title {
    margin-bottom: 70px;
    text-align: center;
}
.categories .section-description {
    width: 100%;
    max-width: 850px;
    margin: 20px auto 0;
    font-size: 1.071rem;
    text-align: center;
}
.categories .grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.categories .card {
    overflow: hidden;
}
.categories .card > a {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
}
.categories .card img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    filter: brightness(1);
    transition:
            transform 0.4s ease,
            filter 0.4s ease;
}
.categories .category-info {
    padding: 12px;
    text-align: center;
}
.categories .category-title {
    margin: 0 0 8px;
    font-size: 1.15rem;
}
.categories .category-action::after {
    content: " ←";
}
.categories .card:hover img,
.categories .card:focus-within img {
    transform: scale(1.03);
    filter: brightness(0.92);
}
.categories .categories-empty {
    text-align: center;
}
@media (max-width: 992px) {
    .categories .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .categories .grid {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .categories .card img {
        transition: none;
    }
}