/*
 * СПб ГБУЗ «Городская поликлиника №117»
 * Современная версия шаблона для слабовидящих.
 * Использует те же Joomla-модули и Main Menu, что и обычный allrounder-3-modern.
 * Отдельные Menu_ac / *_ac и позиции *-vi не требуются.
 */

:root {
    --access-max-width: 1700px;
    --access-radius: 14px;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    --bg: #ffffff;
    --fg: #111111;
    --panel: #f5f5f2;
    --panel-strong: #eeeeea;
    --border: #4b4b4b;
    --accent: #6f8d18;
    --accent-contrast: #ffffff;
    --muted: #555555;
    margin: 0;
    min-width: 0;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.5;
}

body.color1 {
    --bg: #ffffff;
    --fg: #111111;
    --panel: #f6f6f2;
    --panel-strong: #eeeeea;
    --border: #555555;
    --accent: #6f8d18;
    --accent-contrast: #ffffff;
    --muted: #555555;
}

body.color2 {
    --bg: #000000;
    --fg: #ffffff;
    --panel: #000000;
    --panel-strong: #111111;
    --border: #ffffff;
    --accent: #c5df40;
    --accent-contrast: #000000;
    --muted: #d6d6d6;
}

body.color3 {
    --bg: #9dd1ff;
    --fg: #063462;
    --panel: #b8ddff;
    --panel-strong: #cbe7ff;
    --border: #063462;
    --accent: #063462;
    --accent-contrast: #ffffff;
    --muted: #174f82;
}

body.color4 {
    --bg: #f7f3d6;
    --fg: #59422e;
    --panel: #eee8bf;
    --panel-strong: #e6ddaa;
    --border: #59422e;
    --accent: #59422e;
    --accent-contrast: #f7f3d6;
    --muted: #6d523a;
}

body.color5 {
    --bg: #3b2716;
    --fg: #a9dd38;
    --panel: #342114;
    --panel-strong: #2b1c10;
    --border: #a9dd38;
    --accent: #a9dd38;
    --accent-contrast: #2b1c10;
    --muted: #c3e875;
}

* {
    box-sizing: border-box;
}

img,
svg,
video,
canvas,
iframe,
object,
embed {
    max-width: 100%;
}

a {
    color: var(--fg) !important;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}

a:hover {
    text-decoration-thickness: 3px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 4px solid var(--accent) !important;
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    z-index: 5000;
    top: 10px;
    left: 10px;
    transform: translateY(-150%);
    padding: 12px 16px;
    border: 3px solid var(--border);
    background: var(--bg);
    color: var(--fg);
    font-size: 18px;
    font-weight: 700;
}

.skip-link:focus {
    transform: none;
}

.text-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* =========================================================
   ПАНЕЛЬ ВЕРСИИ ДЛЯ СЛАБОВИДЯЩИХ
   ========================================================= */

.access-toolbar {
    position: sticky;
    top: 0;
    z-index: 3000;
    width: min(calc(100% - 32px), var(--access-max-width));
    margin: 0 auto;
    border: 3px solid var(--border);
    border-top: 0;
    border-radius: 0 0 12px 12px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    box-shadow: 0 5px 16px rgba(0,0,0,.12);
}

.access-toolbar-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    min-height: 70px;
    padding: 9px 14px;
    font-size: 18px;
    line-height: 1.15;
}

.access-toolbar dl,
.access-toolbar dt,
.access-toolbar dd,
.access-toolbar p {
    margin: 0;
    padding: 0;
}

.access-group {
    display: flex;
    align-items: center;
    gap: 7px;
}

.access-group dt {
    font-weight: 700;
    white-space: nowrap;
}

.a-fontsize a,
.a-colors a,
.a-images a,
.access-action a,
.font-family,
.letter-spacing,
.choose-colors a,
.saveit a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 6px 12px;
    border: 2px solid var(--border) !important;
    border-radius: 7px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.a-fontsize a,
.a-colors a {
    min-width: 44px;
    padding-left: 8px;
    padding-right: 8px;
}

.a-fontsize-small { font-size: 19px !important; }
.a-fontsize-normal { font-size: 26px !important; }
.a-fontsize-big { font-size: 33px !important; }

.a-fontsize a[aria-pressed="true"],
.a-colors a[aria-pressed="true"],
.font-family[aria-pressed="true"],
.letter-spacing[aria-pressed="true"] {
    box-shadow: inset 0 0 0 3px var(--accent);
}

.a-colors .a-color1,
#color1 a {
    color: #111 !important;
    background: #fff !important;
    border-color: #111 !important;
}

.a-colors .a-color2,
#color2 a {
    color: #fff !important;
    background: #000 !important;
    border-color: #fff !important;
}

.a-colors .a-color3,
#color3 a {
    color: #063462 !important;
    background: #9dd1ff !important;
    border-color: #063462 !important;
}

#color4 a {
    color: #59422e !important;
    background: #f7f3d6 !important;
    border-color: #59422e !important;
}

#color5 a {
    color: #a9dd38 !important;
    background: #3b2716 !important;
    border-color: #a9dd38 !important;
}

