/* ============================================================
   USER.CSS — Joomla 5 / Cassiopeia / Bootstrap 5.3.8
   Кастомные стили шаблона ПРИНТ-МГУ
   ------------------------------------------------------------
   Структура файла:
   1.  Базовые переопределения заголовков
   2.  Карточки услуг (мобильная версия) #mod-custom114
   3.  Блок заголовков + карточки (порядок)
   4.  Шапка — контакты (адаптив):
         • ≥ 601px — всё видно
         • ≤ 600px — телефон скрыт, иконки (адрес/телефон) и кнопка
           меню уменьшены ОДИН раз на 25%
         • ≤ 340px — бренд «ПРИНТ-МГУ» скрыт
         • ≤ 310px — кнопка меню повторно уменьшена (совпадает с 600px)
         • ≤ 285px — только иконки, все текстовые надписи скрыты
   5.  Таблица цен — мобильный вид
   6.  Основные стили сайта
   7.  Offcanvas (боковое меню)
   8.  Фон / сетка / хедер
   9.  Верхний слайдер
   10. Анимированные карточки
   11. Таблицы
   12. Backdrop для offcanvas
   13. Offcanvas «Оформление заказа»
   14. Баннер ≤ 700px
   15. Таблицы цен — первая колонка на мобильных
   16. Бренд «ПРИНТ-МГУ» в шапке:
         • базово — scaleX(0.75), 1.8rem
         • ≤ 680px — шрифт −15%
         • ≤ 359px — перенос на 2 строки, шрифт −25%, line-height −25%
   17. Карточка-обёртка #mod-custom114 — снять рамку и padding
   ============================================================ */

/* ============================================================
   1. БАЗОВЫЕ ПЕРЕОПРЕДЕЛЕНИЯ ЗАГОЛОВКОВ
   ============================================================ */

h1, .h1 {
    font-size: 1.75rem;
}

h2, .h2 {
    font-size: 1.45rem;
}

/* ============================================================
   2. КАРТОЧКИ УСЛУГ — МОБИЛЬНАЯ ВЕРСИЯ (≤ 575.98px)
   #mod-custom114 — модуль с карточками услуг
   ============================================================ */

@media (max-width: 575.98px) {

    /* --- Обёртка <a> — flex-строка --- */
    #mod-custom114 .row.g-4 > a[class*="col-"] {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        margin-bottom: 0 !important;
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }

    /* --- Зазор между «кнопками» — вдвое меньше (2px) --- */
    #mod-custom114 .row.g-4 {
        --gutter-y: 0 !important;
        row-gap: 0.125rem !important;
    }

    /* --- .card = компактная кнопка --- */
    #mod-custom114 .row.g-4 .card.card-animated {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 0 !important;
        border-radius: 5px !important;
        border: 1px solid #e5e5e5 !important;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
        overflow: hidden !important;
        transition: background-color 0.15s ease, border-color 0.15s ease;
    }

    #mod-custom114 .row.g-4 .card.card-animated:hover,
    #mod-custom114 .row.g-4 .card.card-animated:focus-within {
        background-color: #f5f7fb;
        border-color: #203D66;
        transform: none !important;
        filter: none !important;
    }

    /* --- .card-body: заголовок ⅔ слева + картинка ⅓ справа --- */
    #mod-custom114 .row.g-4 .card .card-body {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        min-height: 0 !important;
        flex-wrap: nowrap !important;
    }

    /* --- ЗАГОЛОВОК: ⅔ ширины слева, переносится по словам --- */
    #mod-custom114 .row.g-4 .card .card-title {
        order: 1 !important;
        flex: 0 0 66.6667% !important;
        max-width: 66.6667% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0.6rem 0.75rem !important;
        font-size: 1rem !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;
        color: #203D66 !important;

        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;

        display: flex !important;
        align-items: center !important;
    }

    /* --- КАРТИНКА: ⅓ ширины справа, на всю высоту --- */
    #mod-custom114 .row.g-4 .card .card-body > img.img-fluid {
        order: 2 !important;
        flex: 0 0 33.3333% !important;
        max-width: 33.3333% !important;
        align-self: stretch !important;
        width: 33.3333% !important;
        height: auto !important;
        object-fit: cover !important;
        border-radius: 0 !important;
        border: 0 !important;
        margin: 0 !important;
        display: block !important;
    }

    /* --- Описание скрыто --- */
    #mod-custom114 .row.g-4 .card .card-text {
        display: none !important;
    }

    /* --- Отключаем десктопную анимацию --- */
    #mod-custom114 .row.g-4 .card.card-animated,
    #mod-custom114 .row.g-4 a.card-animated {
        will-change: auto !important;
    }
}

