.content-shell {
    max-width: var(--container-narrow);
    padding: var(--board-padding);
    border-radius: var(--radius-board);
    background: var(--color-surface);
}

/* Shared information board for generated problem, series and service-area pages. */
.landing-specifics__board {
    position: relative;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    align-items: start;
    gap: var(--space-lg);
    overflow: hidden;
    border: 0.0625rem solid var(--color-border);
}

.landing-specifics__board::before {
    position: absolute;
    inset-block: var(--board-padding);
    left: 0;
    width: var(--space-2xs);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    background: var(--color-brand);
    content: "";
}

.landing-specifics__intro,
.landing-specifics__check {
    display: grid;
    align-content: start;
    gap: var(--space-sm);
}

.landing-specifics__label {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.landing-specifics__title,
.landing-specifics__check h3 {
    margin: 0;
    color: var(--color-text);
    font-weight: 800;
    line-height: var(--line-tight);
}

.landing-specifics__title {
    max-width: 38rem;
    font-size: var(--text-2xl);
}

.landing-specifics__check h3 {
    font-size: var(--text-lg);
}

.landing-specifics__lead {
    max-width: 42rem;
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-md);
    font-weight: 600;
}

.landing-specifics__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-lg);
    margin: var(--space-xs) 0 0;
    padding-top: var(--space-sm);
    border-top: 0.0625rem solid var(--color-border);
}

.landing-specifics__facts div {
    display: grid;
    gap: var(--space-2xs);
    min-width: 8rem;
}

.landing-specifics__facts dt {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 800;
    text-transform: uppercase;
}

.landing-specifics__facts dd {
    margin: 0;
    color: var(--color-text);
    font-weight: 800;
}

.landing-specifics__list {
    display: grid;
    margin: 0;
    padding: 0;
    border-top: 0.0625rem solid var(--color-border);
    list-style: none;
}

.landing-specifics__list li {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: var(--space-sm);
    align-items: start;
    padding-block: var(--space-sm);
    border-bottom: 0.0625rem solid var(--color-border);
    color: var(--color-text-muted);
    font-weight: 600;
}

.landing-specifics__list--causes li,
.landing-specifics__list--request li {
    grid-template-columns: 1.25rem minmax(0, 1fr);
}

.landing-specifics__index {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.landing-specifics__marker {
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.45rem;
    border-radius: var(--radius-md);
    background: var(--color-brand);
}

.landing-specifics__list strong {
    display: block;
    margin-bottom: var(--space-2xs);
    color: var(--color-text);
    font-size: var(--text-sm);
}

.landing-specifics__list a {
    color: var(--color-accent-ink);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 0.0625rem;
    text-underline-offset: var(--space-2xs);
}

.landing-specifics__note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-sm);
    align-items: start;
    margin-top: var(--space-xs);
    padding: var(--space-sm);
    border: 0.0625rem solid var(--color-accent-border);
    border-radius: var(--radius-card);
    background: var(--color-accent-soft);
}

.landing-specifics__note strong {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    text-transform: uppercase;
}

.landing-specifics__note p {
    margin: 0;
    color: var(--color-text);
    font-weight: 700;
}

.contacts-hero__actions .button--request {
    order: 2;
}

.full-price-board__top {
    display: block;
}

.full-price-list {
    display: grid;
    gap: var(--space-xs);
}

.full-price-groups {
    display: grid;
    gap: var(--space-md);
}

.full-price-group {
    display: grid;
    gap: var(--space-sm);
}

.full-price-group__head {
    display: grid;
    grid-template-columns: minmax(12rem, max-content) minmax(0, 1fr);
    align-items: end;
    gap: var(--space-sm);
}

.full-price-group__head h2 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-xl);
    line-height: var(--line-tight);
}

.full-price-group__head p {
    margin: 0;
    color: var(--color-text-muted);
    font-weight: 700;
}

.full-price-row {
    grid-template-columns: minmax(0, 1fr) minmax(10rem, auto);
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-sm) var(--card-padding);
}

.full-price-row span {
    color: var(--color-text);
    font-weight: 800;
}