.a-settings a::after {
    content: "▾";
    margin-left: 9px;
}

.a-settings a[aria-expanded="true"]::after {
    content: "▴";
}

.popped {
    display: none;
    position: absolute;
    z-index: 3100;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100vh - 86px);
    overflow: auto;
    padding: 22px;
    border: 3px solid var(--border);
    border-radius: 0 0 12px 12px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font-size: 20px;
    box-shadow: 0 12px 30px rgba(0,0,0,.24);
}

.popped h2 {
    margin: 0 0 14px;
    color: var(--fg) !important;
    font-size: 28px;
}

.popped p {
    margin: 0 0 18px;
}

.choose-font-family,
.choose-letter-spacing {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.choose-colors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.choose-colors li {
    margin: 0;
    padding: 0;
}

.choose-colors a {
    width: 100%;
    justify-content: flex-start;
}

.choose-colors a span {
    display: none;
    margin-right: 8px;
}

.color1 #color1 a span,
.color2 #color2 a span,
.color3 #color3 a span,
.color4 #color4 a span,
.color5 #color5 a span {
    display: inline;
}

.saveit {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* =========================================================
   ОБЩАЯ ОБОЛОЧКА — КАК У ОБЫЧНОГО ШАБЛОНА
   ========================================================= */

.site-frame {
    width: min(calc(100% - 32px), var(--access-max-width));
    margin: 20px auto 34px;
}

.site-header {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr) 220px;
    align-items: center;
    gap: 26px;
    min-height: 150px;
    padding: 14px 22px;
    border: 3px solid var(--border);
    border-radius: var(--access-radius);
    background: var(--panel) !important;
    color: var(--fg) !important;
}

.brand-photo {
    display: block;
    overflow: hidden;
    border: 2px solid var(--border);
    border-radius: 15px;
    line-height: 0;
}

.brand-photo img {
    display: block;
    width: 100%;
    height: 112px;
    object-fit: cover;
}

.brand-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    color: var(--fg) !important;
    text-decoration: none !important;
}

.brand-org-type {
    margin-bottom: 6px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .04em;
}

.brand-org-name {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 800;
}

.accessibility-status {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    text-align: center;
    font-size: 17px;
    font-weight: 700;
}

.accessibility-eye {
    display: grid;
    place-items: center;
    width: 68px;
    height: 44px;
    border: 4px solid var(--accent);
    border-radius: 60% 15%;
    color: var(--accent);
    font-size: 28px;
    transform: rotate(0deg);
}

.site-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-top: 18px;
    align-items: start;
}

.site-layout.has-left.has-right {
    grid-template-columns: 280px minmax(0, 1fr) 300px;
}

.site-layout.has-left:not(.has-right) {
    grid-template-columns: 280px minmax(0, 1fr);
}

.site-layout.has-right:not(.has-left) {
    grid-template-columns: minmax(0, 1fr) 300px;
}

.center-column {
    min-width: 0;
}

.sidebar,
.breadcrumbs-area,
.main-navigation,
.main-content,
.site-footer {
    border: 2px solid var(--border);
    border-radius: 12px;
    background: var(--bg) !important;
    color: var(--fg) !important;
}

/* Левая и правая колонки */
.sidebar {
    min-width: 0;
}

.sidebar .moduletable,
.sidebar .moduletable_menu,
.sidebar .moduletable_text,
.sidebar .module,
.sidebar .custom {
    margin: 0;
    color: var(--fg) !important;
}

.sidebar .moduletable,
.sidebar .moduletable_menu,
.sidebar .moduletable_text {
    padding: 16px;
    border-bottom: 2px solid var(--border);
}

.sidebar .moduletable:last-child,
.sidebar .moduletable_menu:last-child,
.sidebar .moduletable_text:last-child {
    border-bottom: 0;
}

.sidebar h3 {
    margin: -16px -16px 14px;
    padding: 13px 16px;
    border-bottom: 3px solid var(--accent);
    background: var(--panel) !important;
    color: var(--fg) !important;
    font-size: 1.12em;
    line-height: 1.2;
}

.sidebar ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--border);
}

.sidebar li:last-child {
    border-bottom: 0;
}

.sidebar li a,
.sidebar li .separator {
    display: block;
    padding: 11px 4px;
    color: var(--fg) !important;
    overflow-wrap: anywhere;
}

.sidebar li.current > a,
.sidebar li.active > a {
    border-left: 5px solid var(--accent);
    padding-left: 10px;
    font-weight: 800;
}

.sidebar li ul {
    margin: 0 0 8px 14px;
}

.sidebar img {
    display: block;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto;
}

.sidebar .custom > *:first-child { margin-top: 0 !important; }
.sidebar .custom > *:last-child { margin-bottom: 0 !important; }

/* Поиск */
.site-search {
    padding: 12px;
    border-bottom: 2px solid var(--border);
}

.site-search form,
.site-search .search {
    margin: 0 !important;
}

.site-search input[type="search"],
.site-search input[type="text"],
.site-search .inputbox {
    display: block;
    width: 100% !important;
    min-height: 48px;
    padding: 8px 12px;
    border: 2px solid var(--border) !important;
    border-radius: 8px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font: inherit;
}

