.region-container {
    display: none;
}
.region-container.is-open {
    display: flex;
}
.region-block {
    position:relative;
    cursor:pointer;
    width: 300px;
}

.region-block__name-container {
    border-radius: 8px;
    width:100%;
    user-select:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    padding:12px 8px;
    display:flex;
    height:100%;
    max-height: 48px;
    transition: all .2s ease;
    gap: 4px;
}

.region-block__name-container:hover {
    background: var(--grey--grey90, #F7F7F7);
}
.region-block__name-container:focus,
.region-block__name-container:active {
    background: var(--grey--grey80, #D7D7D7);
}
.region-block__name,
.region__icon {
    display: flex;
    align-items: center;
}
.region-block__name,
.region-block__name--mobile {
    width:100%;
    justify-content:flex-start;
    gap:5px;
    color:var(--black--black10,#222324);
    font-size:16px;
    font-weight:500;
    line-height:120%
}
.region-container {
    flex-direction: column;
    gap: 16px;
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 900px;
    max-height: 600px;
    overflow-y: auto;
    padding: 24px 12px;
    z-index: 999;
    border-radius: 8px;
    background: var(--white--white100, #FFF);
    box-shadow: 0px 6px 10px 0px rgba(34, 35, 36, 0.10), 0px 2px 3px 0px rgba(34, 35, 36, 0.15);
    margin-top: 10px;
    cursor: auto;
}

/* поле поиска */
.region-container label {
    display: flex;
    margin: 0;
}

.region-container input[type="text"] {
    margin: 0 12px;
    /*width: 100%;*/
    height: 48px;
    padding: 16px;
    font-size: 16px;
    border: 1px solid var(--grey--grey80, #D7D7D7);
    border-radius: 8px;
    flex-grow: 1;
}

/* блок одной области */
.state-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.state__label,
.state__center,
.state__city {
    justify-self: start;
    width: max-content;
    max-width: 100%;
    border-radius: 100px;
    padding: 4px 12px;
    border: none;
    background: transparent;
    text-align: left;
    color: var(--black--black10, #222324);
    font-size: 16px;
}
/* заголовок области */
.state__label {
    font-weight: 700;
}

/* САМОЕ ВАЖНОЕ: сетка городов */
.state__content {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 32px;
    row-gap: 4px;
}

/* центр области */
.state__center {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* обычный город */
.state__city {
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.state__label:hover,
.state__city:hover,
.state__center:hover {
    background: var(--grey--grey90, #F7F7F7);
}
.state__label.active,
.state__city.active,
.state__center.active {
    background: var(--azure--azure95, #CCE2FA);
}

@media (max-width: 1280px) {
    .state__content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media only screen and (max-width: 768px) {

    .state__content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}