/* dgbksl brand palette (approx of old dgbksl_new) */
:root{
  --cassiopeia-color-primary:#044f4b;
  --cassiopeia-color-link:#044f4b;
  --cassiopeia-color-hover:#0099ff;
}
body.site{ background-color:#ffffff; }
.container-header{ background:#044f4b; }
.container-header .logo img{ max-height:none; }
.container-nav, nav.navbar{ background:#044f4b; }
.mod-menu .nav-item>a, nav.navbar a, .container-nav a{ color:#fff !important; }
.mod-menu .nav-item>a:hover, .mod-menu .nav-item>a:focus{ background:#0099ff; color:#fff !important; }
.mod-menu .active>a{ background:#0099ff; }
.container-main{ background:#fff; padding-top:1rem; padding-bottom:1rem; border-radius:4px; }
a{ color:#044f4b; }
a:hover{ color:#0099ff; }
h1,h2,h3{ color:#044f4b; }
.container-footer{ background:#2c2c36; color:#e7e5e5; }
.container-footer a{ color:#e7efee; }

/* sidebar vertical menus */
.container-sidebar-left ul.mod-menu, .container-sidebar-right ul.mod-menu{ list-style:none; padding-left:0; margin:0; }
.container-sidebar-left ul.mod-menu li{ border-bottom:1px solid #e5e5e5; }
.container-sidebar-left ul.mod-menu a{ display:block; padding:.45rem .6rem; color:#044f4b !important; text-decoration:none; }
.container-sidebar-left ul.mod-menu a:hover{ background:#e7efee; }
.container-sidebar-left ul.mod-menu .active>a{ font-weight:700; border-left:3px solid #044f4b; }
.container-sidebar-left ul.mod-menu ul{ list-style:none; padding-left:.8rem; }
.moduletable, .card{ margin-bottom:1rem; }
.moduletable > h3, .card-header{ background:#044f4b; color:#fff; padding:.5rem .7rem; margin:0 0 .5rem; font-size:1.05rem; border-radius:3px; }

/* --- match old dgbksl look: nav + headings --- */
.container-nav ul.mod-menu{ display:flex; flex-wrap:wrap; justify-content:center; margin:0; }
.container-nav ul.mod-menu > li > a{ text-transform:uppercase; font-weight:600; padding:.55rem 1rem; color:#fff !important; border-left:1px solid rgba(255,255,255,.25); }
.container-nav ul.mod-menu > li:last-child > a{ border-right:1px solid rgba(255,255,255,.25); }
.container-nav ul.mod-menu > li > a:hover, .container-nav ul.mod-menu > li > a:focus{ background:#0099ff; color:#fff !important; }
.container-sidebar-left ul.mod-menu > li > a{ text-transform:uppercase; font-size:.88rem; }
.moduletable > h3, .card-header, .moduletable-title, .page-header h1{ text-transform:uppercase; }

/* top bar (accessibility + search) teal like old header strip */
.container-topbar{ background:#044f4b; padding:.35rem .6rem; }
.container-topbar, .container-topbar a, .container-topbar label{ color:#fff; }
.container-topbar .mod-search__searchword{ min-width:180px; }

/* topbar as one row: title left, search+accessibility right */
.container-topbar{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; background:#044f4b; padding:.4rem 1rem; }
.container-topbar > *{ margin:0 !important; }
.container-topbar .site-title{ color:#fff; line-height:1.15; font-size:1rem; flex:1 1 auto; }
.container-topbar .site-title b{ font-size:1.2rem; }
.container-topbar .mod-search__searchword{ min-width:160px; }

/* header banner image below menu */
.container-banner{ padding:0; }
.container-banner p{ margin:0; }
.container-banner img{ display:block; width:100%; height:auto; }
/* nav bar directly under topbar */
.container-header{ padding:0; }

/* === full-width content, fixed sidebars === */
body.site .container, body.site .container-fluid, body.site main{ max-width:none !important; width:100% !important; }
@media (min-width:992px){
  .site-grid{ display:flex !important; flex-wrap:wrap; align-items:flex-start; gap:1rem; width:100% !important; }
  .site-grid > .container-banner{ flex:0 0 100% !important; order:0; }
  .site-grid > .container-sidebar-left{ flex:0 0 260px !important; order:1; }
  .site-grid > .container-component{ flex:1 1 0 !important; min-width:0 !important; order:2; }
  .site-grid > .container-sidebar-right{ flex:0 0 300px !important; order:3; }
  .site-grid > .container-bottom-a{ flex:0 0 100% !important; order:4; }
}

/* center the ZOZH/takzdorovo banner cards block */
.container-component .mod-banners.bannergroup{ display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:1rem; }
.container-component .mod-banners.bannergroup .banneritem{ margin:0; }

/* bottom-a logo banners: blend with page bg (no white cards) */
.container-bottom-a .card, .container-bottom-a .moduletable, .container-bottom-a .mod-custom, .container-bottom-a .banneritem{
  background:transparent !important; border:none !important; box-shadow:none !important;
}
/* footer copyright aligned left */
.container-footer{ text-align:left !important; }
.container-footer .copyright{ text-align:left !important; padding-left:1rem; }

/* footer copyright to the left (override flex centering) */
.container-footer{ justify-content:flex-start !important; text-align:left !important; }
.container-footer .grid-child, .container-footer .mod-custom, .container-footer .copyright{ text-align:left !important; margin-left:0 !important; width:100%; }

/* ===== polish pass ===== */
/* topbar title bigger + vertically centered */
.container-topbar{ align-items:center !important; }
.container-topbar .site-title{ font-size:1.05rem; line-height:1.2; }
.container-topbar .site-title b{ font-size:1.4rem; }
/* menu edge separators (leading + trailing pipes) */
.container-nav ul.mod-menu > li > a{ border-left:1px solid rgba(255,255,255,.45) !important; }
.container-nav ul.mod-menu > li:last-child > a{ border-right:1px solid rgba(255,255,255,.45) !important; }
/* content typography */
.container-component{ padding:1rem 1.25rem; }
.container-component .card-header{ background:transparent !important; color:#044f4b !important; padding:0 0 .3rem !important; font-size:1.3rem; }
.container-component h1,.container-component h2,.container-component h3,.item-page h1,.page-header h1{ color:#044f4b; }
.container-component h2{ font-size:1.35rem; } .container-component h1{ font-size:1.6rem; }
.container-component a{ color:#044f4b; text-decoration:none; }
.container-component a:hover{ color:#0099ff; text-decoration:underline; }
.container-component p{ line-height:1.55; }
.container-component table{ border-collapse:collapse; max-width:100%; margin:0 0 1rem; }
.container-component table td,.container-component table th{ border:1px solid #cdd6d4; padding:.4rem .6rem; vertical-align:top; }
.container-component table th{ background:#e7efee; }
.container-component table tr:nth-child(even) td{ background:#f6f8f8; }
/* separator line between news items */
.com-content-category-blog__item.blog-item{ border-bottom:2px solid #d9e2e0; padding-bottom:1.2rem; margin-bottom:1.4rem; }

/* news separator in brand teal */
.com-content-category-blog__item.blog-item{ border-bottom:2px solid #044f4b !important; padding-bottom:1.3rem !important; margin-bottom:1.5rem !important; }
.com-content-category-blog__item.blog-item:last-child{ border-bottom:none !important; }

/* topbar: push accessibility + search to the right edge */
.container-topbar .site-title{ flex:1 1 auto !important; margin-right:auto !important; }
.container-topbar{ padding-right:1rem !important; }

/* topbar: title wrapper grows -> accessibility+search pushed to right edge */
.container-topbar{ width:100% !important; max-width:none !important; }
.container-topbar > div:first-child{ flex:1 1 auto !important; margin-right:auto !important; }

/* center content tables + light-teal cell bg so cells don't blend with page */
.container-component table{ margin-left:auto !important; margin-right:auto !important; }
.container-component table td{ background:#eef4f3 !important; }
.container-component table th{ background:#dcece9 !important; }
.container-component table tr:nth-child(even) td{ background:#e5efed !important; }

/* bottom banner logos: blend white-bg PNGs (e.g. AlfaStrah) with page bg */
.container-bottom-a img{ mix-blend-mode:multiply; }

/* side breathing room so content isn't glued to browser edges */
@media (min-width:992px){
  .site-grid{ padding-left:2rem !important; padding-right:2rem !important; }
  .container-topbar{ padding-left:2rem !important; padding-right:2rem !important; }
  .container-nav{ padding-left:2rem !important; padding-right:2rem !important; }
  .container-footer{ padding-left:2rem !important; padding-right:2rem !important; }
}

/* inset the teal header/nav and footer too (same side gap as content) */
@media (min-width:992px){
  .container-topbar, .container-nav, .container-footer{
    margin-left:2rem !important; margin-right:2rem !important;
    width:auto !important; max-width:none !important; left:auto !important;
  }
}

/* === uniform side gutter for the WHOLE site (header+content+footer) === */
@media (min-width:992px){
  .container-topbar, .container-nav, .container-footer, .site-grid{ margin-left:0 !important; margin-right:0 !important; }
  body.site .full-width{ margin-left:0 !important; margin-right:0 !important; width:auto !important; left:auto !important; max-width:none !important; }
  body.site{ padding-left:2rem !important; padding-right:2rem !important; box-sizing:border-box !important; }
  .site-grid{ padding-left:0 !important; padding-right:0 !important; }
  .container-topbar, .container-nav, .container-footer{ padding-left:.9rem !important; padding-right:.9rem !important; }
}

/* force footer to same inset as header */
@media (min-width:992px){
  footer.container-footer, .container-footer.full-width, body.site footer{
    margin-left:0 !important; margin-right:0 !important; width:auto !important;
    max-width:none !important; left:auto !important; right:auto !important; position:static !important;
  }
}

@media (min-width:992px){
  footer.container-footer{ margin-inline:0 !important; inset-inline:auto !important; width:auto !important; }
}

/* footer: reliable gutter via bg-colored side borders */
@media (min-width:992px){
  footer.container-footer{ box-sizing:border-box !important; border-left:2rem solid #ffffff !important; border-right:2rem solid #ffffff !important; }
}

/* === tidy right sidebar: uniform cards === */
.container-sidebar-right .card, .container-sidebar-right .moduletable{
  background:#fff !important;
  border:1px solid #dfe6e4 !important;
  border-radius:8px !important;
  box-shadow:0 1px 3px rgba(4,79,75,.07) !important;
  margin:0 0 16px 0 !important;
  padding:14px !important;
  overflow:hidden;
}
.container-sidebar-right .card-body, .container-sidebar-right .moduletable-content{ padding:0 !important; }
.container-sidebar-right .card *, .container-sidebar-right .moduletable{ text-align:center; }
.container-sidebar-right img{ max-width:100% !important; height:auto !important; display:inline-block !important; margin:0 auto !important; }
.container-sidebar-right .card-header, .container-sidebar-right h3{ text-align:center; }

/* === right sidebar: each banner (module OR banner-group item) = uniform card === */
.container-sidebar-right .card,
.container-sidebar-right .banneritem{
  background:#fff !important; border:1px solid #dfe6e4 !important; border-radius:8px !important;
  box-shadow:0 1px 3px rgba(4,79,75,.07) !important; padding:14px !important;
  margin:0 0 16px 0 !important; text-align:center !important; overflow:hidden;
}
/* strip the outer card of the banner GROUP so its items become the cards */
.container-sidebar-right .card:has(.mod-banners){
  background:transparent !important; border:none !important; box-shadow:none !important;
  padding:0 !important; margin:0 !important;
}
.container-sidebar-right .mod-banners.bannergroup{ display:block !important; }
.container-sidebar-right img{ max-width:100% !important; height:auto !important; display:inline-block !important; margin:0 auto !important; }

/* === left sidebar: same tidy cards as right === */
.container-sidebar-left .card{
  background:#fff !important; border:1px solid #dfe6e4 !important; border-radius:8px !important;
  box-shadow:0 1px 3px rgba(4,79,75,.07) !important; margin:0 0 16px 0 !important; overflow:hidden;
}
.container-sidebar-left .card-body{ padding:14px !important; }
.container-sidebar-left .mod-custom{ text-align:center; }
.container-sidebar-left .mod-custom img{ display:block !important; max-width:100% !important; height:auto !important; margin:0 auto !important; }

/* ===== Версия для слабовидящих (BVI) ===== */
.bvi-panel{ display:none; position:fixed; top:0; left:0; right:0; z-index:100000; flex-wrap:wrap; gap:8px 18px; align-items:center; padding:8px 16px; background:#0b3d3a !important; color:#fff !important; font-size:16px; box-shadow:0 2px 8px rgba(0,0,0,.35); }
html.bvi body{ padding-top:64px !important; }
.bvi-panel b{ margin-right:6px; font-weight:600; color:#fff !important; }
.bvi-panel .bvi-b{ min-width:36px; padding:5px 11px; margin:0 2px; border:2px solid #fff; background:#fff; color:#111; cursor:pointer; border-radius:5px; line-height:1; }
.bvi-panel .bvi-b.bvi-active{ outline:3px solid #ffd400; outline-offset:1px; }
.bvi-panel .bvi-sw-bw{ background:#fff; color:#000; } .bvi-panel .bvi-sw-wb{ background:#000; color:#fff; } .bvi-panel .bvi-sw-bg{ background:#9dd1ff; color:#00234f; }
.bvi-panel .bvi-off{ margin-left:auto; padding:6px 16px; background:#ffd400; color:#111; border:none; border-radius:5px; cursor:pointer; font-weight:700; }
/* font sizes (content + sidebars + nav) */
html.bvi-fs-2 .container-component, html.bvi-fs-2 .container-component p, html.bvi-fs-2 .container-component li, html.bvi-fs-2 .container-component td, html.bvi-fs-2 .container-component a, html.bvi-fs-2 .container-component span, html.bvi-fs-2 .container-sidebar-left a, html.bvi-fs-2 .container-sidebar-right, html.bvi-fs-2 .container-nav a{ font-size:19px !important; line-height:1.6 !important; }
html.bvi-fs-3 .container-component, html.bvi-fs-3 .container-component p, html.bvi-fs-3 .container-component li, html.bvi-fs-3 .container-component td, html.bvi-fs-3 .container-component a, html.bvi-fs-3 .container-component span, html.bvi-fs-3 .container-sidebar-left a, html.bvi-fs-3 .container-sidebar-right, html.bvi-fs-3 .container-nav a{ font-size:25px !important; line-height:1.7 !important; }
/* schemes */
html.bvi.bvi-bw body, html.bvi.bvi-bw body *{ background-color:#fff !important; color:#000 !important; border-color:#000 !important; box-shadow:none !important; text-shadow:none !important; }
html.bvi.bvi-bw body a, html.bvi.bvi-bw body a *{ color:#00109e !important; text-decoration:underline !important; }
html.bvi.bvi-wb body, html.bvi.bvi-wb body *{ background-color:#000 !important; color:#fff !important; border-color:#fff !important; box-shadow:none !important; text-shadow:none !important; }
html.bvi.bvi-wb body a, html.bvi.bvi-wb body a *{ color:#ffff00 !important; text-decoration:underline !important; }
html.bvi.bvi-bg body, html.bvi.bvi-bg body *{ background-color:#9dd1ff !important; color:#00234f !important; border-color:#00234f !important; box-shadow:none !important; }
html.bvi.bvi-bg body a, html.bvi.bvi-bg body a *{ color:#0033aa !important; text-decoration:underline !important; }
html.bvi-noimg body img{ display:none !important; }

/* sitemap page */
.sitemap-page ul.sitemap-top{ list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:8px 22px; margin:0 0 1rem; }
.sitemap-page ul.sitemap-top > li > a{ font-weight:600; }
.sitemap-main ul{ list-style:none; padding-left:1.1rem; }
.sitemap-main > ul{ padding-left:0; }
.sitemap-main li{ margin:.25rem 0; padding-left:1rem; position:relative; }
.sitemap-main li:before{ content:"▸"; color:#044f4b; position:absolute; left:0; }
.sitemap-main a{ color:#044f4b; }

/* running line (бегущая строка) under banner */
.dgb-ticker{ background:#044f4b; color:#fff; overflow:hidden; white-space:nowrap; padding:7px 0; }
.dgb-ticker__track{ display:inline-block; white-space:nowrap; animation:dgb-ticker 28s linear infinite; }
.dgb-ticker__item{ padding:0 45px; font-size:1.05rem; font-weight:600; }
@keyframes dgb-ticker{ from{ transform:translateX(100%);} to{ transform:translateX(-100%);} }
.dgb-ticker:hover .dgb-ticker__track{ animation-play-state:paused; }
@media (prefers-reduced-motion: reduce){ .dgb-ticker__track{ animation:none; padding-left:0; } .dgb-ticker{ text-align:center; } }
/* ПОС widget card: let it size naturally */
.container-sidebar-right .card #js-show-iframe-wrapper{ margin:0 auto; }

/* cap banner image height so it isnt huge on full-width */
.container-banner img{ max-height:340px !important; width:auto !important; max-width:100% !important; display:block; margin:0 auto; }

/* banner: centered, sensible size; prevent marquee horizontal overflow */
.container-banner{ text-align:center !important; }
.container-banner p, .container-banner .mod-custom{ margin:0 !important; }
.container-banner img{ width:auto !important; height:auto !important; max-width:100% !important; max-height:340px !important; display:inline-block !important; }
body.site{ overflow-x:hidden; }

/* top-a as full-width row (for the running line) */
@media (min-width:992px){ .site-grid > .container-top-a{ flex:0 0 100% !important; order:1; padding:0 !important; } }
.container-top-a{ margin:0 !important; }
/* banner (single module) centered, capped */
.container-banner{ text-align:center !important; }
.container-banner .mod-custom, .container-banner p{ margin:0 !important; text-align:center !important; }
.container-banner img{ display:inline-block !important; width:auto !important; height:auto !important; max-width:100% !important; max-height:360px !important; }

/* banner: fill full row width (revert narrow native-size cap) */
.container-banner{ text-align:center !important; }
.container-banner img{ width:100% !important; height:auto !important; max-width:100% !important; max-height:none !important; display:block !important; margin:0 auto !important; }
