/* Посадочные страницы направлений */
.psxp-direction-page {
    --psxp-direction-graphite: #17263D;
    --psxp-direction-muted: #5F6B7A;
    --psxp-direction-surface: #F4F7FA;
    --psxp-direction-panel: #FBFCFE;
    --psxp-direction-accent: #315E98;
    color: var(--psxp-direction-graphite);
    background: var(--psxp-direction-panel);
}

.psxp-direction-page--law {
    --psxp-direction-accent: #315E98;
}

.psxp-direction-page--realty {
    --psxp-direction-accent: #167C73;
}

.psxp-direction-page--control {
    --psxp-direction-accent: #C18B43;
}

.psxp-direction-page__hero {
    padding: 7rem 0 8rem;
    background: var(--psxp-direction-surface);
}

.psxp-direction-page__hero-container,
.psxp-direction-page__container {
    width: min(124rem, calc(100% - 4rem));
    margin: 0 auto;
}

.psxp-direction-page__hero-container {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 6rem;
    align-items: center;
}

.psxp-direction-page__hero-content {
    max-width: 62rem;
}

.psxp-direction-page__eyebrow {
    margin: 0 0 1.4rem;
    color: var(--psxp-direction-accent);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.psxp-direction-page__title {
    max-width: 60rem;
    margin: 0 0 2rem;
    color: var(--psxp-direction-graphite);
    font-size: clamp(4rem, 5vw, 6.6rem);
    line-height: 1.04;
    letter-spacing: -.055em;
    text-wrap: balance;
}

.psxp-direction-page__lead {
    max-width: 58rem;
    margin: 0;
    color: var(--psxp-direction-muted);
    font-size: 2rem;
    line-height: 1.55;
}

.psxp-direction-page__audiences {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem 2rem;
    margin: 3rem 0 3rem;
}

.psxp-direction-page__audiences span {
    padding-left: 1.2rem;
    border-left: .3rem solid var(--psxp-direction-accent);
    color: var(--psxp-direction-graphite);
    font-size: 1.5rem;
    font-weight: 600;
}

.psxp-direction-page__hero-media {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: 1.6rem;
    box-shadow: 0 2.6rem 6rem rgba(23, 38, 61, .16);
}

.psxp-direction-page__hero-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.psxp-direction-page__cta {
    display: inline-flex;
    min-height: 5.2rem;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.3rem 2rem;
    border: 0;
    border-radius: .8rem;
    color: #fff;
    background: var(--psxp-direction-accent);
    cursor: pointer;
    font-family: inherit;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.psxp-direction-page__cta i {
    margin: 0;
    color: inherit;
    font-size: 1.9rem;
}

.psxp-direction-page__cta:hover {
    transform: translateY(-.2rem);
    background: var(--psxp-direction-graphite);
    box-shadow: 0 1rem 2.4rem rgba(23, 38, 61, .18);
}

.psxp-direction-page__cta:active {
    transform: translateY(.1rem) scale(.98);
}

.psxp-direction-page__cta:focus-visible,
.psxp-direction-page__phone:focus-visible,
.psxp-direction-page__contact-link:focus-visible {
    outline: .3rem solid var(--psxp-direction-accent);
    outline-offset: .4rem;
}

.psxp-direction-page__problems,
.psxp-direction-page__services,
.psxp-direction-page__process,
.psxp-direction-page__details {
    padding: 9rem 0;
}

.psxp-direction-page__problems {
    background: var(--psxp-direction-panel);
}

.psxp-direction-page h2 {
    max-width: 72rem;
    margin: 0;
    color: var(--psxp-direction-graphite);
    font-size: clamp(3rem, 4vw, 4.8rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.psxp-direction-page__problem-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
    margin: 4rem 0 0;
    padding: 0;
    list-style: none;
}

.psxp-direction-page__problem-list li {
    display: grid;
    grid-template-columns: 2.2rem 1fr;
    gap: 1rem;
    align-items: start;
    padding-top: 2rem;
    border-top: .2rem solid var(--psxp-direction-accent);
    color: var(--psxp-direction-graphite);
    font-size: 1.7rem;
    line-height: 1.5;
}

.psxp-direction-page__problem-list i {
    margin: .2rem 0 0;
    color: var(--psxp-direction-accent);
    font-size: 1.9rem;
}

.psxp-direction-page__services {
    background: var(--psxp-direction-surface);
}

.psxp-direction-page__section-heading {
    display: grid;
    gap: 1.4rem;
    max-width: 72rem;
    margin-bottom: 4rem;
}

.psxp-direction-page__section-heading p {
    max-width: 58rem;
    margin: 0;
    color: var(--psxp-direction-muted);
    font-size: 1.8rem;
    line-height: 1.55;
}

.psxp-direction-page__service-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: 1.6rem;
}

.psxp-direction-service {
	display: flex;
	flex-direction: column;
    min-height: 25rem;
    padding: 2.6rem 2.4rem 2.4rem;
    background: var(--psxp-direction-panel);
    border: 1px solid rgba(23, 38, 61, .1);
    border-top: .4rem solid var(--psxp-direction-accent);
    border-radius: 1.2rem;
    box-shadow: 0 1.4rem 3rem rgba(23, 38, 61, .06);
}

.psxp-direction-service__icon {
    display: block;
    margin: 0 0 2rem;
    color: var(--psxp-direction-accent);
    font-size: 3.4rem;
}

.psxp-direction-service h3 {
    margin: 0 0 1.1rem;
    color: var(--psxp-direction-graphite);
    font-size: 2.3rem;
    line-height: 1.15;
    letter-spacing: -.025em;
}

.psxp-direction-service p {
    margin: 0;
    color: var(--psxp-direction-muted);
    font-size: 1.6rem;
    line-height: 1.55;
}

.psxp-direction-service__audience {
    margin-bottom: 1rem !important;
    color: var(--psxp-direction-accent) !important;
    font-size: 1.25rem !important;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: lowercase;
}

.psxp-direction-service__link {
    display: inline-flex;
    gap: .7rem;
    align-items: center;
    margin-top: auto;
    padding-top: 2rem;
    color: var(--psxp-direction-graphite);
    font-size: 1.45rem;
    font-weight: 700;
    text-decoration: none;
}

.psxp-direction-service__link:hover {
    color: var(--psxp-direction-accent);
}

.psxp-direction-service__link:focus-visible {
    outline: .3rem solid var(--psxp-direction-accent);
    outline-offset: .4rem;
}

.psxp-direction-page__process {
    background: var(--psxp-direction-panel);
}

.psxp-direction-process {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
    margin: 4rem 0 0;
    padding: 0;
    list-style: none;
}

.psxp-direction-process li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.5rem;
    align-items: start;
}

.psxp-direction-process__number {
    display: inline-flex;
    width: 4.4rem;
    height: 4.4rem;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: .2rem solid var(--psxp-direction-accent);
    border-radius: 50%;
    color: var(--psxp-direction-accent);
    font-size: 1.3rem;
    font-weight: 700;
}

.psxp-direction-process h3 {
    margin: .2rem 0 1rem;
    color: var(--psxp-direction-graphite);
    font-size: 2.1rem;
    line-height: 1.2;
}

.psxp-direction-process p {
    margin: 0;
    color: var(--psxp-direction-muted);
    font-size: 1.55rem;
    line-height: 1.5;
}

.psxp-direction-page__faq {
    padding: 9rem 0;
    background: var(--psxp-direction-surface);
}

.psxp-direction-faq {
    max-width: 92rem;
    border-top: 1px solid rgba(23, 38, 61, .14);
}

.psxp-direction-faq__item {
    border-bottom: 1px solid rgba(23, 38, 61, .14);
}

.psxp-direction-faq__item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.2rem 0;
    color: var(--psxp-direction-graphite);
    cursor: pointer;
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.3;
    list-style: none;
}