/* Хлебные крошки */
.breadcrumbs-area {
    min-height: 48px;
    margin-bottom: 12px;
    padding: 10px 14px;
    background: var(--panel) !important;
    font-size: .86em;
}

.breadcrumbs-area .moduletable,
.breadcrumbs-area ul,
.breadcrumbs-area ol,
.breadcrumbs-area p {
    margin: 0 !important;
}

.breadcrumbs-area ul,
.breadcrumbs-area ol {
    padding-left: 0 !important;
    list-style: none;
}

/* Заголовки системных модулей в обычном шаблоне не показываются.
   В спецверсии тоже не выводим "Breadcrumbs" и "Search". */
.breadcrumbs-area > h3,
.breadcrumbs-area .module-title,
.breadcrumbs-area .moduletable > h3,
.site-search > h3,
.site-search .module-title,
.site-search .moduletable > h3 {
    display: none !important;
}

/* Служебная информация Joomla: автор, категория, печать и т.п.
   На обычной версии сайта она уже скрыта — сохраняем одинаковое поведение. */
.main-content .article-info,
.main-content .article-info-term,
.main-content .createdby,
.main-content .created,
.main-content .published,
.main-content .modified,
.main-content .hits,
.main-content .category-name,
.main-content .parent-category-name,
.main-content .icons,
.main-content .actions,
.main-content .print-icon,
.main-content .email-icon,
.main-content .edit-icon,
.main-content .content_rating,
.main-content .content_vote {
    display: none !important;
}

/* Верхнее меню, то же место, что и в обычной версии */
.main-navigation {
    position: relative;
    z-index: 100;
    margin-bottom: 14px;
    padding: 10px;
    background: var(--panel) !important;
}

