#menus {
background-color: var(--color-primary);
height: 60px;
display: flow-root;
}

.slidemenu {
font: normal 1.5rem var(--font-main);
background-color: var(--color-primary);
width: 100%;
max-width: 600px;
}

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

/* Top level list items */
.slidemenu ul li {
position: relative;
display: inline;
float: left;
z-index: 1000;
}

/* Top level menu link items style */
.slidemenu ul li a {
display: block;
background-color: var(--color-primary);
color: white;
padding: 14px 14px 12px 14px;
text-decoration: none;
}

.slidemenu ul li a:link,
.slidemenu ul li a:visited {
color: white;
}

.slidemenu ul li a:hover {
background: var(--color-hover);
color: white;
}

.slidemenu ul li.selected a {
background: var(--color-accent);
color: white;
}

/* 1st sub level menu */
.slidemenu ul li ul {
position: absolute;
left: 0;
top: 100%;
display: block;
visibility: hidden;
opacity: 0;
transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* Show submenu on hover */
.slidemenu ul li:hover > ul {
visibility: visible;
opacity: 1;
}

/* Sub level menu list items (undo style from top level) */
.slidemenu ul li ul li {
display: list-item;
float: none;
}

/* All subsequent sub menu levels */
.slidemenu ul li ul li ul {
top: 0;
left: 100%;
}

/* Sub level menu links style */
.slidemenu ul li ul li a,
.slidemenu ul li.selected ul li a {
font: normal 13px var(--font-main);
width: 160px;
padding: 5px;
margin: 0;
border-top-width: 0;
border-bottom: 1px solid gray;
background-color: var(--color-primary);
}

.slidemenu ul li ul li a:hover,
.slidemenu ul li.selected ul li a:hover {
background-color: var(--color-hover);
color: white;
}

/* Arrow indicators for items with submenus */
.slidemenu ul > li:has(> ul) > a::after {
content: ' \25be'; /* ▾ */
font-size: 0.7em;
}
.slidemenu ul li ul li:has(> ul) > a::after {
content: ' \25b8'; /* ▸ */
}


/* Lang menu */

.lang_menu {
float: right;
}

.lang_menu ul {
margin: 6px 0;
padding: 0;
list-style-type: none;
font: bold 9px Arial;
width: 43px;
}

#contentcolumn .lang_menu ul li {
position: relative;
margin-top: 1px;
margin-bottom: 1px;
}

.lang_menu ul li a {
display: block;
color: #8D8D8D;
text-decoration: none;
margin: 2px 0;
padding: 0 20px 1px 6px;
}

.lang_menu ul li a:link,
.lang_menu ul li a:visited,
.lang_menu ul li a:active {
background-color: white;
border: 1px solid #8D8D8D;
}

.lang_menu ul li.selected a {
background-color: #8D8D8D;
color: white;
}

.lang_menu ul li a:hover {
background-color: #CDCDCD;
color: white;
}

/* Sub level menu items */
.lang_menu ul li ul {
position: absolute;
width: 170px;
top: 0;
visibility: hidden;
}


/* ===============================================
   MOBILE HAMBURGER MENU
   =============================================== */

/* Hide hamburger menu toggle and icon on desktop */
.mobile-menu-toggle {
display: none;
}

.hamburger-icon {
display: none;
}

/* Hide mobile language menu on desktop */
.mobile-lang-menu {
display: none;
}

/* Hide News menu item on desktop (news shown in left column) */
.news-menu-item {
display: none;
}

/* ===============================================
   RESPONSIVE DESIGN - MOBILE MENU ADAPTATIONS
   =============================================== */

/* Tablet and smaller screens */
@media screen and (max-width: 768px) {
#menus {
height: auto;
overflow: visible;
position: relative;
}

/* Show News menu item on mobile */
.news-menu-item {
display: inline;
float: left;
}

.slidemenu {
width: 100%;
font-size: 1.35rem;
}

.slidemenu ul li a {
padding: 10px 8px;
font-size: 0.85em;
white-space: nowrap;
}

