  body {
    margin: 0;
    background: #ffffff;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    display: flex; /* These setting push the footer to the bottom of content or bottom of page, if content less than full page */
    flex-direction: column;
    min-height: 100vh; /* Ensures body is at least the height of the viewport */
  }

  a {
	color: #3076A1;
	text-decoration: none;
  }

  /* ========================================
      FIXED TOP BAR and STRETCHING BG IMAGE
  ======================================== */
  .topbar {
    position: fixed;
    top: 0;
    width: 100%;
    background: #023a61;  /* #000060; */
    z-index: 1000;
  }

  #bgImage {
    position: fixed;
    right: 0;
    top: 80;
    object-fit: cover;
    width: 100vw;
    height: 100vh;
    z-index: -1;
  }
  
  #bgImage2 {
    position: fixed;
    left: 0;
    top: 80;
    object-fit: cover;
    width: 50vw;
    height: 100vh;
    z-index: -1;
  }
  
  #resizingImage {
    position: absolute;
    bottom: 0;
    max-width: 40%;
    height: auto;
  }
  
  /* ========================================
      MAIN CONTENT
  ======================================== */
  main {
    flex: 1; /* Allows the main content to grow and fill available space */
  }

  /* Add spacing so content isn’t hidden behind menu bar */
  .page-content {    
    margin-top: 80px; /* under the fixed top bar */
    margin-left: 20px;
  }

  /* ========================================
      FOOTER
  ======================================== */
  .footer {
    width: 100%;
    background: #023a61;
    clear: both;
  }
  
  .footer-left-side {
	width:60%; 
	height:40px; 
	text-align:right; 
	padding-top:5px; 
	padding-bottom:5px; 
	float:left; 
    background: #023a61;
	color: #f0f0f0;'
  }
  
  .footer-right-side {
    width:40%; 
    height:40px; 
    text-align:center; 
    padding-top:10px; 
	float:left; 
    background: #023a61; 
    color: #f0f0f0; 
  }

  /* ========================================
      DESKTOP MENU
  ======================================== */
  .the_title {
    position: fixed;
    top: 0;
    left: 60px;
	line-height: 66px;
  }
  
  .desktop-menu {  
	line-height:40px;
    float: right;
    padding-right:20px;
  }
  
  .desktop-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
  }

  .desktop-menu li a {
    display: block;
    padding: 14px 14px;
    color: #d0d0d0;
    font-weight: bold;
    font-size: 11pt;
    background: 000060;
    text-decoration: none;
    transition: background 0.3s;
  }

  .desktop-menu li a:hover {
    color: #ffffff;
    background: #024573;   /* #2f5cb6 #004d99 */
    text-decoration: underline;
    border-radius: 10px 10px 0px 0px; 
    border-style: solid solid hidden solid;
    border: 1px solid #4976d0;
  }

  @media (max-width: 740px) {
    .desktop-menu {
      display: none;
    }
  }

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

  /* Hide checkbox */
  #menu-toggle {
    display: none;
  }

  /* Hamburger icon container */
  .menu-icon {
    width: 40px;
    padding: 10px;
    cursor: pointer;
    display: none; /* hidden on desktop */
  }

  /* Hamburger lines */
  .menu-icon span {
    display: block;
    height: 4px;
    background: white;
    margin: 6px 0;
    transition: 0.3s;
  }

  /* Animated transform into X */
  #menu-toggle:checked + nav.mobile-nav + label.menu-icon span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }
  #menu-toggle:checked + nav.mobile-nav + label.menu-icon span:nth-child(2) {
    opacity: 0;
  }
  #menu-toggle:checked + nav.mobile-nav + label.menu-icon span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }

  /* Mobile side menu */
  nav.mobile-nav {
    background: black;
    width: 200px;
    position: fixed;
    top: 60px; /* under the fixed top bar */
    left: -200px;
    height: 100vh;
    transition: left 0.3s;
    z-index: 900;
  }

  nav.mobile-nav ul {
    list-style: none;
    padding: 20px;
  }

  nav.mobile-nav li a {
    display: block;
    padding: 12px;
    color: white;
    background: black;
    text-decoration: none;
    transition: background 0.3s;
  }

  nav.mobile-nav li a:hover {
    background: #004d99;
    font-weight: bold;
    font-size: 11pt;
    border: 1px solid #4976d0;
  }

  /* Slide-in animation */
  #menu-toggle:checked + nav.mobile-nav {
    left: 0;
  }

  /* Show hamburger on mobile */
  @media (max-width: 740px) {
    .menu-icon {
      display: block;
    }
    nav.mobile-nav {
      display: block;
    }
  }

  /* Hide mobile menu on desktop */
  @media (min-width: 741px) {
    nav.mobile-nav,
    .menu-icon {
      display: none;
    }
  }


  /* ========================================
      PAGE LAYOUT ELEMENTS
  ======================================== */

	.category_link {
		margin-left: 5px;
		margin-right: 5px;
		padding-left: 5px;
		padding-right: 5px;
		background: #0e8de3;
		color: white;
		font-size:14pt;
		border-radius: 10px 10px 10px 10px;
		text-decoration: none;
	}
	.back_to_top {
		margin-left: 60px;
		margin-right: 5px;
		padding-left: 5px;
		padding-right: 5px;
		background: #0e8de3;
		color: white;
		font-size:12pt;
		border-radius: 10px 10px 10px 10px;
		text-decoration: none;
		clear: both;			
	}
	.rounded_outline_link {
		margin-left: 5px;
		margin-right: 5px;
		padding-left: 5px;
		padding-right: 5px;
		border: 1px solid #023a61;
		font-size: 12pt;
		border-radius: 10px;
		text-decoration: none;
	}
	.square_outline {
		margin-left: 5px;
		margin-right: 5px;
		padding-left: 5px;
		padding-right: 5px;
		border: 1px solid #0b639e;
		font-size: 12pt;
	}
	
	.rounded_outline {
		margin-left: 5px;
		margin-right: 5px;
		padding-left: 5px;
		padding-right: 5px;
		border: 1px solid #0b639e;
		border-radius: 5px;
		font-size: 12pt;
	}
	
	.category_header {
		margin-top: 40px;
		margin-bottom: 20px;
		margin-left:20px;
		background: #e0e0f0;
		color: 8080b0;
		font-size:14pt;
		font-weight:bold;
		font-style: italic;
		width: 400px;
		border-radius: 10px 10px 10px 10px;
		clear: both;			
	}
	.new_section {
		width:100%;
		margin-bottom: 20px;
		display: flex;
		justify-content: center;
		align-items: center;
		clear: both;
	}
	.opus_title {
		font-weight:bold;
	}
	.opus_descrip {
		width:33%;
		float:left;
		padding-top: 5px;
		padding-bottom: 5px;
		padding-right: 10px;
		padding-left: 10px;
	}
	.opus_picture {
		padding-right: 10px;
		padding-left: 10px;
		float:left;
	}
	.opus_links {
		float:left;
	}
	
	.audio_score_size {
		width:720px;
		height:480px;
	}
	
	.av_button {
		background: #e0a000;
		color: white;
		font-size:12pt;
		border-radius: 5px;
	}
	
	/* ------ For transition fade from video to image - thanks to ChatGPT for code suggestions ------*/
	.media-container {
		position: relative;
		width: 500px;
		aspect-ratio: 16 / 9;
	}

	.media-container video,
	.media-container img {
		width: 100%;
		height: auto;
		display: block;
	}

	#myVideo,
	#myImage {
		position: absolute;
		top: 0;
		left: 0;
		transition: opacity 3s ease-in-out;
	}

	#myVideo {
		opacity: 1;
		z-index: 2;
	}

	#myImage {
		opacity: 0;
		z-index: 1;
	}

	/* Applied when we want to switch */
	.fade-out {
		opacity: 0 !important;
	}

	.fade-in {
		opacity: 1 !important;
	}
	/* ------------ END transition section ----------------------------*/
	
	
	/* -----------  Modal popup - code thanks to w3schools.com --------*/
	.modal {
	  display: none; /* Hidden by default */
	  position: fixed; /* Stay in place */
	  z-index: 1; /* Sit on top */
	  padding-top: 100px; /* Location of the box */
	  left: 0;
	  top: 0;
	  width: 100%; /* Full width */
	  height: 100%; /* Full height */
	  overflow: auto; /* Enable scroll if needed */
	  background-color: rgb(0,0,0); /* Fallback color */
	  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
	}

	/* Modal Content */
	.modal-content {
	  background-color: #fefefe;
	  margin: auto;
	  padding: 20px;
	  border: 1px solid #888;
	  width: 80%;
	}

	/* The Close Button */
	.close {
	  color: #aaaaaa;
	  float: right;
	  font-size: 28px;
	  font-weight: bold;
	}

	.close:hover,
	.close:focus {
	  color: #000;
	  text-decoration: none;
	  cursor: pointer;
	}
	/* -------------  End Modal popup --------------------------------*/
	