.main-navigation ul.menu,
.main-navigation > div > ul,
.main-navigation .nav.menu {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.main-navigation li {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-navigation li > a,
.main-navigation li > span.separator,
.main-navigation li > span.nav-header {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 8px 14px;
    border: 2px solid var(--border);
    border-radius: 8px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.main-navigation li.current > a,
.main-navigation li.active > a,
.main-navigation li.current > span.separator,
.main-navigation li.active > span.separator {
    background: var(--accent) !important;
    color: var(--accent-contrast) !important;
    border-color: var(--accent) !important;
}

.main-navigation li.parent > a::after,
.main-navigation li.parent > span.separator::after,
.main-navigation li.parent > span.nav-header::after {
    content: "▾";
    margin-left: 10px;
    font-size: .8em;
}

.main-navigation li ul {
    display: none;
    position: absolute;
    z-index: 500;
    top: calc(100% + 3px);
    left: 0;
    width: min(360px, 85vw);
    margin: 0 !important;
    padding: 6px !important;
    border: 3px solid var(--border);
    border-radius: 9px;
    background: var(--bg) !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
    list-style: none;
}

.main-navigation li:hover > ul,
.main-navigation li:focus-within > ul {
    display: block;
}

.main-navigation li ul li > a,
.main-navigation li ul li > span.separator {
    min-height: 44px;
    border: 0;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
}


/* Оба обычных меню (position-1 и position-1-1) оформляются одинаково. */
#topmenu_secondary { margin-top: 8px; }
#topmenu > ul,
#topmenu_secondary > ul,
#topmenu .menu,
#topmenu_secondary .menu,
#topmenu .nav,
#topmenu_secondary .nav {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#topmenu > a,
#topmenu_secondary > a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    margin: 0 6px 6px 0;
    padding: 8px 14px;
    border: 2px solid var(--border);
    border-radius: 8px;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font-weight: 700;
    text-decoration: none !important;
}

/* Основной материал */
.main-content {
    min-width: 0;
    padding: 28px 30px 36px;
    overflow-wrap: anywhere;
}

.fontsize-small .main-content,
.fontsize-small .sidebar,
.fontsize-small .main-navigation { font-size: 18px; }

.fontsize-normal .main-content,
.fontsize-normal .sidebar,
.fontsize-normal .main-navigation { font-size: 22px; }

.fontsize-big .main-content,
.fontsize-big .sidebar,
.fontsize-big .main-navigation { font-size: 28px; }

.sans-serif .main-content,
.sans-serif .sidebar,
.sans-serif .main-navigation,
.sans-serif .site-footer { font-family: Arial, Helvetica, sans-serif !important; }

.serif .main-content,
.serif .sidebar,
.serif .main-navigation,
.serif .site-footer { font-family: Georgia, "Times New Roman", serif !important; }

.spacing-small .main-content,
.spacing-small .sidebar,
.spacing-small .main-navigation { letter-spacing: normal !important; }
.spacing-normal .main-content,
.spacing-normal .sidebar,
.spacing-normal .main-navigation { letter-spacing: 2px !important; }
.spacing-big .main-content,
.spacing-big .sidebar,
.spacing-big .main-navigation { letter-spacing: 4px !important; }

.main-content h1,
.main-content h2,
.main-content h3,
.main-content h4,
.main-content h5,
.main-content h6 {
    color: var(--fg) !important;
    line-height: 1.2;
}

.main-content h1 { font-size: 1.65em; }
.main-content h2 { font-size: 1.38em; }
.main-content h3 { font-size: 1.18em; }

.main-content a {
    color: var(--fg) !important;
    text-decoration: underline;
}

.main-content img,
.main-content video,
.main-content svg,
.main-content canvas {
    height: auto !important;
}

.main-content iframe,
.main-content embed,
.main-content object {
    display: block;
    width: 100% !important;
    border: 2px solid var(--border);
}

.main-content table {
    width: 100% !important;
    max-width: 100%;
    border-collapse: collapse;
}

.main-content th,
.main-content td {
    padding: 9px 11px;
    border: 1px solid var(--border);
    vertical-align: top;
}

.main-content input,
.main-content select,
.main-content textarea,
.main-content button {
    max-width: 100%;
    min-height: 46px;
    border: 2px solid var(--border) !important;
    background: var(--bg) !important;
    color: var(--fg) !important;
    font: inherit;
}

.main-content button,
.main-content input[type="submit"],
.main-content .btn,
.main-content .button {
    padding: 8px 14px;
    border-radius: 7px;
    font-weight: 700;
}

/* Inline-стили материалов из обычной версии не должны ломать контраст. */
body.color2 .main-content *,
body.color3 .main-content *,
body.color4 .main-content *,
body.color5 .main-content * {
    color: var(--fg) !important;
}

body.color2 .main-content div,
body.color2 .main-content section,
body.color2 .main-content article,
body.color2 .main-content p,
body.color2 .main-content td,
body.color2 .main-content th,
body.color3 .main-content div,
body.color3 .main-content section,
body.color3 .main-content article,
body.color3 .main-content p,
body.color3 .main-content td,
body.color3 .main-content th,
body.color4 .main-content div,
body.color4 .main-content section,
body.color4 .main-content article,
body.color4 .main-content p,
body.color4 .main-content td,
body.color4 .main-content th,
body.color5 .main-content div,
body.color5 .main-content section,
body.color5 .main-content article,
body.color5 .main-content p,
body.color5 .main-content td,
body.color5 .main-content th {
    background-color: transparent !important;
}

/* Изображения выключены */
.imagesoff .brand-photo,
.imagesoff .sidebar img,
.imagesoff .main-content img,
.imagesoff .main-content picture,
.imagesoff .main-content svg,
.imagesoff .main-content canvas,
.imagesoff .main-content video {
    display: none !important;
}

.imagesoff .site-header {
    grid-template-columns: minmax(0, 1fr) 220px;
}

.imagesoff .brand-title {
    grid-column: 1;
}

/* Подвал */
.site-footer {
    margin-top: 18px;
    padding: 18px 22px;
    background: var(--panel) !important;
    font-size: 18px;
}

.site-footer p,
.site-footer ul {
    margin-top: 0;
    margin-bottom: 10px;
}

/* Joomla system message */
#system-message-container,
#system-message {
    max-width: 100%;
}

/* =========================================================
   АДАПТИВНОСТЬ
   ========================================================= */

@media (max-width: 1350px) {
    .site-layout.has-left.has-right {
        grid-template-columns: 260px minmax(0, 1fr);
    }

    .site-layout.has-left.has-right #rightcol {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
        gap: 14px;
    }

    .site-layout.has-left.has-right #rightcol .site-search {
        border-right: 2px solid var(--border);
        border-bottom: 0;
    }

    .right-modules {
        min-width: 0;
    }
}

@media (max-width: 1000px) {
    .site-header {
        grid-template-columns: 190px minmax(0, 1fr) 150px;
        gap: 16px;
    }

    .brand-photo img { height: 94px; }
    .brand-org-name { font-size: 25px; }
    .brand-org-type { font-size: 16px; }
    .accessibility-status { font-size: 14px; }

    .site-layout.has-left.has-right,
    .site-layout.has-left:not(.has-right),
    .site-layout.has-right:not(.has-left) {
        grid-template-columns: minmax(0, 1fr);
    }

    #leftcol,
    #rightcol {
        grid-column: 1;
    }

    #centercol { grid-row: 1; }
    #leftcol { grid-row: 2; }
    #rightcol { grid-row: 3; }

    .site-layout.has-left.has-right #rightcol {
        display: block;
    }

    .site-layout.has-left.has-right #rightcol .site-search {
        border-right: 0;
        border-bottom: 2px solid var(--border);
    }

    .sidebar-left ul.menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 14px;
    }
}