.full-price-row strong {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-xs);
    color: var(--color-accent-ink);
    font-size: var(--text-lg);
    white-space: nowrap;
}

.full-price-row del {
    color: var(--color-text-muted);
    font-size: var(--text-md);
    font-weight: 700;
    text-decoration-thickness: 0.125rem;
}

.reviews-widget-layout {
    display: grid;
    grid-template-columns: minmax(0, 47.5rem) minmax(18rem, 1fr);
    gap: var(--space-md);
    align-items: start;
}

.yandex-reviews-widget {
    position: relative;
    width: 100%;
    max-width: 47.5rem;
    height: 50rem;
    overflow: hidden;
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
}

.yandex-reviews-widget iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.yandex-reviews-widget > a {
    position: absolute;
    right: var(--space-sm);
    bottom: var(--space-xs);
    left: var(--space-sm);
    overflow: hidden;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reviews-source-panel {
    display: grid;
    gap: var(--space-sm);
    align-content: start;
}

.reviews-source-panel__head {
    display: grid;
    gap: var(--space-xs);
}

.reviews-source-panel__head span,
.reviews-source-card > span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.reviews-source-panel__head h2 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-xl);
    line-height: var(--line-tight);
}

.reviews-platforms--aside {
    grid-template-columns: 1fr;
}

.reviews-platforms--aside .review-platform {
    min-height: 0;
}

.reviews-source-grid {
    display: grid;
    gap: var(--space-sm);
}

.reviews-source-card {
    display: grid;
    align-content: start;
    gap: var(--space-xs);
    padding: var(--card-padding);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background:
        radial-gradient(circle at 100% 0, var(--color-accent-soft), transparent 12rem),
        var(--color-surface-muted);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.reviews-source-grid--aside .reviews-source-card {
    min-height: 0;
}

.reviews-source-card:hover {
    border-color: var(--color-accent-border);
    box-shadow: var(--shadow-sm);
    transform: translateY(-0.0625rem);
}

.reviews-source-card img {
    width: auto;
    max-width: 12rem;
    height: 3rem;
    object-fit: contain;
}

.reviews-source-card__rating {
    color: var(--color-text);
    font-size: var(--text-4xl);
    line-height: var(--line-tight);
}

.reviews-source-card h3 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-lg);
    line-height: var(--line-tight);
}

.reviews-source-card p {
    margin: 0;
    color: var(--color-text-muted);
    font-weight: 700;
}

.contacts-hero {
    grid-template-columns: minmax(0, 0.76fr) minmax(30rem, 1fr);
    align-items: stretch;
}

.contacts-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-top: var(--space-xs);
}

.contacts-method-grid,
.contacts-address-note,
.contacts-step-grid {
    display: grid;
    gap: var(--card-gap);
}

.contacts-method-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contacts-method,
.contacts-address-note div {
    display: grid;
    align-content: start;
    gap: var(--space-xs);
    padding: var(--card-padding);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
}

.contacts-method {
    border-color: var(--color-white-alpha-14);
    background: var(--color-footer-surface);
    color: var(--color-text-inverse);
    text-decoration: none;
}

.contacts-method--accent {
    background:
        radial-gradient(circle at 100% 0, var(--color-brand-alpha-34), transparent 12rem),
        var(--color-footer-surface);
}

.contacts-address-note div {
    background:
        radial-gradient(circle at 100% 0, var(--color-accent-soft), transparent 14rem),
        var(--color-surface-muted);
}

.contacts-method > span,
.contacts-address-note span,
.contacts-step-grid span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.contacts-method > span {
    color: var(--color-accent-on-dark);
}

.contacts-method > strong,
.contacts-address-note strong,
.contacts-step-grid strong {
    font-size: var(--text-xl);
    font-weight: 800;
    line-height: var(--line-tight);
}

.contacts-method > strong {
    color: var(--color-text-inverse);
}

.contacts-address-note strong,
.contacts-step-grid strong {
    color: var(--color-text);
}

.contacts-method > p,
.contacts-address-note p,
.contacts-step-grid p {
    margin: 0;
    font-weight: 700;
}

.contacts-method > p {
    color: var(--color-dark-subtle);
}