.psxp-direction-faq__item summary::-webkit-details-marker {
    display: none;
}

.psxp-direction-faq__item summary::after {
    content: '+';
    flex: 0 0 auto;
    color: var(--psxp-direction-accent);
    font-size: 2.6rem;
    font-weight: 400;
    line-height: 1;
}

.psxp-direction-faq__item[open] summary::after {
    content: '−';
}

.psxp-direction-faq__item summary:focus-visible {
    outline: .3rem solid var(--psxp-direction-accent);
    outline-offset: .4rem;
}

.psxp-direction-faq__answer {
    max-width: 74rem;
    padding: 0 4rem 2.2rem 0;
}

.psxp-direction-faq__answer p {
    margin: 0;
    color: var(--psxp-direction-muted);
    font-size: 1.7rem;
    line-height: 1.6;
}

.psxp-direction-page__details {
    background: #E9EFF5;
}

.psxp-direction-page__details .psxp-direction-page__container {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 6rem;
    align-items: center;
}

.psxp-direction-page__details-copy {
    max-width: 68rem;
}

.psxp-direction-page__details-copy p {
    margin: 2rem 0 0;
    color: var(--psxp-direction-muted);
    font-size: 1.7rem;
    line-height: 1.6;
}

.psxp-direction-page__details-action {
    display: grid;
    justify-items: start;
    gap: 1.4rem;
}