@media (max-width: 760px) {
    .access-toolbar,
    .site-frame {
        width: calc(100% - 16px);
    }

    .access-toolbar {
        position: static;
    }

    .access-toolbar-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        font-size: 16px;
    }

    .access-group {
        display: grid;
        grid-template-columns: minmax(118px, 1fr) repeat(3, auto);
        gap: 6px;
    }

    .a-images.access-group {
        grid-template-columns: minmax(118px, 1fr) auto;
    }

    .access-action a {
        width: 100%;
        justify-content: flex-start;
    }

    .popped {
        position: fixed;
        top: 0;
        bottom: 0;
        max-height: none;
        border-radius: 0;
        padding: 16px;
    }

    .choose-colors {
        grid-template-columns: 1fr;
    }

    .site-frame {
        margin-top: 10px;
    }

    .site-header {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 12px;
        min-height: 0;
        padding: 10px;
    }

    .brand-photo { border-radius: 10px; }
    .brand-photo img { height: 72px; }
    .brand-org-type { font-size: 13px; }
    .brand-org-name { font-size: 19px; }

    .accessibility-status {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: flex-start;
        border-top: 2px solid var(--border);
        padding-top: 8px;
        font-size: 14px;
    }

    .accessibility-eye {
        width: 34px;
        height: 24px;
        border-width: 2px;
        font-size: 15px;
    }

    .imagesoff .site-header {
        grid-template-columns: 1fr;
    }

    .imagesoff .accessibility-status {
        grid-column: 1;
    }

    .main-navigation ul.menu,
    .main-navigation > div > ul,
    .main-navigation .nav.menu {
        display: block;
    }

    .main-navigation li {
        width: 100%;
        margin-bottom: 6px;
    }

    .main-navigation li > a,
    .main-navigation li > span.separator {
        width: 100%;
    }

    .main-navigation li ul {
        position: static;
        width: 100%;
        margin-top: 4px !important;
        box-shadow: none;
    }

    .main-content {
        padding: 18px 14px 24px;
    }

    .fontsize-small .main-content,
    .fontsize-small .sidebar,
    .fontsize-small .main-navigation { font-size: 17px; }
    .fontsize-normal .main-content,
    .fontsize-normal .sidebar,
    .fontsize-normal .main-navigation { font-size: 20px; }
    .fontsize-big .main-content,
    .fontsize-big .sidebar,
    .fontsize-big .main-navigation { font-size: 24px; }

    .sidebar-left ul.menu {
        grid-template-columns: 1fr;
    }

    .main-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .site-footer {
        padding: 14px;
    }
}

@media (max-width: 430px) {
    .access-group {
        grid-template-columns: 1fr repeat(3, auto);
    }

    .access-group dt {
        grid-column: 1 / -1;
    }

    .a-images.access-group {
        grid-template-columns: 1fr auto;
    }

    .a-images.access-group dt {
        grid-column: 1 / -1;
    }

    .brand-photo {
        display: none;
    }

    .site-header {
        grid-template-columns: 1fr;
    }

    .brand-title,
    .accessibility-status {
        grid-column: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ============================================================
   P117 v5 — активный раздел основного меню
   Joomla обычно ставит .active/.current самостоятельно. Дополнительный
   класс .p117-active-section выставляется common_access.js по URL и
   страхует старые/нестандартные модули меню.
   ============================================================ */
.main-navigation li > a:hover,
.main-navigation li > a:focus,
.main-navigation li > span.separator:hover,
.main-navigation li > span.separator:focus,
.main-navigation li > span.nav-header:hover,
.main-navigation li > span.nav-header:focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 32%, transparent);
}

.main-navigation li.p117-active-section > a,
.main-navigation li.p117-active-section > span.separator,
.main-navigation li.p117-active-section > span.nav-header,
.main-navigation a.p117-active-link {
    background: var(--accent) !important;
    color: var(--accent-contrast) !important;
    border-color: var(--accent) !important;
    text-decoration: none !important;
}

.main-navigation li.p117-active-section > a::after,
.main-navigation li.p117-active-section > span.separator::after,
.main-navigation li.p117-active-section > span.nav-header::after {
    color: var(--accent-contrast) !important;
}

/* Не даём вложенному пункту активного раздела перекрашивать весь список. */
.main-navigation li.p117-active-section ul a,
.main-navigation li.p117-active-section ul span.separator,
.main-navigation li.p117-active-section ul span.nav-header {
    background: var(--bg) !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}

.main-navigation li.p117-active-section ul li.current > a,
.main-navigation li.p117-active-section ul li.active > a,
.main-navigation li.p117-active-section ul li.p117-active-section > a,
.main-navigation li.p117-active-section ul a.p117-active-link {
    background: var(--accent) !important;
    color: var(--accent-contrast) !important;
    border-color: var(--accent) !important;
}

/* ============================================================
   P117 v5 — график работы в специальных цветовых схемах

   gp117-schedule.css загружается отдельно и содержит белые карточки.
   В чёрной/синей/других схемах это давало белый текст на белом фоне.
   Здесь фон и текст графика привязываются к переменным текущей схемы.
   ============================================================ */
body.color2 .main-content .gp117-schedule-shell,
body.color3 .main-content .gp117-schedule-shell,
body.color4 .main-content .gp117-schedule-shell,
body.color5 .main-content .gp117-schedule-shell {
    color: var(--fg) !important;
}

