/* ============================================================
   Страница «Стоимость» — стили /price/
   Неймспейс .prc-*. Палитра и типографика — живые стили сайта:
   #2A638B / #70ACD0 / #4A4A49 / #F9F7F6 / #F0EBE5 / #C9C9C8.
   Чередование фонов секций: белый и #F9F7F6 (ТЗ, общий принцип).
   ============================================================ */

/* Атрибут hidden всегда побеждает авторские display */
.prc-nav [hidden],
.prc-section [hidden],
.prc-final [hidden] { display: none !important; }

.prc-hero .aboutItem__img_top img { width: 100%; height: auto; }

.prc-wrap { max-width: 1160px; margin: 0 auto; color: #4A4A49; }

.prc-section { padding: 34px 0 26px; scroll-margin-top: 120px; }
.prc-section--gray { background: #F9F7F6; }
.prc-section .title { margin-bottom: 26px; }

.prc-content p {
    font-size: 17px;
    line-height: 1.5;
    margin: 0 0 14px;
}
.prc-content--after { margin-top: 26px; max-width: 900px; }

/* ---------- Блок 2. Быстрая навигация ---------- */
.prc-nav { padding: 26px 0 4px; }
.prc-nav__row {
    max-width: 1160px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.prc-nav__item {
    display: inline-block;
    padding: 11px 20px;
    border: 1px solid #C9C9C8;
    border-radius: 20px;
    color: #4A4A49;
    text-decoration: none;
    font-family: "ProximaNova-Regular", sans-serif;
    font-size: 15px;
    line-height: 1.2;
    transition: background .3s, color .3s, border-color .3s;
}
.prc-nav__item:hover {
    background: #2A638B;
    border-color: #2A638B;
    color: #FFF;
}

/* ---------- Заголовки групп ---------- */
.prc-group-title {
    font-family: "TrajanSansPro-Regular", sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 1.3;
    color: #4A4A49;
    margin: 34px 0 18px;
}

/* ---------- Строки-карточки услуг ---------- */
.prc-rows { display: flex; flex-direction: column; gap: 12px; }

.prc-row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "info price"
        "info actions";
    gap: 4px 28px;
    align-items: start;
    background: #FFF;
    border: 1px solid #C9C9C8;
    border-radius: 16px;
    padding: 20px 26px;
}
.prc-section--gray .prc-row { background: #FFF; }
.prc-section .prc-row { background: #F9F7F6; }

.prc-row__info { grid-area: info; }
.prc-row__name {
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
    margin: 0 0 6px;
    color: #4A4A49;
}
.prc-row__desc {
    font-size: 15px;
    line-height: 1.45;
    margin: 0;
    opacity: .8;
}

/* Цена считывается быстрее основного текста (ТЗ, общий принцип) */
.prc-row__price {
    grid-area: price;
    justify-self: end;
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 1.25;
    color: #2A638B;
    white-space: nowrap;
}
.prc-row__price--muted {
    color: #4A4A49;
    opacity: .6;
    font-weight: 400;
    font-size: 16px;
    white-space: normal;
}

.prc-row__actions {
    grid-area: actions;
    justify-self: end;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 22px;
    justify-content: flex-end;
}

/* Текстовые ссылки-действия (одна основная кнопка на карточку — ТЗ) */
.prc-link {
    display: inline-block;
    background: none;
    border: none;
    padding: 2px 0;
    font-family: "ProximaNova-Regular", sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #2A638B;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    text-align: left;
    transition: color .3s;
}
.prc-link:hover { color: #235478; }
.prc-link--toggle::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 8px;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .2s;
}
.prc-link--toggle[aria-expanded="true"]::after {
    transform: translateY(1px) rotate(225deg);
}

/* ---------- Раскрытие под строкой ----------
   JS переносит блок под ту строку, из которой его открыли. Отрицательный
   margin съедает gap флекс-контейнера, а срезанные верхние углы и общая
   рамка делают раскрытие продолжением самой карточки. */
.prc-pricelist {
    margin: 22px 0 6px;
    background: #F9F7F6;
    border: 1px solid #C9C9C8;
    border-radius: 16px;
    padding: 26px 30px;
    scroll-margin-top: 120px;
}
.prc-rows > .prc-pricelist,
.prc-rows > .prc-expand {
    margin: -12px 0 0;
    border: 1px solid #C9C9C8;
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.prc-section--gray .prc-rows > .prc-pricelist,
.prc-section--gray .prc-rows > .prc-expand { background: #FFF; }

/* Строка, под которой открыто раскрытие, теряет нижние скругления */
.prc-row--open {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
/* Позиции раскрытия — теми же строками «название слева, цена справа»,
   что и карточки выше; на узком экране цена уходит под название */
.prc-sublist {
    list-style: none;
    margin: 0;
    padding: 0;
}
.prc-subrow {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px 28px;
    padding: 14px 0;
    border-bottom: 1px solid #C9C9C8;
}
.prc-subrow:first-child { padding-top: 0; }
.prc-subrow:last-child { padding-bottom: 0; border-bottom: none; }
.prc-subrow__name {
    font-size: 16px;
    line-height: 1.4;
}
.prc-subrow__price {
    flex: 0 0 auto;
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.25;
    color: #2A638B;
    white-space: nowrap;
}

/* ---------- Раскрывающийся блок (консилиум «Второе мнение») ---------- */
.prc-expand {
    margin: 14px 0 6px;
    background: #F0EBE5;
    border-radius: 16px;
    padding: 28px 32px;
    scroll-margin-top: 120px;
}
.prc-expand__title {
    font-family: "TrajanSansPro-Regular", sans-serif;
    font-weight: 400;
    font-size: 23px;
    line-height: 1.3;
    margin: 0 0 14px;
    color: #4A4A49;
}
.prc-expand__text {
    font-size: 16px;
    line-height: 1.5;
    margin: 0 0 14px;
    max-width: 900px;
}
.prc-expand .prc-facts li::before { background: #2A638B; }
.prc-expand__actions { margin-top: 24px; }

.prc-note {
    font-size: 15px;
    line-height: 1.5;
    margin: 14px 0 0;
    opacity: .85;
}
.prc-note a { color: #2A638B; }

/* ---------- Кнопки (реплика faq__link-btn, как на /test-na-depressiyu/) ---------- */
.prc-btn {
    display: inline-block;
    font-family: "ProximaNova-Regular", sans-serif;
    font-size: 15px;
    line-height: 19px;
    text-align: center;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 15px 32px;
    text-decoration: none;
    cursor: pointer;
    transition: color .3s, background .3s, border-color .3s;
}
.prc-btn--primary {
    color: #FFF;
    background: #70ACD0;
    border: 1px solid #70ACD0;
}
.prc-btn--primary:hover {
    color: #4A4A49;
    background: #FFF;
}
.prc-btn--secondary {
    color: #4A4A49;
    background: #FFF;
    border: 1px solid #2A638B;
}
.prc-btn--secondary:hover {
    color: #FFF;
    background: #2A638B;
}

.prc-cta-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 28px;
    margin-top: 18px;
}

/* ---------- Широкий блок: изображение + текст (чек-ап, стационар, амбулаторно) ---------- */
.prc-wide {
    display: grid;
    grid-template-columns: 5fr 7fr;
    background: #F9F7F6;
    border: 1px solid #C9C9C8;
    border-radius: 16px;
    overflow: hidden;
}
.prc-section--gray .prc-wide { background: #FFF; }
.prc-wide__img img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
}
/* Иллюстрация со своим фоном показывается целиком, а не кадрируется */
.prc-wide__img--checkup { background: #ECD89F; }
.prc-wide__img--checkup img { object-fit: contain; }
.prc-wide__body { padding: 30px 34px; }
.prc-wide__name {
    font-family: "TrajanSansPro-Regular", sans-serif;
    font-weight: 400;
    font-size: 25px;
    line-height: 1.3;
    margin: 0 0 10px;
    color: #4A4A49;
}
.prc-wide__price {
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 27px;
    line-height: 1.25;
    color: #2A638B;
    margin: 0 0 14px;
}
.prc-wide__lead {
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 19px;
    line-height: 1.4;
    margin: 0 0 14px;
    color: #4A4A49;
}
.prc-wide__text {
    font-size: 16px;
    line-height: 1.5;
    margin: 0 0 14px;
}
.prc-wide__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 28px;
    margin-top: 20px;
}

/* ---------- Списки фактов ---------- */
.prc-facts {
    list-style: none;
    margin: 18px 0;
    padding: 0;
}
.prc-facts li {
    position: relative;
    padding-left: 26px;
    margin: 0 0 9px;
    font-size: 16px;
    line-height: 1.45;
}
.prc-facts li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 7px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #70ACD0;
}
.prc-facts--cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 32px;
}

/* ---------- Парные карточки (детско-подростковое отделение) ---------- */
.prc-diag {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.prc-diag__card {
    display: flex;
    flex-direction: column;
    background: #FFF;
    border: 1px solid #C9C9C8;
    border-radius: 16px;
    overflow: hidden;
}
.prc-section .prc-diag__card { background: #F9F7F6; }
.prc-section--gray .prc-diag__card { background: #FFF; }
.prc-diag__img img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
}
.prc-diag__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 26px 30px 30px;
}
.prc-diag__name {
    font-family: "TrajanSansPro-Regular", sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 1.3;
    margin: 0 0 10px;
    color: #4A4A49;
}
.prc-diag__price {
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 26px;
    line-height: 1.2;
    color: #2A638B;
    margin: 0 0 14px;
}
.prc-diag__text {
    font-size: 16px;
    line-height: 1.5;
    margin: 0 0 14px;
}
.prc-diag__body .prc-btn { margin-top: auto; align-self: flex-start; }

/* ---------- Блок 8. Оплата и документы ---------- */
.prc-pay {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.prc-pay__card {
    background: #FFF;
    border: 1px solid #C9C9C8;
    border-radius: 16px;
    padding: 24px 28px;
}
.prc-pay__title {
    font-family: "ProximaNova-Regular", sans-serif;
    font-weight: 700;
    font-size: 18px;
    margin: 0 0 10px;
    color: #4A4A49;
}
.prc-pay__text {
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 12px;
    opacity: .9;
}
.prc-pay__card .prc-facts { margin: 0; }
.prc-pay__card .prc-facts li { font-size: 15px; }

/* ---------- Блок 9. Вопросы о стоимости (аккордеон) ---------- */
.prc-faq { max-width: 900px; }
.prc-faq__item { border-bottom: 1px solid #C9C9C8; }
.prc-faq__q {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 18px 40px 18px 0;
    font-family: "ProximaNova-Regular", sans-serif;
    font-size: 18px;
    line-height: 1.35;
    color: #4A4A49;
    cursor: pointer;
    position: relative;
}
.prc-faq__q::after {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 2px solid #2A638B;
    border-bottom: 2px solid #2A638B;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .2s;
}
.prc-faq__q[aria-expanded="true"]::after { transform: translateY(-30%) rotate(225deg); }
.prc-faq__a { padding: 0 0 18px; }
.prc-faq__a p { font-size: 16px; line-height: 1.5; margin: 0; }

/* ---------- Блок 10. Финальный блок ---------- */
.prc-final { padding: 40px 0 50px; }
.prc-final__card {
    background: #F0EBE5;
    border-radius: 16px;
    padding: 40px 46px;
    color: #4A4A49;
}
.prc-final__title {
    font-family: "TrajanSansPro-Regular", sans-serif;
    font-weight: 400;
    font-size: 27px;
    line-height: 1.3;
    margin: 0 0 16px;
}
.prc-final__text {
    font-size: 17px;
    line-height: 1.5;
    margin: 0 0 12px;
    max-width: 820px;
}
.prc-final__text a { color: #2A638B; }
.prc-final__text--muted { font-size: 15px; opacity: .75; }
.prc-final .prc-cta-line { margin-top: 22px; }

/* Предупреждение по ст. 24 ФЗ «О рекламе» */
.prc-adnote {
    font-size: 13px;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .7;
    margin: 16px 0 0;
}

/* Видимый фокус для клавиатуры */
.prc-nav__item:focus-visible,
.prc-link:focus-visible,
.prc-btn:focus-visible,
.prc-faq__q:focus-visible {
    outline: 2px solid #2A638B;
    outline-offset: 2px;
}

/* ---------- Ноутбук ----------
   Колонка с фото узкая и высокая, центр кадра режет кровать пополам.
   Сдвигаем кадр влево, чтобы в видимую часть попала правая половина
   фото с кроватью. */
@media (min-width: 1024px) and (max-width: 1439px) {
    .prc-wide__img--inpatient img { object-position: 68% 50%; }
}

/* ---------- Планшет ---------- */
@media (max-width: 1023px) {
    .prc-wide { grid-template-columns: 1fr; }
    .prc-wide__img img { min-height: 0; max-height: 340px; }
}

/* ---------- Мобильный ---------- */
@media (max-width: 767px) {
    .prc-section { padding: 24px 0 18px; scroll-margin-top: 90px; }
    .prc-nav { padding: 18px 0 0; }
    .prc-nav__item { padding: 10px 16px; font-size: 14px; }

    .prc-group-title { font-size: 20px; margin: 26px 0 14px; }

    /* Карточка услуги: всё в столбик, цена сразу под названием */
    .prc-row {
        grid-template-columns: 1fr;
        grid-template-areas:
            "info"
            "price"
            "actions";
        gap: 8px;
        padding: 18px 16px;
        border-radius: 12px;
    }
    /* Повторяем после мобильного border-radius: иначе открытая строка
       снова получает нижние скругления и отделяется от раскрытия */
    .prc-row--open {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .prc-row__price,
    .prc-row__actions { justify-self: start; }
    .prc-row__price { white-space: normal; font-size: 19px; }
    .prc-row__actions { flex-direction: column; align-items: flex-start; gap: 8px; }

    .prc-pricelist { padding: 18px 14px; border-radius: 12px; }
    .prc-rows > .prc-pricelist,
    .prc-rows > .prc-expand {
        border-bottom-left-radius: 12px;
        border-bottom-right-radius: 12px;
    }
    /* Цена уходит под название — как в карточках выше */
    .prc-subrow {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        padding: 12px 0;
    }
    .prc-subrow__name { font-size: 15px; }
    .prc-subrow__price { font-size: 17px; }

    .prc-expand { padding: 20px 16px; border-radius: 12px; }
    .prc-expand__title { font-size: 20px; }
    .prc-expand .prc-btn { display: block; width: 100%; }

    .prc-wide__body { padding: 20px 16px 24px; }
    .prc-wide__name { font-size: 21px; }
    .prc-wide__price { font-size: 22px; }
    .prc-wide__lead { font-size: 17px; }
    .prc-wide__actions { flex-direction: column; align-items: stretch; }
    .prc-wide__actions .prc-btn { width: 100%; }

    .prc-diag { grid-template-columns: 1fr; }
    .prc-diag__img img { height: 200px; }
    .prc-diag__body { padding: 20px 16px 24px; }
    .prc-diag__name { font-size: 21px; }
    .prc-diag__price { font-size: 23px; }
    .prc-diag__body .prc-btn { align-self: stretch; }

    .prc-facts--cols { grid-template-columns: 1fr; }

    .prc-pay { grid-template-columns: 1fr; }
    .prc-pay__card { padding: 20px 16px; border-radius: 12px; }

    .prc-faq__q { font-size: 16px; padding-right: 32px; }

    .prc-final { padding: 24px 0 34px; }
    .prc-final__card { padding: 26px 18px; border-radius: 12px; }
    .prc-final__title { font-size: 22px; }

    /* Кнопки на всю ширину, действия в столбик */
    .prc-cta-line { flex-direction: column; align-items: stretch; }
    .prc-cta-line .prc-btn { width: 100%; }
    .prc-cta-line .prc-link { text-align: center; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .prc-nav *, .prc-section *, .prc-final *,
    .prc-nav *::before, .prc-section *::before,
    .prc-nav *::after, .prc-section *::after { transition: none !important; }
}
