/* Общая адаптация публичной части сайта. Файл подключается после стилей страниц. */

@media (max-width: 1320px) {
    .contentBox,
    .pageContent,
    .newsContent,
    .contactsContent,
    .managementContent,
    .appealContent,
    .feedbackContent,
    .vacanciesContent,
    .textBlock,
    .priem,
    .newsBlock {
        width: calc(100% - 40px);
        max-width: 1280px;
        min-width: 0;
    }

    .problem_solver,
    .footer_info,
    .footer_banners {
        width: calc(100% - 40px);
        max-width: 1280px;
    }

    .footer_info,
    .footer_banners {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (min-width: 769px) and (max-width: 1100px) {
    .footer_info {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
    }

    .footer_col,
    .bordered {
        min-width: 0;
        padding-right: 0;
        border-right: 0;
    }
}

@media (max-width: 768px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        font-size: 15px;
    }

    img,
    video,
    iframe {
        max-width: 100%;
    }

    input,
    textarea,
    select,
    button {
        max-width: 100%;
    }

    .content {
        width: 100%;
        min-width: 0;
        gap: 52px;
        margin-bottom: 56px;
    }

    .contentBox,
    .pageContent,
    .newsContent,
    .contactsContent,
    .managementContent,
    .appealContent,
    .feedbackContent,
    .vacanciesContent,
    .textBlock,
    .priem,
    .newsBlock,
    .feedbackBlock,
    .searchForm {
        width: calc(100% - 32px);
        max-width: none;
        min-width: 0;
    }

    .contentTitle {
        margin: 28px 0 44px;
        font-size: 30px;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    .contentTitle::after {
        bottom: -14px;
    }

    .breadcrumbs {
        margin: 20px 0 8px;
        gap: 6px;
        font-size: 14px;
        line-height: 1.35;
    }

    .bc_home img {
        width: 20px;
    }

    .bc_separator {
        top: -1px;
        font-size: 18px;
    }

    .pageText,
    .newText {
        min-width: 0;
        font-size: 16px;
        line-height: 1.55;
        overflow-wrap: anywhere;
    }

    .pageText img,
    .newText img {
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
    }

    .pageText iframe,
    .newText iframe {
        width: 100% !important;
    }

    .pageText ul,
    .pageText ol,
    .newText ul,
    .newText ol {
        padding-left: 22px;
    }

    table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        font-size: 14px;
        -webkit-overflow-scrolling: touch;
    }

    th:first-child,
    td:first-child {
        width: auto;
        white-space: normal;
    }

    .pagination {
        max-width: 100%;
        margin: 32px auto 12px;
        padding: 0 12px;
    }

    .paginationInner {
        max-width: 100%;
        gap: 5px;
        padding: 6px;
        border-radius: 15px;
    }

    .paginationPages {
        gap: 4px;
    }

    .page-btn,
    .paginationControl {
        width: 40px;
        min-width: 40px;
        height: 40px;
        border-radius: 10px;
    }

    .page-btn {
        font-size: 16px;
    }

    .paginationControl {
        gap: 0;
        padding: 0;
    }

    .paginationControlText {
        display: none;
    }

    /* Шапка и мобильное меню */
    .top {
        height: auto;
        padding: 12px 16px;
        align-items: stretch;
        gap: 12px;
    }

    .siteLogo {
        width: 100%;
        max-width: none;
        padding: 0;
        gap: 10px;
    }

    .siteLogo img {
        width: 52px;
        flex: 0 0 52px;
    }

    .siteLogo > div {
        min-width: 0;
    }

    .siteLogo p {
        font-size: 14px;
        line-height: 1.25;
    }

    .siteLogo h1 {
        margin-top: 2px;
        font-size: 12px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .infoCont {
        width: 100%;
        justify-content: space-between;
        gap: 8px;
    }

    .topBox {
        min-width: 0;
        padding: 8px 12px;
        border-radius: 18px;
        gap: 10px;
    }

    .topBox:first-child {
        flex: 1 1 auto;
        justify-content: space-between;
    }

    .topBox:last-child {
        flex: 0 0 48px;
        padding: 8px;
    }

    .topSeparator {
        height: 32px;
    }

    .infoCallcenter h1,
    .infoCallcenter p {
        font-size: 14px;
    }

    .topButton {
        width: 28px;
    }

    .mobileMenu {
        display: flex;
        min-height: 52px;
        height: auto;
        padding: 12px 18px;
        cursor: pointer;
        user-select: none;
    }

    .topMenu,
    .topMenu.opened {
        width: 100%;
        height: auto;
    }

    .topMenu {
        display: none;
        max-height: calc(100vh - 52px);
        overflow-y: auto;
    }

    .topMenu.opened {
        display: block;
    }

    .nav {
        width: 100%;
        max-width: none;
        flex-direction: column;
    }

    .nav > li {
        width: 100%;
        height: auto;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    .nav > li > a {
        min-height: 52px;
        padding: 14px 18px;
        justify-content: flex-start;
        white-space: normal;
    }

    .dMenu {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .dMenu.dMenuActive {
        display: block;
    }

    .dMenu a {
        padding: 13px 28px;
        border-bottom: 1px solid #e8eef7;
        color: #26395f;
        white-space: normal;
    }

    .dMenuEntry--level-2 > a {
        padding-left: 42px;
    }

    .dMenuEntry--level-3 > a,
    .dMenuEntry--level-4 > a,
    .dMenuEntry--level-5 > a,
    .dMenuEntry--level-6 > a {
        padding-left: 56px;
    }

    /* Главная страница */
    .slideShow {
        width: 100%;
        height: min(100svh, 216vw);
        max-width: none;
    }

    .sShow_slide,
    .slideShow img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sShowBtns {
        bottom: -28px;
    }

    .sShowBtn {
        width: 12px;
        height: 12px;
    }

    .addinfo {
        width: calc(100% - 32px);
        margin: 0;
        gap: 12px;
    }

    .addinfo_Cont {
        width: 100%;
        max-width: 420px;
        height: 220px;
        border-radius: 18px;
    }

    .addinfo_Cont img {
        left: 24px;
        top: 24px;
        width: 46px;
    }

    .addinfo-col {
        right: 24px;
        bottom: 18px;
        left: 24px;
        width: auto;
        height: 126px;
    }

    .addinfo a {
        font-size: 17px;
    }

    .textBlock {
        flex-direction: column;
        gap: 24px;
    }

    .sBlock_text {
        width: 100%;
    }

    .sBlock_text h1 {
        margin: 0;
        font-size: 30px;
        line-height: 1.2;
    }

    .sBlock_text p {
        margin: 16px 0 0;
        font-size: 16px;
        line-height: 1.55;
    }

    .sBlock_fadingSlider,
    .gvBlock_img {
        width: 100%;
        text-align: center;
    }

    .sBlock_fadingSlider img,
    .gvBlock_img img {
        width: 100%;
        max-width: 480px;
        height: auto;
    }

    .gvButton {
        width: 100%;
        height: auto;
        min-height: 54px;
        margin-top: 24px;
        padding: 14px 20px;
        text-align: center;
    }

    .priem {
        padding: 28px 20px;
        border-radius: 18px;
        gap: 24px;
    }

    .priem h1 {
        font-size: 28px;
    }

    .priem a {
        width: 100%;
        height: auto;
        min-height: 54px;
        padding: 14px 20px;
    }

    .priem_right {
        display: grid;
        width: 100%;
        max-width: 280px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .priem_right img {
        left: auto !important;
        width: 100%;
        max-width: 120px;
        margin: auto;
    }

    .newsBlock {
        padding: 24px 16px;
        border-radius: 18px;
    }

    .news_Title {
        margin-bottom: 28px;
        align-items: flex-start;
        gap: 10px;
    }

    .news_Title h1 {
        font-size: 30px;
    }

    .newsCont,
    .allNewsCont {
        width: 100%;
        gap: 34px;
    }

    .new {
        width: 100%;
        min-width: 0;
        gap: 16px;
    }

    .nImage {
        width: 100%;
        max-width: 420px;
        height: auto;
        aspect-ratio: 375 / 240;
    }

    .nContent {
        min-width: 0;
    }

    .nDate,
    .nTitle,
    .nTxt {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .nTitle {
        margin: 12px 0 8px;
    }

    .feedbackBlock {
        align-items: stretch;
    }

    .feedback_Title {
        margin-bottom: 28px;
        font-size: 32px;
    }

    .feedbackBlock .feedback {
        padding: 24px 20px 26px;
    }

    /* Формы */
    .appeal,
    .feedbackContent > .feedback {
        width: 100%;
        flex-direction: column;
        gap: 32px;
    }

    .appealForm,
    .feedbackForm,
    .gvBlock {
        width: 100%;
        max-width: 100%;
    }

    .appealForm input,
    .appealForm textarea,
    .feedbackForm input,
    .feedbackForm textarea {
        width: 100%;
        height: auto;
        min-height: 54px;
        padding: 15px 16px;
    }

    .appealForm textarea,
    .feedbackForm textarea {
        min-height: 170px;
    }

    .sendBtn {
        width: 100%;
        height: auto;
        min-height: 54px;
        padding: 14px 20px;
        text-align: center;
    }

    .gvBlock img {
        width: 100%;
        max-width: 360px;
        height: auto;
    }

    /* Контакты */
    .contactsBlock {
        gap: 40px;
    }

    .contact {
        width: 100%;
        flex-direction: column;
        gap: 22px;
    }

    .map,
    .map iframe {
        width: 100% !important;
        max-width: 100% !important;
    }

    .map iframe {
        height: clamp(280px, 80vw, 420px) !important;
    }

    .contact .info {
        width: 100%;
        max-width: none;
        overflow-wrap: anywhere;
    }

    /* Руководство */
    .persons {
        flex-direction: column;
        gap: 36px;
    }

    .person {
        width: 100%;
        flex-direction: column;
        align-items: center;
        gap: 16px;
    }

    .person img {
        width: min(245px, 100%);
        height: auto;
        aspect-ratio: 1;
        object-fit: cover;
    }

    .person .info {
        width: 100%;
        text-align: center;
        overflow-wrap: anywhere;
    }

    /* Лицензии */
    .license {
        width: 100%;
        max-width: 100%;
        padding: 16px;
        gap: 14px;
    }

    .infoSub {
        min-width: 0;
        align-items: center;
        gap: 14px;
    }

    .imageFile {
        width: 72px;
        height: 72px;
        flex: 0 0 72px;
        border-radius: 14px;
        background-position: center;
        background-size: cover;
    }

    .license .info {
        min-width: 0;
        max-width: none;
        gap: 9px;
    }

    .licenseTitle {
        font-size: 16px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .licenseDateBox {
        gap: 8px;
        font-size: 14px;
    }

    .downloadBtn {
        width: 46px;
        height: 46px;
        flex: 0 0 46px;
    }

    .downloadBtn img {
        width: 24px;
    }

    /* Расписание */
    .scheduleCont,
    .branchBtnCont {
        width: 100%;
        flex-direction: column;
    }

    .scheduleCont a,
    .branchBtn {
        width: 100%;
        max-width: 420px;
    }

    .scheduleCont img {
        width: 56px !important;
        max-width: 56px !important;
        height: 56px !important;
        flex: 0 0 56px;
        object-fit: contain;
    }

    .branchBtn {
        height: auto;
        min-height: 70px;
        text-align: center;
    }

    .scheduleBox {
        width: 100%;
        padding: 18px 14px;
        border-radius: 18px;
    }

    .scheduleTop {
        gap: 12px;
        align-items: flex-start;
    }

    .scheduleTop img {
        width: 48px;
        flex: 0 0 48px;
    }

    .scheduleAddress {
        font-size: 18px;
        overflow-wrap: anywhere;
    }

    .scheduleImg img {
        width: 100%;
        height: auto;
    }

    /* Список вакансий */
    .vacanciesBox {
        width: 100%;
    }

    .vacanciesBox > .vacancy {
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 20px 16px;
        flex-direction: column;
        gap: 14px;
    }

    .vacanciesBox > .vacancy > img {
        width: 72px;
        height: 72px;
    }

    .vacanciesBox .vTitle,
    .vacanciesBox .vSalary {
        width: 100%;
        overflow-wrap: anywhere;
    }

    .vacanciesBox .btn {
        width: 100%;
        padding: 12px 16px;
        text-align: center;
    }

    /* Страница вакансии */
    .vacancyContent,
    .vacancyBox,
    .vacancyBox > .vacancy {
        width: 100%;
        min-width: 0;
    }

    .vacancyBox {
        padding: 20px 16px;
    }

    .vacancyBox .vBlock {
        min-height: 0;
        padding: 22px 0;
        align-items: flex-start;
        gap: 14px;
    }

    .vacancyBox .vBlock:first-child {
        flex-direction: column;
    }

    .vacancyBox .vRow {
        width: 100%;
        min-width: 0;
        align-items: flex-start;
        gap: 14px;
    }

    .vacancyBox .vColumn {
        width: 100%;
        min-width: 0;
    }

    .vacancyBox .vImgTitle {
        width: 54px;
        height: 54px;
        flex: 0 0 54px;
    }

    .vacancyBox .vTitle {
        position: static;
        width: auto;
        margin-bottom: 12px;
        font-size: 20px;
        overflow-wrap: anywhere;
    }

    .vacancyBox .vSalary {
        width: auto;
        text-align: left;
    }

    .vList {
        margin: 16px 0 10px 14px;
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .vContacts {
        margin-top: 20px;
    }

    .vContact {
        gap: 12px;
        overflow-wrap: anywhere;
    }

    .vContact a,
    .vAddress {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Поиск */
    .searchForm {
        margin-top: 40px;
    }

    /* Футер */
    .footer {
        width: 100%;
        padding: 48px 16px 32px;
    }

    .problem_solver {
        width: 100%;
        height: auto;
        margin-bottom: 48px;
        flex-direction: column;
        overflow: hidden;
        border-radius: 18px;
    }

    .problem_left {
        width: 100%;
        padding: 30px 20px;
        align-items: stretch;
    }

    .problem_left p {
        margin-bottom: 20px;
        font-size: 28px;
        line-height: 1.15;
        text-align: center;
    }

    .problem_left a {
        width: 100%;
        height: auto;
        min-height: 54px;
        padding: 14px 16px;
        font-size: 17px;
        text-align: center;
    }

    .problem_right {
        width: 100%;
        height: 220px;
        background-size: contain;
    }

    .footer_info {
        display: grid;
        width: 100%;
        margin-bottom: 32px;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .footer_col,
    .bordered {
        min-width: 0;
        padding: 24px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .45);
    }

    .footer_col:last-child {
        border-bottom: 0;
    }

    .footer_col h1,
    .footer_col p,
    .footer_col a {
        font-size: 17px;
        overflow-wrap: anywhere;
    }

    .footer_socials img {
        width: 50px;
    }

    .footer_button {
        width: 100%;
        max-width: 300px;
        height: auto;
        min-height: 56px;
        padding: 14px 20px;
    }

    .footer_banners {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .footer_banners a {
        display: flex;
        min-width: 0;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border-radius: 6px;
        background: #fff;
    }

    .footer_banners a:last-child {
        grid-column: 1 / -1;
    }

    .footer_banners img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}

@media (max-width: 420px) {
    .contentBox,
    .pageContent,
    .newsContent,
    .contactsContent,
    .managementContent,
    .appealContent,
    .feedbackContent,
    .vacanciesContent,
    .textBlock,
    .priem,
    .newsBlock,
    .feedbackBlock,
    .searchForm,
    .addinfo {
        width: calc(100% - 24px);
    }

    .contentTitle {
        font-size: 27px;
    }

    .top {
        padding: 10px 12px;
    }

    .siteLogo img {
        width: 46px;
        flex-basis: 46px;
    }

    .siteLogo p {
        font-size: 13px;
    }

    .siteLogo h1 {
        font-size: 11px;
    }

    .topBox {
        padding: 7px 10px;
    }

    .infoCallcenter h1,
    .infoCallcenter p {
        font-size: 13px;
    }

    .addinfo_Cont {
        height: 210px;
    }

    .sBlock_text h1,
    .news_Title h1,
    .feedback_Title {
        font-size: 27px;
    }

    .license {
        align-items: flex-start;
    }

    .imageFile {
        width: 58px;
        height: 58px;
        flex-basis: 58px;
    }

    .footer {
        padding-right: 12px;
        padding-left: 12px;
    }
}