body.color2 .main-content .gp117-schedule-hero,
body.color2 .main-content .gp117-schedule-card,
body.color2 .main-content .gp117-schedule-person,
body.color2 .main-content .gp117-schedule-data-wrap,
body.color2 .main-content .gp117-table-scroll,
body.color2 .main-content .gp117-schedule-tabs-wrap,
body.color3 .main-content .gp117-schedule-hero,
body.color3 .main-content .gp117-schedule-card,
body.color3 .main-content .gp117-schedule-person,
body.color3 .main-content .gp117-schedule-data-wrap,
body.color3 .main-content .gp117-table-scroll,
body.color3 .main-content .gp117-schedule-tabs-wrap,
body.color4 .main-content .gp117-schedule-hero,
body.color4 .main-content .gp117-schedule-card,
body.color4 .main-content .gp117-schedule-person,
body.color4 .main-content .gp117-schedule-data-wrap,
body.color4 .main-content .gp117-table-scroll,
body.color4 .main-content .gp117-schedule-tabs-wrap,
body.color5 .main-content .gp117-schedule-hero,
body.color5 .main-content .gp117-schedule-card,
body.color5 .main-content .gp117-schedule-person,
body.color5 .main-content .gp117-schedule-data-wrap,
body.color5 .main-content .gp117-table-scroll,
body.color5 .main-content .gp117-schedule-tabs-wrap {
    background: var(--panel) !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
    box-shadow: none !important;
}

body.color2 .main-content .gp117-schedule-card:hover,
body.color3 .main-content .gp117-schedule-card:hover,
body.color4 .main-content .gp117-schedule-card:hover,
body.color5 .main-content .gp117-schedule-card:hover {
    background: var(--bg) !important;
    border-color: var(--accent) !important;
}

body.color2 .main-content .gp117-schedule-chip,
body.color2 .main-content .gp117-schedule-holiday,
body.color2 .main-content .gp117-schedule-tab,
body.color2 .main-content .gp117-schedule-back,
body.color2 .main-content .gp117-schedule-toolbar-link,
body.color2 .main-content .gp117-schedule-bottom-back,
body.color3 .main-content .gp117-schedule-chip,
body.color3 .main-content .gp117-schedule-holiday,
body.color3 .main-content .gp117-schedule-tab,
body.color3 .main-content .gp117-schedule-back,
body.color3 .main-content .gp117-schedule-toolbar-link,
body.color3 .main-content .gp117-schedule-bottom-back,
body.color4 .main-content .gp117-schedule-chip,
body.color4 .main-content .gp117-schedule-holiday,
body.color4 .main-content .gp117-schedule-tab,
body.color4 .main-content .gp117-schedule-back,
body.color4 .main-content .gp117-schedule-toolbar-link,
body.color4 .main-content .gp117-schedule-bottom-back,
body.color5 .main-content .gp117-schedule-chip,
body.color5 .main-content .gp117-schedule-holiday,
body.color5 .main-content .gp117-schedule-tab,
body.color5 .main-content .gp117-schedule-back,
body.color5 .main-content .gp117-schedule-toolbar-link,
body.color5 .main-content .gp117-schedule-bottom-back {
    background: var(--bg) !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}

body.color2 .main-content .gp117-schedule-tab.is-active,
body.color3 .main-content .gp117-schedule-tab.is-active,
body.color4 .main-content .gp117-schedule-tab.is-active,
body.color5 .main-content .gp117-schedule-tab.is-active {
    background: var(--accent) !important;
    color: var(--accent-contrast) !important;
    border-color: var(--accent) !important;
}

body.color2 .main-content .gp117-schedule-card-arrow,
body.color2 .main-content .gp117-schedule-eyebrow,
body.color3 .main-content .gp117-schedule-card-arrow,
body.color3 .main-content .gp117-schedule-eyebrow,
body.color4 .main-content .gp117-schedule-card-arrow,
body.color4 .main-content .gp117-schedule-eyebrow,
body.color5 .main-content .gp117-schedule-card-arrow,
body.color5 .main-content .gp117-schedule-eyebrow {
    color: var(--accent) !important;
}

body.color2 .main-content .gp117-schedule-hero::before,
body.color2 .main-content .gp117-schedule-section-title::after,
body.color3 .main-content .gp117-schedule-hero::before,
body.color3 .main-content .gp117-schedule-section-title::after,
body.color4 .main-content .gp117-schedule-hero::before,
body.color4 .main-content .gp117-schedule-section-title::after,
body.color5 .main-content .gp117-schedule-hero::before,
body.color5 .main-content .gp117-schedule-section-title::after {
    background: var(--accent) !important;
}

body.color2 .main-content .gp117-schedule-card,
body.color2 .main-content .gp117-schedule-person,
body.color3 .main-content .gp117-schedule-card,
body.color3 .main-content .gp117-schedule-person,
body.color4 .main-content .gp117-schedule-card,
body.color4 .main-content .gp117-schedule-person,
body.color5 .main-content .gp117-schedule-card,
body.color5 .main-content .gp117-schedule-person {
    border-left-color: var(--accent) !important;
}

body.color2 .main-content .gp117-schedule-filter,
body.color3 .main-content .gp117-schedule-filter,
body.color4 .main-content .gp117-schedule-filter,
body.color5 .main-content .gp117-schedule-filter,
body.color2 .main-content .gp117-schedule-filter-input,
body.color3 .main-content .gp117-schedule-filter-input,
body.color4 .main-content .gp117-schedule-filter-input,
body.color5 .main-content .gp117-schedule-filter-input {
    background: var(--bg) !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}