.contacts-address-note p,
.contacts-step-grid p {
    color: var(--color-text-muted);
}

.contacts-socials {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    overflow: visible;
}

.contacts-socials .messenger-link + .messenger-link {
    margin-left: 0;
}

.contacts-map-board {
    grid-template-columns: minmax(25rem, 0.42fr) minmax(0, 1fr);
    align-items: stretch;
}

.contacts-map {
    min-height: 27rem;
    overflow: hidden;
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
}

.contacts-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 27rem;
    border: 0;
}

.contacts-step-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vacancies-hero,
.vacancies-contact {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.46fr);
    align-items: stretch;
}

.vacancies-hero {
    grid-template-columns: minmax(0, 0.85fr) minmax(24rem, 1fr);
}

.vacancies-hero__actions,
.vacancies-contact__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.vacancies-hero__actions {
    margin-top: var(--space-xs);
}

.vacancies-status,
.vacancies-grid {
    display: grid;
    gap: var(--card-gap);
}

.vacancies-status div,
.vacancies-grid article {
    display: grid;
    align-content: start;
    gap: var(--space-xs);
    padding: var(--card-padding);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
}

.vacancies-status div {
    border-color: var(--color-white-alpha-14);
    background: var(--color-footer-surface);
}

.vacancies-status div:first-child {
    background:
        radial-gradient(circle at 100% 0, var(--color-brand-alpha-34), transparent 12rem),
        var(--color-footer-surface);
}

.vacancies-status span,
.vacancies-grid span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.vacancies-status span {
    color: var(--color-accent-on-dark);
}

.vacancies-status strong {
    font-size: var(--text-xl);
    font-weight: 800;
    line-height: var(--line-tight);
}

.vacancies-status strong {
    color: var(--color-text-inverse);
}

.vacancies-status p,
.vacancies-grid p {
    margin: 0;
    font-weight: 700;
}

.vacancies-status p {
    color: var(--color-dark-subtle);
}

.vacancies-grid p {
    color: var(--color-text-muted);
}

.vacancies-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vacancies-grid h3 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-lg);
    font-weight: 800;
    line-height: var(--line-tight);
}

.vacancies-contact {
    align-items: center;
}

.vacancies-contact__actions {
    align-items: center;
    justify-content: flex-end;
}

.blog-card__meta,
.single-post__meta {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.blog-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.34fr);
    gap: var(--space-lg);
    align-items: start;
}

.blog-layout--article {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.36fr);
}

.blog-list-board,
.single-post__board,
.blog-archive__hero,
.related-posts {
    align-content: start;
}

.blog-list-board__head {
    max-width: 60rem;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
}

.related-posts .blog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.blog-card {
    display: grid;
    align-content: stretch;
    overflow: hidden;
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.blog-card:hover {
    border-color: var(--color-accent-border);
    box-shadow: var(--shadow-sm);
    transform: translateY(-0.0625rem);
}

.blog-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--color-surface);
}

.blog-card__media--placeholder {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 100% 0, var(--color-accent-soft), transparent 12rem),
        linear-gradient(135deg, var(--color-surface-muted), var(--color-surface));
}

.blog-card__media--placeholder span {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.35rem var(--space-sm);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.blog-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 200ms ease;
}

.blog-card:hover .blog-card__media img {
    transform: scale(1.035);
}

.blog-card__body {
    display: grid;
    gap: var(--space-sm);
    align-content: start;
    padding: var(--card-padding);
}

.blog-card__meta,
.single-post__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.blog-card__meta a,
.single-post__meta a {
    color: var(--color-accent-ink);
}

.blog-card h3 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-xl);
    font-weight: 800;
    line-height: var(--line-tight);
}

.blog-card p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-md);
    font-weight: 600;
}

.blog-card__tags,
.single-post__pills,
.blog-sidebar__pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.blog-card__tags a,
.single-post__pills a,
.blog-sidebar__pills a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.35rem var(--space-xs);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 800;
}

.blog-card__tags a:hover,
.single-post__pills a:hover,
.blog-sidebar__pills a:hover {
    border-color: var(--color-accent-border);
    color: var(--color-accent-ink);
}