.slidemenu ul li ul li a,
.slidemenu ul li.selected ul li a {
width: 180px;
white-space: normal;
}

/* Hide desktop language menu, show mobile one */
#contentcolumn .lang_menu {
display: none;
}

.mobile-lang-menu {
display: block;
position: absolute;
top: 10px;
right: 10px;
float: none;
z-index: 2000;
}

.mobile-lang-menu ul {
display: flex;
gap: 5px;
margin: 0;
justify-content: flex-end;
}

.mobile-lang-menu ul li {
margin: 0;
}
}

/* Mobile screens - hamburger menu */
@media screen and (max-width: 600px) {
/* Show News menu item as block on mobile */
.news-menu-item {
display: block;
float: none;
}

/* Show hamburger icon */
.hamburger-icon {
display: block;
position: absolute;
top: 10px;
left: 10px;
width: 30px;
height: 25px;
cursor: pointer;
z-index: 2001;
background-color: transparent;
}

.hamburger-icon span {
display: block;
position: absolute;
height: 3px;
width: 100%;
background: white;
border-radius: 2px;
opacity: 1;
left: 0;
transition: .25s ease-in-out;
}

.hamburger-icon span:nth-child(1) { top: 0; }
.hamburger-icon span:nth-child(2) { top: 10px; }
.hamburger-icon span:nth-child(3) { top: 20px; }

/* Animate hamburger to X when open */
.mobile-menu-toggle:checked ~ .hamburger-icon span:nth-child(1) {
top: 10px;
transform: rotate(135deg);
}

.mobile-menu-toggle:checked ~ .hamburger-icon span:nth-child(2) {
opacity: 0;
left: -60px;
}

.mobile-menu-toggle:checked ~ .hamburger-icon span:nth-child(3) {
top: 10px;
transform: rotate(-135deg);
}

/* Hide menu by default, slide in when checkbox is checked */
.slidemenu {
position: fixed;
top: 0;
left: -100%;
width: 80%;
max-width: 300px;
height: 100vh;
background-color: var(--color-primary);
overflow-y: auto;
transition: left 0.3s ease-in-out;
z-index: 1999;
padding-top: 50px;
font-size: 1.15rem;
}

.mobile-menu-toggle:checked ~ .slidemenu {
left: 0;
}


.slidemenu ul li {
float: none;
display: block;
width: 100%;
border-bottom: 1px solid #003050;
}

.slidemenu ul li a {
padding: 12px 15px;
border-right: none;
border-bottom: none;
display: block;
width: 100%;
}

/* Make submenus full width and always visible on mobile */
.slidemenu ul li ul {
position: static;
width: 100%;
visibility: visible;
opacity: 1;
display: block;
background-color: #003555;
}

.slidemenu ul li ul li a,
.slidemenu ul li.selected ul li a {
width: 100%;
font-size: 0.9em;
padding-left: 30px;
background-color: #003555;
border-bottom: 1px solid #002540;
}

.slidemenu ul li ul li a:hover,
.slidemenu ul li.selected ul li a:hover {
background-color: #6B9FD8;
}

/* Position search form in top bar */
#search_form {
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
float: none;
margin: 0;
text-align: center;
}

#search_form input[type="text"] {
width: 120px !important;
font-size: 0.75rem !important;
}

/* Language menu in upper right */
.mobile-lang-menu {
top: 12px;
right: 10px;
}

.mobile-lang-menu ul {
display: flex;
gap: 4px;
margin: 0;
padding: 0;
justify-content: flex-end;
}

.mobile-lang-menu ul li {
position: static;
margin: 0;
flex-shrink: 0;
}

.mobile-lang-menu ul li a {
padding: 3px 7px;
font-size: 0.85rem;
min-width: 28px;
text-align: center;
display: block;
}

#menus {
overflow: visible !important;
padding-right: 0;
}

#topsection {
overflow: visible !important;
}

#maincontainer {
overflow-x: visible !important;
}
}