body.color2 .main-content .gp117-schedule-data-table,
body.color3 .main-content .gp117-schedule-data-table,
body.color4 .main-content .gp117-schedule-data-table,
body.color5 .main-content .gp117-schedule-data-table,
body.color2 .main-content .gp117-schedule-data-table th,
body.color3 .main-content .gp117-schedule-data-table th,
body.color4 .main-content .gp117-schedule-data-table th,
body.color5 .main-content .gp117-schedule-data-table th,
body.color2 .main-content .gp117-schedule-data-table td,
body.color3 .main-content .gp117-schedule-data-table td,
body.color4 .main-content .gp117-schedule-data-table td,
body.color5 .main-content .gp117-schedule-data-table td {
    background: var(--bg) !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}


/* ============================================================
   P117 v6 — жёсткая страховка для gp117-schedule.css.
   gp117-schedule.css подключается динамически и содержит
   белые фоны. Эти селекторы намеренно имеют высокий приоритет.
   ============================================================ */
html body.color2 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-person,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-hero,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-article,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-tabs-wrap,
html body.color2 #accessibility-shell #maincontent .gp117-table-scroll,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-person,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-hero,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-article,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-tabs-wrap,
html body.color3 #accessibility-shell #maincontent .gp117-table-scroll,
html body.color4 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color4 #accessibility-shell #maincontent .gp117-schedule-person,
html body.color4 #accessibility-shell #maincontent .gp117-schedule-hero,
html body.color4 #accessibility-shell #maincontent .gp117-schedule-article,
html body.color4 #accessibility-shell #maincontent .gp117-schedule-tabs-wrap,
html body.color4 #accessibility-shell #maincontent .gp117-table-scroll,
html body.color5 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color5 #accessibility-shell #maincontent .gp117-schedule-person,
html body.color5 #accessibility-shell #maincontent .gp117-schedule-hero,
html body.color5 #accessibility-shell #maincontent .gp117-schedule-article,
html body.color5 #accessibility-shell #maincontent .gp117-schedule-tabs-wrap,
html body.color5 #accessibility-shell #maincontent .gp117-table-scroll {
    background: var(--bg) !important;
    background-image: none !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
    box-shadow: none !important;
}

html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-card-title,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-card-text,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-title,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-subtitle,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-section-title,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-section-intro,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-person-name,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-person-role,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-person-info,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-person-info strong {
    color: var(--fg) !important;
}

html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-article table,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-article tbody,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-article tr,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-article td {
    background: var(--bg) !important;
    background-image: none !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}

html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-article th {
    background: var(--panel-strong) !important;
    background-image: none !important;
    color: var(--fg) !important;
    border-color: var(--border) !important;
}

html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-card,
html body:not(.color1) #accessibility-shell #maincontent .gp117-schedule-person {
    border-left-color: var(--accent) !important;
}


/* ============================================================
   P117 v8 — ФИНАЛЬНАЯ жёсткая цветовая схема расписания.
   Причина: карточки расписания — это <a>, а сторонний CSS
   продолжал возвращать им белый фон. Здесь используются
   ЛИТЕРАЛЬНЫЕ цвета + высокая специфичность + !important.
   ============================================================ */

/* --- ЧЁРНАЯ СХЕМА: белым по чёрному --- */
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-person,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-hero,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-tabs-wrap,
html body.color2 #accessibility-shell main#maincontent .gp117-table-scroll {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
    box-shadow: none !important;
}

html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card:hover,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card:focus,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday:hover,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday:focus {
    background: #111111 !important;
    background-color: #111111 !important;
    border-color: #c5df40 !important;
}

html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card *,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday *,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-person *,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-hero *,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article * {
    color: #ffffff !important;
}

html body.color2 #accessibility-shell main#maincontent .gp117-schedule-card-arrow,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-eyebrow {
    color: #c5df40 !important;
}

html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-person,
html body.color2 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday {
    border-left-color: #c5df40 !important;
}

/* --- СИНЯЯ СХЕМА: тёмно-синим по голубому --- */
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-person,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-hero,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-tabs-wrap,
html body.color3 #accessibility-shell main#maincontent .gp117-table-scroll {
    background: #b8ddff !important;
    background-color: #b8ddff !important;
    background-image: none !important;
    color: #063462 !important;
    border-color: #063462 !important;
    box-shadow: none !important;
}

html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card:hover,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card:focus,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday:hover,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday:focus {
    background: #cbe7ff !important;
    background-color: #cbe7ff !important;
}

html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card *,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday *,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-person *,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-hero *,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article * {
    color: #063462 !important;
}

html body.color3 #accessibility-shell main#maincontent .gp117-schedule-card-arrow,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-eyebrow {
    color: #063462 !important;
}

html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-person,
html body.color3 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday {
    border-left-color: #063462 !important;
}

