.koi-places-to-visit {
    --container-gutter-vertical: 2rem;
    --places-gap: 0.75rem;
    --places-heading-font-size: 2rem;

    --place-size: 100%;

    --place-padding-inline: 0.75rem;
    --place-padding-block: 2rem;
    --place-label-font-size: 1.25rem;

    @media (width >=24rem) {
        --place-size: 40%;
    }

    @media (width >=40rem) {
        --place-size: 250px;
    }

    @media (width >=48rem) {
        --container-gutter-vertical: 4rem;

        --place-padding-inline: 1.5rem;

        --place-padding-block: 2rem;
        --place-label-font-size: 2rem;

        --places-gap: 2rem;
        --places-heading-font-size: 3rem;
    }
}

.koi-places-to-visit-places {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--place-size), 1fr));
    gap: var(--places-gap);
}

.koi-places-to-visit-heading {
    text-transform: uppercase;
    font-size: var(--places-heading-font-size);

    font-style: normal;
    font-weight: 700;
    line-height: 100%;

}

.koi-places-to-visit-heading,
.koi-places-to-visit-content {
    text-wrap: balance;
    text-align: center;
}

.koi-places-to-visit-place {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;

    padding-inline: var(--place-padding-inline);
    padding-block: var(--place-padding-block);
}

.koi-places-to-visit-place-label {
    text-align: center;
    font-family: var(--fonts-maiah);
    font-size: var(--place-label-font-size);
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: -1px;
    text-wrap: nowrap;
}