.blog-card__link {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    gap: var(--space-xs);
    min-height: 2.5rem;
    padding: var(--space-xs) var(--space-sm);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-accent-ink);
    font-weight: 800;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.blog-card__link::after {
    width: 1rem;
    height: 1rem;
    background: currentColor;
    content: "";
    -webkit-mask: url("../../icons/arrow-right.svg") center / contain no-repeat;
    mask: url("../../icons/arrow-right.svg") center / contain no-repeat;
}

.blog-card__link:hover {
    border-color: var(--color-accent-ink);
    background: var(--color-brand);
    color: var(--color-text-inverse);
    transform: translateY(-0.0625rem);
}

.blog-pagination {
    display: flex;
    justify-content: center;
}

.blog-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-xs);
}

.blog-pagination .page-numbers,
.single-post-nav a {
    min-height: 2.5rem;
}

.blog-pagination .page-numbers.current,
.blog-pagination .page-numbers:hover,
.single-post-nav a:hover {
    border-color: var(--color-accent-ink);
    background: var(--color-brand);
    color: var(--color-text-inverse);
}

.blog-sidebar {
    position: sticky;
    top: 6rem;
    display: grid;
    gap: var(--space-md);
}

.blog-sidebar__card {
    display: grid;
    gap: var(--space-sm);
    padding: var(--card-padding);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.blog-sidebar__card--cta {
    border: 0;
    background:
        radial-gradient(circle at 100% 0, var(--color-white-alpha-14), transparent 14rem),
        linear-gradient(135deg, var(--color-surface-strong), var(--color-hero-end));
    color: var(--color-text-inverse);
    box-shadow: var(--shadow-md);
}

.blog-sidebar__card h2 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-xl);
    font-weight: 800;
    line-height: var(--line-tight);
}

.blog-sidebar__card--cta h2 {
    color: var(--color-text-inverse);
}

.blog-sidebar__card p {
    margin: 0;
    color: var(--color-text-muted);
    font-weight: 700;
}

.blog-sidebar__card--cta p {
    color: var(--color-dark-subtle);
}

.blog-sidebar__card--cta .button {
    width: 100%;
}

.blog-search {
    display: grid;
    gap: var(--space-xs);
}

.blog-search input {
    width: 100%;
    min-height: 3rem;
    padding: 0 var(--space-sm);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-text);
    font-weight: 700;
}

.blog-search__button {
    width: 100%;
}

.blog-search__button::before {
    width: 1rem;
    height: 1rem;
    background: currentColor;
    content: "";
    flex: 0 0 auto;
    -webkit-mask: url("../../icons/search.svg") center / contain no-repeat;
    mask: url("../../icons/search.svg") center / contain no-repeat;
}

.blog-sidebar__posts {
    display: grid;
    gap: var(--space-xs);
}

.blog-sidebar__posts a {
    display: grid;
    gap: var(--space-2xs);
    padding-block: var(--space-xs);
    border-bottom: 0.0625rem solid var(--color-border);
}

.blog-sidebar__posts a:last-child {
    border-bottom: 0;
}

.blog-sidebar__posts span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
}

.blog-sidebar__posts strong {
    color: var(--color-text);
    line-height: var(--line-tight);
}

.blog-sidebar__posts a:hover strong {
    color: var(--color-accent-ink);
}

.single-post__head {
    max-width: 64rem;
}

.single-post__media {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
}

.single-post__media img {
    width: 100%;
    max-height: 34rem;
    object-fit: cover;
}

.single-post__content {
    max-width: 100%;
    margin: 0;
    color: var(--color-text);
    font-size: var(--text-lg);
    line-height: 1.7;
}

.single-post__content > * {
    margin-top: 0;
    margin-bottom: var(--space-md);
}

.single-post__content > :last-child {
    margin-bottom: 0;
}

.single-post__content h2,
.single-post__content h3 {
    color: var(--color-text);
    font-weight: 800;
    line-height: var(--line-tight);
}

.single-post__content h2 {
    font-size: var(--text-2xl);
}

.single-post__content h3 {
    font-size: var(--text-xl);
}

.single-post__content a {
    color: var(--color-accent-ink);
    font-weight: 800;
}