/* ============================================================
   3. БЛОК ЗАГОЛОВКОВ + КАРТОЧКИ (порядок)
   Mobile-first: заголовки ПОД карточками.
   Десктоп (≥992px): заголовки НАД карточками.
   ============================================================ */

#mod-custom114 {
    display: flex;
    flex-direction: column;
}

#mod-custom114 > .row.g-4  { order: 1; }

#mod-custom114 > .page-hero {
    order: 2;
    margin-top: 1rem;
    margin-bottom: 0;
}

@media (min-width: 992px) {
    #mod-custom114 > .page-hero {
        order: 1;
        margin-top: 0;
        margin-bottom: 1rem;
    }
    #mod-custom114 > .row.g-4 {
        order: 2;
    }
}

/* ============================================================
   4. ШАПКА — КОНТАКТЫ (адаптив)
   Порядок в разметке: АДРЕС (с часами) → ТЕЛЕФОН
   • ≥ 601px — всё видно: адрес и телефон жирным, иконки 2rem
   • ≤ 600px — скрывается номер телефона; иконки контактов
     (адрес/телефон) и кнопка-бургер уменьшаются ОДИН раз
     на 25%; адрес переносится, часы — нет; шрифт контактов −15%
   • ≤ 340px — бренд «ПРИНТ-МГУ» скрывается
   • ≤ 310px — кнопка-бургер сохраняет уменьшенный размер
     (совпадает со значениями 600px, чтобы не «дёргалась»)
   • ≤ 285px — только иконки, все текстовые надписи скрыты
   ============================================================ */

/* --- ≤ 600px: телефон скрыт, иконки и кнопка меню уменьшены один раз --- */
@media (max-width: 600px) {

    /* Скрываем только номер телефона (иконка-трубка остаётся) */
    .container-nav .phone-number {
        display: none !important;
    }

    /* Иконки контактов: 2rem → 1.5rem (−25%) — уменьшаются ОДИН раз */
    .container-nav .icon-phone,
    .container-nav .icon-location {
        font-size: 1.5rem;
    }

    /* Кнопка-бургер: паддинги −25% (Bootstrap: .6rem 1rem → .45rem .75rem)
       и иконка внутри −25% (1.8rem → 1.35rem) */
    .btn-primary[data-bs-target="#offcanvasMenu"] {
        --btn-padding-y: 0.45rem;
        --btn-padding-x: 0.75rem;
    }
    .btn-primary[data-bs-target="#offcanvasMenu"] .icon-menu {
        font-size: 1.35rem;
    }

    /* Часы работы (вторая строка под адресом) — НЕ переносится */
    .container-nav .work-time {
        display: block;
        white-space: nowrap !important;
        font-size: 0.68rem;              /* −15% от 0.8rem */
        line-height: 1.1;
        color: #000;
    }

    /* Адрес — может переноситься при нехватке места */
    .container-nav .address-text {
        color: #000;
        font-size: 0.68rem;              /* −15% от 0.8rem */
        white-space: normal !important;
        overflow-wrap: break-word;
        line-height: 1.1;
    }

    /* Контейнер адреса — даём flex-ужиматься, чтобы текст переносился */
    .container-nav .address-info {
        white-space: normal !important;
        word-break: normal;
        min-width: 0;
    }

    /* Иконки выравниваем по верху (адрес может быть в 2 строки) */
    .container-nav .nav-item > .nav-link {
        align-items: flex-start !important;
    }

    /* Убираем лишние отступы */
    .container-nav .navbar {
        padding: 0 !important;
        background: transparent !important;
    }

    .container-nav .navbar .container-fluid {
        padding: 0 !important;
    }

    .container-nav .navbar-nav {
        gap: 0.5rem !important;
        margin-bottom: 0 !important;
    }

    .container-nav .nav-link {
        padding: 0.25rem !important;
    }

    .grid-child.container-nav {
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
    }
}