/* --- БЕЖЕВАЯ / КОРИЧНЕВАЯ схемы также без белых карточек --- */
html body.color4 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color4 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday,
html body.color4 #accessibility-shell main#maincontent .gp117-schedule-person {
    background: #eee8bf !important;
    background-color: #eee8bf !important;
    color: #59422e !important;
    border-color: #59422e !important;
}
html body.color4 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card *,
html body.color4 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday *,
html body.color4 #accessibility-shell main#maincontent .gp117-schedule-person * {
    color: #59422e !important;
}

html body.color5 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card,
html body.color5 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday,
html body.color5 #accessibility-shell main#maincontent .gp117-schedule-person {
    background: #342114 !important;
    background-color: #342114 !important;
    color: #a9dd38 !important;
    border-color: #a9dd38 !important;
}
html body.color5 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card *,
html body.color5 #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday *,
html body.color5 #accessibility-shell main#maincontent .gp117-schedule-person * {
    color: #a9dd38 !important;
}

/* Таблицы и поля в чёрной теме */
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article table,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article tbody,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article tr,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article td,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-data-table,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-data-table td,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-filter,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-filter-input {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-article th,
html body.color2 #accessibility-shell main#maincontent .gp117-schedule-data-table th {
    background: #111111 !important;
    background-color: #111111 !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}

/* Таблицы и поля в синей теме */
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article table,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article tbody,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article tr,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article td,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-data-table,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-data-table td,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-filter,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-filter-input {
    background: #b8ddff !important;
    background-color: #b8ddff !important;
    color: #063462 !important;
    border-color: #063462 !important;
}
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-article th,
html body.color3 #accessibility-shell main#maincontent .gp117-schedule-data-table th {
    background: #cbe7ff !important;
    background-color: #cbe7ff !important;
    color: #063462 !important;
    border-color: #063462 !important;
}

/* Все элементы внутри карточки прозрачны, чтобы дочерний фон не перекрывал карточку */
html body:not(.color1) #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-card span,
html body:not(.color1) #accessibility-shell main#maincontent a.gp117-schedule-link.gp117-schedule-holiday span {
    background: transparent !important;
    background-color: transparent !important;
}


/* ============================================================
   P117 v9 — расписание: универсальное перекрашивание карточек.
   Не зависит от типа HTML-элемента карточки (<a>, <div>, button).
   ============================================================ */

#accessibility-shell #maincontent .gp117-schedule-grid > *,
#accessibility-shell #maincontent .gp117-schedule-card,
#accessibility-shell #maincontent .gp117-schedule-holiday {
    height: auto !important;
    min-height: 108px !important;
    overflow: visible !important;
    white-space: normal !important;
}

#accessibility-shell #maincontent .gp117-schedule-card-main {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

#accessibility-shell #maincontent .gp117-schedule-card-title,
#accessibility-shell #maincontent .gp117-schedule-card-subtitle,
#accessibility-shell #maincontent .gp117-schedule-card-address,
#accessibility-shell #maincontent .gp117-schedule-card-text {
    display: block !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
}

#accessibility-shell #maincontent .gp117-schedule-card-subtitle {
    margin-top: 5px !important;
    font-size: .92em !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

#accessibility-shell #maincontent .gp117-schedule-card-address {
    margin-top: 5px !important;
    font-size: .88em !important;
    font-weight: 400 !important;
    line-height: 1.42 !important;
}

/* Чёрная схема — прямые дети сетки тоже перекрашиваются. */
html body.color2 #accessibility-shell #maincontent .gp117-schedule-grid > *,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-holiday {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
    border-left-color: #c5df40 !important;
    box-shadow: none !important;
}

html body.color2 #accessibility-shell #maincontent .gp117-schedule-grid > * *,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-card *,
html body.color2 #accessibility-shell #maincontent .gp117-schedule-holiday * {
    color: #ffffff !important;
    background-color: transparent !important;
    background-image: none !important;
}

html body.color2 #accessibility-shell #maincontent .gp117-schedule-card-arrow {
    color: #c5df40 !important;
}

/* Синяя схема — без белых карточек. */
html body.color3 #accessibility-shell #maincontent .gp117-schedule-grid > *,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-card,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-holiday {
    background: #b8ddff !important;
    background-color: #b8ddff !important;
    background-image: none !important;
    color: #063462 !important;
    border-color: #063462 !important;
    border-left-color: #063462 !important;
    box-shadow: none !important;
}

html body.color3 #accessibility-shell #maincontent .gp117-schedule-grid > * *,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-card *,
html body.color3 #accessibility-shell #maincontent .gp117-schedule-holiday * {
    color: #063462 !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Большой шрифт: одна карточка в строку — текст не сжимается. */
body.fontsize-big #accessibility-shell #maincontent .gp117-schedule-grid {
    grid-template-columns: 1fr !important;
}

body.fontsize-big #accessibility-shell #maincontent .gp117-schedule-grid > *,
body.fontsize-big #accessibility-shell #maincontent .gp117-schedule-card {
    min-height: 132px !important;
}

/* На небольших экранах также одна колонка. */
@media (max-width: 900px) {
    #accessibility-shell #maincontent .gp117-schedule-grid {
        grid-template-columns: 1fr !important;
    }
}