.single-post__content p,
.single-post__content li {
    color: var(--color-text);
}

.single-post__content ul,
.single-post__content ol {
    padding-left: var(--space-md);
}

.single-post__content img {
    height: auto;
    border-radius: var(--radius-md);
}

.single-post__terms {
    display: grid;
    gap: var(--space-md);
    padding-top: var(--space-md);
    border-top: 0.0625rem solid var(--color-border);
}

.single-post__terms > div {
    display: grid;
    gap: var(--space-xs);
}

.single-post__terms span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.single-post-nav {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-sm);
}

.single-post-nav > div:last-child {
    justify-self: end;
}

.blog-empty {
    display: grid;
    align-content: center;
    gap: var(--space-sm);
}

.generic-page__board {
    max-width: var(--container-narrow);
    margin-inline: auto;
}

.generic-page__content {
    color: var(--color-text-muted);
    font-size: var(--text-lg);
}

.generic-page__content > * {
    margin-top: 0;
    margin-bottom: var(--space-md);
}

.generic-page__content > :last-child {
    margin-bottom: 0;
}

.generic-page__content h2,
.generic-page__content h3 {
    color: var(--color-text);
    font-weight: 800;
    line-height: var(--line-tight);
}

.generic-page__content a {
    color: var(--color-accent-ink);
    font-weight: 800;
}

/* District and metro landing pages. */
.area-archive__hero {
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 0, var(--color-accent-soft), transparent 22rem),
        var(--color-surface);
}

.area-archive__hero .section-head {
    max-width: 64rem;
}

.area-archive__hero h1 {
    max-width: 66rem;
    font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
}

.area-switcher {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 12rem));
    gap: var(--space-xs);
}

.area-switcher a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    min-height: 3.5rem;
    padding: var(--space-sm) var(--space-md);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
    font-weight: 800;
    transition: border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.area-switcher a:hover {
    border-color: var(--color-accent-border);
    color: var(--color-accent-ink);
    transform: translateY(-0.0625rem);
}

.area-switcher a[aria-current="page"] {
    border-color: var(--color-accent-ink);
    background: var(--color-accent-soft);
    color: var(--color-accent-ink);
}

.area-switcher strong {
    font-size: var(--text-sm);
}

.area-directory__head {
    max-width: 58rem;
}

.area-directory__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--card-gap);
}

.area-directory-card {
    position: relative;
    display: grid;
    align-content: start;
    gap: var(--space-xs);
    min-height: 7.5rem;
    padding: var(--card-padding);
    padding-right: calc(var(--card-padding) + 2rem);
    border: 0.0625rem solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.area-directory-card::before,
.area-directory-card::after {
    position: absolute;
    background: currentColor;
    content: "";
}

.area-directory-card::before {
    top: var(--card-padding);
    right: var(--card-padding);
    width: 1.25rem;
    height: 1.25rem;
    color: var(--color-accent-ink);
    -webkit-mask: url("../../icons/map-pinned.svg") center / contain no-repeat;
    mask: url("../../icons/map-pinned.svg") center / contain no-repeat;
}

.area-directory__grid--metro .area-directory-card::before {
    -webkit-mask-image: url("../../icons/spb_metro_logo.svg");
    mask-image: url("../../icons/spb_metro_logo.svg");
}

.area-directory-card::after {
    right: var(--card-padding);
    bottom: var(--card-padding);
    width: 1rem;
    height: 1rem;
    color: var(--color-text-muted);
    -webkit-mask: url("../../icons/arrow-right.svg") center / contain no-repeat;
    mask: url("../../icons/arrow-right.svg") center / contain no-repeat;
}

.area-directory-card > span {
    color: var(--color-accent-ink);
    font-size: var(--text-sm);
    font-weight: 800;
    text-transform: uppercase;
}

.area-directory-card strong {
    font-size: var(--text-lg);
    line-height: var(--line-tight);
}

.area-directory-card:hover {
    border-color: var(--color-accent-border);
    box-shadow: var(--shadow-sm);
    transform: translateY(-0.0625rem);
}

.area-directory-card:hover::after {
    color: var(--color-accent-ink);
}