/* --- ≤ 340px: скрываем бренд «ПРИНТ-МГУ» --- */
@media (max-width: 210px) {
    .print-brand {
        display: none !important;
    }
}

/* --- ≤ 310px: кнопка-бургер — параметры те же, что и в 600px,
       дублируются для явности (совпадают 1:1, конфликта нет) --- */
@media (max-width: 310px) {

    .btn-primary[data-bs-target="#offcanvasMenu"] {
        --btn-padding-y: 0.45rem;
        --btn-padding-x: 0.75rem;
    }

    .btn-primary[data-bs-target="#offcanvasMenu"] .icon-menu {
        font-size: 1.35rem;
    }

    /* Глиф кнопки: 30px → 22.5px (−25%)
       Перебивает правило ≤ 420px для .icon-menu:before */
    .btn-primary[data-bs-target="#offcanvasMenu"] .icon-menu:before {
        font-size: 22.5px;
    }
}

/* --- ≤ 285px: только иконки, все текстовые надписи скрыты --- */
@media (max-width: 320px) {

    /* Скрываем ВСЕ текстовые надписи в контактах */
    .container-nav .phone-info,
    .container-nav .address-info,
    .container-nav .work-time,
    .container-nav .address-text {
        display: none !important;
    }

    /* Иконки — центрируем */
    .container-nav .nav-item > .nav-link {
        align-items: center !important;
        padding: 0.25rem !important;
    }

    /* Убираем правый отступ иконок (размер уже задан правилом 600px) */
    .container-nav .icon-phone,
    .container-nav .icon-location {
        margin-right: 0;
    }

    /* Уменьшаем зазор между иконками */
    .container-nav .navbar-nav {
        gap: 0.75rem !important;
    }
}

/* --- Десктоп: ≥ 601px — всё видно --- */
@media (min-width: 601px) {

    /* Адрес и телефон — оба жирным */
    .container-nav .phone-number,
    .container-nav .address-text {
        display: inline-block !important;
        font-weight: 700;
    }

    .container-nav .work-time {
        white-space: nowrap !important;
        font-size: 0.8em !important;
        max-width: none;
    }

    .container-nav .nav-item > .nav-link {
        align-items: center !important;
    }

    .container-nav .address-info {
        max-width: none;
        white-space: nowrap !important;
    }
}

/* ============================================================
   5. ТАБЛИЦА ЦЕН — компактный вид на мобильных
   ============================================================ */

@media (max-width: 767.98px) {
    .price-list .table {
        font-size: 0.75rem;
        margin-bottom: 0.75rem;
    }
    .price-list .table > :not(caption) > * > * {
        padding: 0.25rem 0.3rem;
    }
    .price-list .table h3 {
        font-size: 0.9375rem;
        margin-bottom: 0.1rem;
        line-height: 1.2;
    }
    .price-list .table h4 {
        font-size: 0.75rem;
        margin-bottom: 0;
        line-height: 1.2;
    }
    .price-list .table th[scope="row"] {
        word-break: break-word;
        hyphens: auto;
    }
}

