:root {
    --color-link: #005e8a;
    --color-link-hover: #004a6d;
    --color-text-soft: #4a4f45;
    --color-text-on-dark: #f5f7f2;
    --color-focus: #0a84c1;
    --footer-top-bg: #fbfdff;
    --footer-bottom-bg: #f2f7fc;
    --footer-heading: #0d3f5b;
    --footer-text: #33576d;
    --footer-link: #0f5f8d;
    --footer-link-hover: #0b4d72;
    --footer-divider: #c6dbea;
    --nav-bg: #ffffff;
    --nav-bg-sticky: #ffffff;
    --nav-link: #0d3f5b;
    --nav-link-hover: #0b4d72;
}

nav.main_menu > ul > li > a,
header.sticky nav.main_menu > ul > li > a,
nav.mobile_menu ul li a,
nav.mobile_menu ul li h3,
a,
p a {
    color: var(--color-link);
}

nav.main_menu > ul > li:hover > a,
header.sticky nav.main_menu > ul > li:hover > a,
nav.main_menu ul li.active a,
nav.mobile_menu ul li a:hover,
nav.mobile_menu ul li.active > a,
nav.mobile_menu ul li.current-menu-item > a,
a:hover,
p a:hover {
    color: var(--color-link-hover) !important;
}

.footer_top,
.footer_top p,
.footer_top span,
.footer_top li,
.footer_top .textwidget,
.footer_top a:not(.qbutton),
.footer_bottom,
.footer_bottom span,
.footer_bottom p,
.footer_bottom a,
.footer_bottom ul li a,
#lang_sel_footer a {
    color: var(--footer-text) !important;
}

.footer_top_holder {
    background-color: var(--footer-top-bg) !important;
    background-image: none !important;
}

.footer_top a:not(.qbutton):hover,
.footer_bottom a:hover,
.footer_bottom p a:hover,
.footer_bottom ul li a:hover,
#lang_sel_footer a:hover {
    color: var(--footer-link-hover) !important;
}

.footer_bottom_holder,
#lang_sel_footer {
    background-color: var(--footer-bottom-bg) !important;
    background-image: none !important;
}

.footer_top .column_inner > div h2,
.footer_top .column_inner > div h3,
.footer_top .column_inner > div h4,
.footer_top .column_inner > div h5,
.footer_top .column_inner > div h6 {
    color: var(--footer-heading) !important;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-bottom: 14px;
}

.footer_top,
.footer_top p,
.footer_top span,
.footer_top li,
.footer_top .textwidget,
.footer_bottom,
.footer_bottom span,
.footer_bottom p,
.footer_bottom li {
    color: var(--footer-text) !important;
}

.footer_top a:not(.qbutton),
.footer_bottom a,
.footer_bottom p a,
.footer_bottom ul li a,
#lang_sel_footer a {
    color: var(--footer-link) !important;
    text-decoration: underline;
    text-underline-offset: 0.16em;
    text-decoration-color: rgba(166, 216, 245, 0.45);
}

.footer_top_holder .footer_top,
.footer_bottom {
    border-top: 1px solid var(--footer-divider);
}

.footer_top {
    padding-top: 28px;
    padding-bottom: 18px;
}

.footer_top ul li,
.footer_top .widget_recent_entries ul li,
.footer_top ul.menu li {
    margin-bottom: 8px;
}

.footer_bottom {
    padding-top: 10px;
    padding-bottom: 10px;
}

.footer_bottom,
.footer_bottom span,
.footer_bottom p,
.footer_bottom a,
.footer_bottom ul li a,
#lang_sel_footer a {
    color: var(--footer-text);
}

/* Replace known low-contrast tones from dynamic output */
.footer_bottom,
.footer_bottom span,
.footer_bottom p,
.footer_bottom a,
.footer_bottom ul li a,
#lang_sel_footer a {
    color: var(--footer-text) !important;
}

@media only screen and (max-width: 680px) {
    .footer_top {
        padding-top: 20px;
        padding-bottom: 14px;
    }

    .footer_top p,
    .footer_top li,
    .footer_bottom p,
    .footer_bottom li {
        line-height: 1.75;
    }

    .footer_bottom {
        padding-top: 8px;
        padding-bottom: 8px;
    }
}

*:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
}

/* Solid clean navbar (normal + sticky) */
.header_top {
    display: block !important;
    background-color: #f2f7fc !important;
    border-bottom: 1px solid var(--footer-divider);
}

.header_top .container_inner {
    padding-top: 8px;
    padding-bottom: 8px;
}

.header_bottom,
header.sticky .header_bottom,
header.sticky,
header.fixed,
.fixed_top_header .bottom_header {
    background-color: var(--nav-bg) !important;
    background-image: none !important;
    border-bottom: 1px solid var(--footer-divider);
}

header.sticky .header_bottom,
header.sticky,
header.fixed.fixed_top_header .bottom_header {
    background-color: var(--nav-bg-sticky) !important;
}

nav.main_menu > ul > li > a,
header.sticky nav.main_menu > ul > li > a,
header.light.sticky nav.main_menu > ul > li > a,
header.dark.sticky nav.main_menu > ul > li > a,
.side_menu_button a,
header.sticky .side_menu_button a {
    color: var(--nav-link) !important;
    font-weight: 600;
}

nav.main_menu > ul > li:hover > a,
header.sticky nav.main_menu > ul > li:hover > a,
nav.main_menu > ul > li.active > a,
header.sticky nav.main_menu > ul > li.active > a,
nav.main_menu > ul > li.current-menu-item > a,
header.sticky nav.main_menu > ul > li.current-menu-item > a,
.side_menu_button a:hover,
header.sticky .side_menu_button a:hover {
    color: var(--nav-link-hover) !important;
}

nav.main_menu > ul > li:hover > a,
header.sticky nav.main_menu > ul > li:hover > a,
nav.main_menu > ul > li.active > a,
header.sticky nav.main_menu > ul > li.active > a {
    background-color: #eaf3fa !important;
}

nav.main_menu > ul > li > a {
    line-height: 72px;
}

header.sticky nav.main_menu > ul > li > a {
    line-height: 60px;
}

header.sticky .header_bottom,
header.fixed .header_bottom {
    box-shadow: 0 4px 16px rgba(13, 63, 91, 0.12);
}

nav.mobile_menu,
.header_bottom nav.mobile_menu {
    background-color: var(--nav-bg-sticky) !important;
}

nav.mobile_menu ul li a,
nav.mobile_menu ul li h3,
nav.mobile_menu ul li span.mobile_arrow i {
    color: var(--nav-link) !important;
}

nav.mobile_menu ul li a:hover,
nav.mobile_menu ul li.active > a,
nav.mobile_menu ul li.current-menu-item > a {
    color: var(--nav-link-hover) !important;
}