.psxp-direction-page__details-label {
    margin: 0;
    color: var(--psxp-direction-graphite);
    font-size: 1.7rem;
    font-weight: 600;
}

.psxp-direction-page__cta--dark {
    background: var(--psxp-direction-graphite);
}

.psxp-direction-page__cta--dark:hover {
    background: var(--psxp-direction-accent);
}

.psxp-direction-page__phone {
    color: var(--psxp-direction-graphite);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
}

.psxp-direction-page__phone:hover {
    color: var(--psxp-direction-accent);
}

.psxp-direction-page__contact-link {
    color: var(--psxp-direction-accent);
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
}

.psxp-direction-page__contact-link:hover {
    color: var(--psxp-direction-graphite);
}

@media (max-width: 767px) {
    .psxp-direction-page__hero {
        padding: 5rem 0 6rem;
    }

    .psxp-direction-page__hero-container,
    .psxp-direction-page__container {
        width: min(100% - 3rem, 62rem);
    }

    .psxp-direction-page__hero-container {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    .psxp-direction-page__title {
        font-size: clamp(3.8rem, 12vw, 5.2rem);
    }

    .psxp-direction-page__lead {
        font-size: 1.8rem;
    }

    .psxp-direction-page__hero-media {
        order: -1;
    }

    .psxp-direction-page__problems,
    .psxp-direction-page__services,
    .psxp-direction-page__process,
    .psxp-direction-page__faq,
    .psxp-direction-page__details {
        padding: 6rem 0;
    }

    .psxp-direction-page__problem-list,
    .psxp-direction-page__service-grid,
    .psxp-direction-process,
    .psxp-direction-page__details .psxp-direction-page__container {
        grid-template-columns: 1fr;
    }

    .psxp-direction-page__problem-list,
    .psxp-direction-process {
        gap: 2rem;
    }

    .psxp-direction-service {
        min-height: 0;
    }

    .psxp-direction-page__details .psxp-direction-page__container {
        gap: 3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .psxp-direction-page__cta {
        transition: none;
    }

    .psxp-direction-page__cta:hover,
    .psxp-direction-page__cta:active {
        transform: none;
    }
}

/* Единая страница контактов корпоративного бренда */
.psxp-contacts {
    --psxp-contact-graphite: #17263D;
    --psxp-contact-muted: #5F6B7A;
    --psxp-contact-surface: #F4F7FA;
    --psxp-contact-panel: #FBFCFE;
    --psxp-contact-accent: #315E98;
    color: var(--psxp-contact-graphite);
    background: var(--psxp-contact-panel);
}

.psxp-contacts__container {
    width: min(124rem, calc(100% - 4rem));
    margin: 0 auto;
}

.psxp-contacts__hero {
    padding: 8rem 0 9rem;
    background: var(--psxp-contact-surface);
}

.psxp-contacts__hero .psxp-contacts__container {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(24rem, .8fr);
    gap: 6rem;
    align-items: end;
}

.psxp-contacts__hero-copy {
    max-width: 75rem;
}

.psxp-contacts__eyebrow {
    margin: 0 0 1.5rem;
    color: var(--psxp-contact-accent);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.psxp-contacts h1,
.psxp-contacts h2,
.psxp-contacts h3,
.psxp-contacts p {
    text-wrap: balance;
}

.psxp-contacts h1 {
    max-width: 72rem;
    margin: 0 0 2.2rem;
    color: var(--psxp-contact-graphite);
    font-size: clamp(4rem, 5.4vw, 7rem);
    line-height: 1.02;
    letter-spacing: -.055em;
}

.psxp-contacts__lead {
    max-width: 60rem;
    margin: 0;
    color: var(--psxp-contact-muted);
    font-size: 2rem;
    line-height: 1.55;
}

.psxp-contacts__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    align-items: center;
    margin-top: 3.5rem;
}

.psxp-contacts__primary {
    display: inline-flex;
    min-height: 5.2rem;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.3rem 2rem;
    border: 0;
    border-radius: .8rem;
    color: #fff;
    background: var(--psxp-contact-accent);
    cursor: pointer;
    font: inherit;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
    transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.psxp-contacts__primary:hover {
    transform: translateY(-.2rem);
    background: var(--psxp-contact-graphite);
    box-shadow: 0 1rem 2.4rem rgba(23, 38, 61, .18);
}

.psxp-contacts__primary:active {
    transform: translateY(.1rem) scale(.98);
}

.psxp-contacts__primary:focus-visible,
.psxp-contacts__phone:focus-visible,
.psxp-contact-direction a:focus-visible,
.psxp-contacts__contact-list a:focus-visible {
    outline: .3rem solid var(--psxp-contact-accent);
    outline-offset: .4rem;
}

.psxp-contacts__phone {
    color: var(--psxp-contact-graphite);
    font-size: 1.8rem;
    font-weight: 700;
    text-decoration: none;
}

.psxp-contacts__phone:hover {
    color: var(--psxp-contact-accent);
}

.psxp-contacts__hero-note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.5rem;
    max-width: 34rem;
    padding-top: 1.6rem;
    border-top: .2rem solid var(--psxp-contact-accent);
}

.psxp-contacts__note-index,
.psxp-contact-direction__index {
    color: var(--psxp-contact-accent);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.psxp-contacts__hero-note p,
.psxp-contacts__section-heading > p:last-child,
.psxp-contacts__details-lead,
.psxp-contacts__cta p {
    margin: 0;
    color: var(--psxp-contact-muted);
    font-size: 1.7rem;
    line-height: 1.55;
}

.psxp-contacts__directions,
.psxp-contacts__details {
    padding: 9rem 0;
}

.psxp-contacts__section-heading {
    max-width: 72rem;
    margin-bottom: 4rem;
}

.psxp-contacts h2 {
    max-width: 72rem;
    margin: 0 0 1.4rem;
    color: var(--psxp-contact-graphite);
    font-size: clamp(3rem, 4vw, 4.8rem);
    line-height: 1.08;
    letter-spacing: -.045em;
}

.psxp-contacts__direction-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.6rem;
}

.psxp-contact-direction {
    display: flex;
    min-height: 28rem;
    flex-direction: column;
    padding: 2.4rem;
    border-top: .3rem solid var(--psxp-contact-accent);
    background: var(--psxp-contact-surface);
}

.psxp-contact-direction--law {
    grid-column: span 6;
    --psxp-contact-accent: #315E98;
}

.psxp-contact-direction--realty {
    grid-column: span 3;
    --psxp-contact-accent: #167C73;
}

.psxp-contact-direction--control {
    grid-column: span 3;
    --psxp-contact-accent: #C18B43;
}

.psxp-contact-direction__index {
    margin: 0 0 4rem;
}

.psxp-contact-direction h3 {
    margin: 0 0 .8rem;
    color: var(--psxp-contact-graphite);
    font-size: 2.5rem;
    line-height: 1.1;
    letter-spacing: -.03em;
}

.psxp-contact-direction p {
    margin: 0 0 1rem;
    color: var(--psxp-contact-muted);
    font-size: 1.6rem;
    line-height: 1.5;
}

.psxp-contact-direction__audience {
    color: var(--psxp-contact-accent) !important;
    font-size: 1.3rem !important;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: lowercase;
}

.psxp-contact-direction a {
    display: inline-flex;
    gap: .7rem;
    align-items: center;
    margin-top: auto;
    padding-top: 2rem;
    color: var(--psxp-contact-graphite);
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
}

.psxp-contact-direction a:hover {
    color: var(--psxp-contact-accent);
}

.psxp-contacts__details {
    background: var(--psxp-contact-surface);
}

.psxp-contacts__details-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(28rem, .8fr);
    gap: 6rem;
    align-items: start;
}

.psxp-contacts__contact-list {
    display: grid;
    gap: 2.2rem;
    margin: 0;
}

.psxp-contacts__contact-list > div {
    padding-top: 1.4rem;
    border-top: .2rem solid rgba(23, 38, 61, .18);
}

.psxp-contacts__contact-list dt {
    margin-bottom: .6rem;
    color: var(--psxp-contact-muted);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.psxp-contacts__contact-list dd {
    margin: 0;
    color: var(--psxp-contact-graphite);
    font-size: 1.7rem;
    line-height: 1.45;
}

.psxp-contacts__contact-list a {
    color: inherit;
    text-decoration: none;
}

.psxp-contacts__contact-list a:hover {
    color: var(--psxp-contact-accent);
}

.psxp-contacts__cta {
    padding: 7rem 0;
    color: #fff;
    background: var(--psxp-contact-graphite);
}

.psxp-contacts__cta-inner {
    display: flex;
    gap: 4rem;
    align-items: end;
    justify-content: space-between;
}

.psxp-contacts__cta h2,
.psxp-contacts__cta .psxp-contacts__eyebrow {
    color: #fff;
}

.psxp-contacts__cta .psxp-contacts__eyebrow {
    color: #A9C8EC;
}

.psxp-contacts__primary--light {
    flex-shrink: 0;
    color: var(--psxp-contact-graphite);
    background: #fff;
}

.psxp-contacts__primary--light:hover {
    color: #fff;
    background: var(--psxp-contact-accent);
}

@media (max-width: 767px) {
    .psxp-contacts__container {
        width: min(100% - 3rem, 62rem);
    }

    .psxp-contacts__hero {
        padding: 5rem 0 6rem;
    }

    .psxp-contacts__hero .psxp-contacts__container,
    .psxp-contacts__details-grid {
        grid-template-columns: 1fr;
        gap: 3.5rem;
    }

    .psxp-contacts h1 {
        font-size: clamp(3.8rem, 12vw, 5.2rem);
    }

    .psxp-contacts__lead {
        font-size: 1.8rem;
    }

    .psxp-contacts__directions,
    .psxp-contacts__details {
        padding: 6rem 0;
    }

    .psxp-contacts__direction-grid {
        grid-template-columns: 1fr;
    }

    .psxp-contact-direction--law,
    .psxp-contact-direction--realty,
    .psxp-contact-direction--control {
        grid-column: auto;
    }

    .psxp-contacts__cta {
        padding: 5rem 0;
    }

    .psxp-contacts__cta-inner {
        display: grid;
        gap: 2.5rem;
        align-items: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .psxp-contacts__primary {
        transition: none;
    }

    .psxp-contacts__primary:hover,
    .psxp-contacts__primary:active {
        transform: none;
    }
}