/* ============================================================
   6. ОСНОВНЫЕ СТИЛИ САЙТА
   ============================================================ */

.container-header .grid-child {
    padding: 0;
}

.container-banner {
    margin: 0 0 0.5rem;
    border-bottom: 2px solid #dfe3e7;
}

.calcright .gallery-container {
    margin-left: 4rem !important;
}

@media (max-width: 1200px) {
    .calcright .gallery-container {
        margin-left: 1rem !important;
    }
}

@media (max-width: 768px) {
    .calcright {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .picincalc {
        display: none !important;
    }
}

.container-header nav {
    margin-top: 0;
}

.icon-phone,
.icon-location {
    font-size: 2rem;
    color: #203D66 !important;
    margin-right: 0.4rem;
}

.nav-link .icon-home,
.nav-link .icon-phone,
.nav-link .icon-location {
    vertical-align: middle;
}

[class^="icon-"] {
    display: inline-block;
    line-height: 1;
}

.phone-info,
.address-info {
    line-height: 1.2;
}

.phone-number,
.address-text {
    font-weight: 700;
}

.work-time {
    font-size: 0.8em;
    color: #6c757d;
    white-space: nowrap;
}

/* ============================================================
   7. OFF CANVAS (боковое меню)
   ============================================================ */

.btn-primary {
    --btn-color: #203D66;
    --btn-bg: #fff;
    --btn-border-color: #fff;
    --btn-hover-color: #446CAB;
    --btn-hover-bg: #fff;
    --btn-hover-border-color: #fff;
    --btn-focus-shadow-rgb: 39, 39, 111;
    --btn-active-color: #446CAB;
    --btn-active-bg: #fff;
    --btn-active-border-color: #fff;
    --btn-active-shadow: inset 0 3px 5px #00000020;
    --btn-disabled-color: #446CAB;
    --btn-disabled-bg: #fff;
    --btn-disabled-border-color: #fff;
}

@media (max-width: 420px) {
    .icon-menu:before { font-size: 30px; }
}

@media (max-width: 1280px) {
    .menu-text {
        display: none !important;
    }
    .icon-menu {
        display: inline-block !important;
        font-size: 1.8rem;
    }
}

.icon-menu {
    font-size: 1.8rem;
}

.offcanvas button.btn-close { transition: .2s ease-in-out; }
.offcanvas button.btn-close:hover { opacity: 1; }

.offcanvas-body .nav.flex-column {
    width: 100%;
    gap: 2px;
}

.offcanvas-body .nav-item {
    width: 100%;
}

.offcanvas-body .nav-item > a {
    display: block;
    padding: 0.5rem 1rem;
    color: #212529;
    text-decoration: none;
    border-radius: 0.375rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.offcanvas-body .nav-item > a:hover,
.offcanvas-body .nav-item > a:focus {
    color: #446CAB;
    background-color: #CED4E8;
}

.offcanvas-body .nav-item.current.active > a {
    color: #fff;
    background-color: #203D66;
    border-color: #0d6efd;
}

.offcanvas-body .nav-item.current.active > a:hover {
    background-color: #446CAB;
}

.offcanvas-body .nav-item.divider {
    padding: 0;
    margin: 0.5rem 0;
    border-top: 1px solid #dee2e6;
    list-style: none;
}

.offcanvas-body .nav-item.divider .separator,
.offcanvas-body .nav-item.divider .mod-menu__separator {
    display: block;
    height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: 0;
    font-size: 0;
    line-height: 0;
}

/* ============================================================
   8. ФОН / СЕТКА / ХЕДЕР
   ============================================================ */

.site-grid {
    background: transparent;
    position: relative;
    z-index: 0;
}

.site-grid::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-image: url('/images/bg.content.styles.png');
    background-repeat: repeat;
    background-position: center;
    background-size: auto;
    clip-path: inset(33.33vh 0 0 0);
    z-index: -1;
    pointer-events: none;
}

.container-header .navbar-toggler {
    color: #203D66;
}

.breadcrumb {
    background-color: #CED4E8;
}

.table {
    --table-hover-bg: #CED4E8;
}

/* ============================================================
   9. ВЕРХНИЙ СЛАЙДЕР — базовое правило (>700px)
   ============================================================ */

.slidertopcont {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto 100%;
    height: 195px !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    padding: 0 60px !important;
}

.slidertopcont-left {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
}

.slidertopcont-left img {
    height: 180px !important;
    width: auto !important;
    display: block !important;
}

.slidertopcont-right {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    max-width: 200px;
    word-break: break-word;
}

.print-slogan {
 font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: #203D66!important;
    text-transform: uppercase !important;
    text-shadow: 12x 12px 12px rgba(255, 255, 255, 1) !important;
    white-space: normal !important;
    text-decoration: none !important;
  transition: color 0.15s ease-in-out;
    transform: scaleX(0.75);
    transform-origin: left center;
    padding-left: 1rem;
   background-color: rgb(255 255 255 / 65%);
}


/* ============================================================
   10. АНИМИРОВАННЫЕ КАРТОЧКИ
   ============================================================ */

.site-grid .card-animated {
    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1),
                filter 0.5s ease,
                box-shadow 0.5s ease !important;
    filter: brightness(100%) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05) !important;
    border-radius: 8px;
}

.site-grid .card-animated:hover {
    transform: scale(1.02) !important;
    filter: brightness(1.08) !important;
    box-shadow: 0 8px 25px rgba(0, 86, 179, 0.25) !important;
    position: relative !important;
    z-index: 5 !important;
}

.site-grid a.card-animated {
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1),
                filter 0.5s ease,
                box-shadow 0.5s ease !important;
    filter: brightness(100%) !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02) !important;
    border-radius: 8px;
    text-decoration: none;
}

.site-grid a.card-animated:hover {
    transform: scale(1.02) !important;
    filter: brightness(1.08) !important;
    box-shadow: 0 8px 25px rgba(0, 86, 179, 0.22) !important;
    position: relative !important;
    z-index: 5 !important;
}

/* ============================================================
   11. ТАБЛИЦЫ
   ============================================================ */

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --table-bg-type: #F6F6F6;
}
.table-striped > tbody > tr.info {
    --table-bg-type: #EAEFFF;
    background-color: var(--table-bg-type, #EAEFFF);
}

.float-start { display: none; }

/* ============================================================
   12. BACKDROP ДЛЯ OFFCANVAS — прозрачный по умолчанию
   ============================================================ */

.offcanvas-backdrop {
    background-color: transparent !important;
    opacity: 0 !important;
    z-index: 1040 !important;
    transition: opacity 0.2s linear;
}

.offcanvas-backdrop.show,
.offcanvas-backdrop.fade {
    opacity: 0 !important;
}

/* ============================================================
   13. OFF-CANVAS «Оформление заказа» (.offcanvas-zakaz)
   ============================================================ */

.offcanvas-zakaz {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    z-index: 1080 !important;
    display: flex !important;
    flex-direction: column !important;
    transform: translateX(-100%) !important;
    transition: transform 0.3s ease-in-out !important;
}

.offcanvas-zakaz.show,
.offcanvas-zakaz.showing {
    transform: translateX(0) !important;
}

.offcanvas-zakaz.hiding {
    transform: translateX(-100%) !important;
}

body:has(.offcanvas-zakaz.show) .offcanvas-backdrop {
    background-color: #ffffff !important;
    opacity: 1 !important;
    z-index: 1040 !important;
}

.offcanvas-zakaz .offcanvas-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .875rem 1.5rem;
    background: #fff;
    border-bottom: 1px solid #dee2e6;
    flex: 0 0 auto;
    width: 100%;
    position: sticky;
    top: 0;
    z-index: 2;
}

.offcanvas-zakaz .offcanvas-title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
    color: #203d66;
}

.offcanvas-zakaz .zakaz-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #203d66;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    position: relative;
    z-index: 3;
}

.offcanvas-zakaz .zakaz-close:hover { background: #0a4a8a; }

.offcanvas-zakaz .offcanvas-body {
    flex: 1 1 auto;
    overflow-y: auto;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 1.5rem 1rem !important;
    box-sizing: border-box !important;
}

.offcanvas-zakaz .offcanvas-body > * {
    width: 100% !important;
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.offcanvas-zakaz .zakaz-inner {
    width: 100% !important;
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 800px) {
    .offcanvas-zakaz .offcanvas-body {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
    .offcanvas-zakaz .offcanvas-body > *,
    .offcanvas-zakaz .zakaz-inner {
        max-width: 100% !important;
    }
}

body:has(.offcanvas-zakaz.show) .site-grid {
    z-index: 1090 !important;
}

.qf3form.default .qf-report-value,
td.qf-report-value {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
    max-width: 0;
}

/* ============================================================
   14. БАННЕР ≤ 700px — в самом конце секции слайдера
   Перебивает все предыдущие правила .slidertopcont.
   ============================================================ */

@media (max-width: 700px) {

    /* Скрываем логотип и надпись «ПРИНТ-МГУ» */
    .slidertopcont-left,
    .slidertopcont-right {
        display: none !important;
    }

    /* Контейнер: только фон, высота 124px */
    .slidertopcont {
        display: block !important;
        height: 124px !important;
        min-height: 124px !important;
        max-height: 124px !important;
        padding: 0 !important;
        gap: 0 !important;
        background-size: cover !important;
        background-position: center center !important;
    }
}

/* ============================================================
   15. ТАБЛИЦЫ ЦЕН — компактная первая колонка на мобильных
   ≤ 767.98px
   Используем table-layout: fixed — иначе браузер распределяет
   ширины по содержимому и первая колонка раздувается.
   ============================================================ */

@media (max-width: 767.98px) {

    /* --- Главное: фиксированная раскладка таблицы --- */
    .price-list .table {
        table-layout: fixed;
        width: 100%;
        font-size: 0.7rem;
    }

    /* --- Управление ширинами через <col> --- */
    .price-list .table colgroup col:first-child {
        width: 38%;
    }

    .price-list .table colgroup col:not(:first-child) {
        width: auto;
    }

    /* --- Строки-разделители (colspan) — на всю ширину --- */
    .price-list .table colgroup col[span] {
        width: auto;
    }

    /* --- Первая колонка: компактный текст, перенос --- */
    .price-list .table tbody th[scope="row"] {
        font-size: 0.7rem;
        line-height: 1.15;
        padding: 0.3rem 0.25rem;
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        text-align: left;
        vertical-align: middle;
    }

    /* --- Заголовок первой колонки --- */
    .price-list .table thead th:first-child {
        font-size: 0.7rem;
        line-height: 1.15;
        padding: 0.3rem 0.25rem;
    }

    /* --- Числовые колонки: центрированы, компактные --- */
    .price-list .table thead th:not(:first-child),
    .price-list .table tbody td {
        font-size: 0.7rem;
        line-height: 1.15;
        padding: 0.3rem 0.15rem;
        text-align: center;
        vertical-align: middle;
    }

    /* --- Секции-заголовки (colspan="5") --- */
    .price-list .table thead th[colspan="5"],
    .price-list .table tbody td[colspan="5"] {
        font-size: 0.7rem;
        line-height: 1.2;
        padding: 0.35rem 0.25rem;
        text-align: center;
    }

    /* --- Вложенные h3/h4 внутри шапки не должны раздувать --- */
    .price-list .table h3 {
        font-size: 0.85rem;
        line-height: 1.15;
        margin-bottom: 0.1rem;
    }

    .price-list .table h4 {
        font-size: 0.7rem;
        line-height: 1.15;
        margin-bottom: 0;
    }
}

/* ============================================================
   16. БРЕНД «ПРИНТ-МГУ» — между сэндвич-меню и контактами
   Шрифт сжат по ширине ~25% (scaleX(0.75)).
   flex-shrink: 0 — надпись не ужимается и не исчезает
   даже при 380px и ниже.
   ============================================================ */

.container-nav {
    align-items: stretch;
    gap: 0.5rem;
}

.container-nav .print-brand {
    display: flex;
    align-items: center;
    align-self: stretch;

    /* Ключевое: бренд НЕ ужимается — исчезал при 380px из-за flex-shrink */
    flex-shrink: 0;
    min-width: fit-content;

    margin: 0;
    margin-right: auto;
    padding: 0;
    padding-bottom: 0.2rem;

    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;

    color: #203D66;
    transition: color 0.15s ease-in-out;

    /* Сжатие букв по ширине на 25% */
    transform: scaleX(0.75);
    transform-origin: left center;
}

.container-nav .print-brand:hover,
.container-nav .print-brand:focus-visible {
    color: #446CAB;
    text-decoration: none;
}

.container-nav .print-brand:focus-visible {
    outline: 2px solid #446CAB;
    outline-offset: 3px;
    border-radius: 3px;
}

/* Убираем me-auto у контактов — бренд сам их толкает */
.container-nav #mod-custom117 .navbar-nav {
    margin-right: 0 !important;
}

/* --- Адаптив бренда: −15% шрифта на малых экранах --- */
@media (max-width: 680px) {
    .container-nav .print-brand {
        font-size: 1.0625rem;    /* −15% от 1.25rem */
    }
}



/* ============================================================
   17. КАРТОЧКА-ОБЁРТКА #mod-custom114 — снять рамку и padding,
       плитки услуг растянуть на всю ширину контентной части.
       ВАЖНО: у самих плиток (.card.card-animated) рамка,
       скругление и тень сохраняются — правки касаются только
       внешней карточки-обёртки модуля.
   ============================================================ */

/* 17.1 Внешний <div class="main-top card"> — снимаем
   рамку, фон, скругление и тень Bootstrap-карточки.
   overflow: visible — чтобы тени/анимации крайних плиток
   не обрезались при отрицательных margin-ах ниже. */
.container-component > .main-top.card {
    border: 0;
    border-radius: 0;
    background-color: transparent;
    box-shadow: none;
    overflow: visible;
}

/* 17.2 Внутренний .card-body обёртки — снимаем padding 1rem,
   который Bootstrap даёт по умолчанию (--card-spacer-x/y). */
.container-component > .main-top.card > .card-body {
    padding: 0;
}

/* 17.3 Компенсация отрицательного margin Bootstrap-сетки.
   На десктопе .g-4 => --gutter-x: 1.5rem, значит у колонок
   padding 0.75rem с каждой стороны. Обёртка «вытягивает» сетку
   на -0.75rem, чтобы крайние плитки встали ровно по краям
   контентной части, а внутренние зазоры между плитками
   остались нетронутыми. */
#mod-custom114 .row.g-4 {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
}

/* 17.4 Мобильная версия (≤ 575.98px): в разделе 2 колонкам
   задан padding 0.5rem, значит компенсировать нужно -0.5rem,
   иначе крайние «кнопки» вылезут за пределы контента. */
@media (max-width: 575.98px) {
    #mod-custom114 .row.g-4 {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
}



@media (max-width: 359px) {
    .container-nav .print-brand {
        /* display: block; */
        white-space: normal;
        word-break: break-word;
        overflow-wrap: break-word;
        max-width: 4em;
        min-width: 0;
        font-size: 0.9rem;
         line-height: 0.75; 
        /* padding-bottom: 0; */
    }
}