body { padding-top: 56px; }
.left-aligned { margin-left: auto; }
.bg-dark { background-color: rgb(1, 106, 112)!important; }
.bg-hero { background-color: rgb(162,197,121); }
.bg-white {background-color: white}


/* CALLOUT */
.bd-callout { padding:1.25rem; margin-top:1.25rem; margin-bottom:1.25rem; border:1px solid #e9ecef; border-left-width:.25rem; border-radius:.25rem }
.bd-callout h4 { margin-bottom:.25rem }
.bd-callout p:last-child { margin-bottom:0 }
.bd-callout code { border-radius:.25rem }
.bd-callout+.bd-callout { margin-top:-.25rem }
.bd-callout-info { border-left-color:#5bc0de }
.bd-callout-warning { border-left-color:#f0ad4e }
.bd-callout-danger { border-left-color:#d9534f }

/* footer */
footer a { color: white; font-weight: bold; text-decoration: none; }
footer a:hover { color: white; text-decoration: underline; }



/* -=-=-=-=-=-=-=-= COLOR scheme UZurich 2024 =-=-=-=-=-=-=-=- */
:root {
    --dark-blue: rgb(1, 106, 112);
    --darker-blue: rgb(1,82,87);
    --light-blue: rgb(97,163,186);
    --light-green: rgb(210,222,50);
    --dark-green: rgb(162,197,121);
    --light: rgb(255,255,221);
    --white: rgb(255,255,255);
    --white-transp: rgba(255,255,255,0.5);
    --brown: rgba(185, 149, 82, 0.5);
    --dark-brown: rgb(62, 51, 30);
    
} 

/* -=-=-=-=-=-=-=-= General styling of the wiki components -=-=-=-=-=-=-=-= */

h2 { /* Defining appearance of all the h2 titles on the wiki */
  color: var(--light-blue);
  text-transform: uppercase; 
  font-size: 26px;
}

h3 {
  color: var(--light-blue);
  font-size: 23px;
}

h4 {
  font-size: 20px;
}


a[href^="#ref"] { /* Styling all hyperlinks */
  color: var(--dark-blue); 
  vertical-align: super; /* Makes it look like a superscipt */
  font-size: 10px;
  text-decoration: none; /* Removes the underline */
}

.image-description{ /* Style of all image and graph descriptions */
  font-size: 14px;
  font-style: italic;
  color: var(--dark-blue);
  padding: 25px 25px 10px 25px;
}

.image-model{ /* Style of all image and graph descriptions without padding */
  font-size: 14px;
  font-style: italic;
  color: var(--dark-blue);
  padding: 0;
}

.padd-model{
  padding-top: 0px;
}

@media (min-width: 768px) { /* Adjust 768px to your breakpoint */
  .padd-model{
    padding-top: 150px;
  }
}


.highlight {/* Box to highlight a section in the text */
  background-color: rgb(162,197,121,0.4); 
  padding: 15px 5px 5px 15px; /* Add some padding for spacing, order is top, right, bottom, left */
  border-radius: 5px; /* Round the corners */
  margin-bottom: 10px;
}


/* Default style for smaller screens */
.responsive-img {
  width: 100%;
  height: auto; /* Keeps the aspect ratio */
}

.awards-text {
  max-width: 100%;
  text-align: center;
  margin: 0 auto;
}

.small-img-small{
  width: 100%;
}

/* Style for larger screens */
@media (min-width: 768px) { /* Adjust 768px to your breakpoint */
  .responsive-img {
      width: 75%;
  }
  .awards-text {
    max-width: 75%;
    text-align: center;

  }
}

@media (max-width: 768px)  {
  .small-img-small{
    width: 75%;
    height: auto; /* Maintain aspect ratio */
    margin: 0 auto; /* Center the image horizontally */
    display: block; /* Make the image a block element for centering */
    padding-bottom: 20px;
  }
}



/* Default style for smaller screens */
.responsive-img-smaller {
  width: 100%;
  height: auto; /* Keeps the aspect ratio */
}

.responsive-img-supersmall {
  width: 80%;
  height: auto; /* Keeps the aspect ratio */
}

/* Style for larger screens */
@media (min-width: 768px) { /* Adjust 768px to your breakpoint */
  .responsive-img-smaller {
      width: 50%;
  }
  .responsive-img-supersmall {
    width: 30%;
  }
}

/* Video styling */
.video-container {
  position: relative;
  width: 100%; /* Let width be responsive */
  max-width: 560px; /* Limit maximum width to match desired size on large screens */
  aspect-ratio: 16 / 9; /* Maintain a perfect 16:9 aspect ratio */
  overflow: hidden;
  margin-bottom:10px;
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .video-container {
    width: 100%; /* Span the full width of smaller screens */
  }
}

/* -=-=-=-=-=-=-=-= Progress bar -=-=-=-=-=-=-=-= */
#progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 5px;
  background-color: var(--dark-blue);
  z-index: 9999;
}

/* -=-=-=-=-=-=-=-= Hyperlink button and underline -=-=-=-=-=-=-=-= */

.hyperlink-button {
  display: inline-block;
  padding: 8px 12px;
  margin-top: 10px;
  font-size: 16px;
  color: white;
  background-color: grey;
  text-align: center;
  text-decoration: none;
  border-radius: 5px;
  border: none;
  cursor: pointer;
}

.hyperlink-button:hover {
  background-color: darkgrey; /* Change color on hover */
  color: var(--dark-blue);
}

.hyperlink-under {
  color: var(--dark-blue);
  text-decoration: underline;
}

.hyperlink-under:hover {
  color: var(--light-blue);
}






/* -=-=-=-=-=-=-=-= PDF button-=-=-=-=-=-=-=-= */
.customClose {
  border: 0;
  background-color: transparent;
  transform: translateY(-5px);
}

.customCloseSpam {
  font-size: 40px;
  color: red;
}

.modal {
  --bs-modal-padding: 0.5rem;
  --bs-modal-header-border-width: 0;
  --bs-modal-header-padding: 0.1rem 1rem;
}

/* Custom Button Colors */
.btn-custom-show {
  background-color: var(--dark-green); /* Custom Green */
  color: white;
}

.btn-custom-download {
  background-color: var(--dark-blue); /* Custom Orange */
  color: white;
}

/* Change button color on hover */
.btn-custom-show:hover, .btn-custom-download:hover {
  opacity: 0.8;
}


/* -=-=-=-=-=-=-=-= menu.html-=-=-=-=-=-=-=-= */
/* Menu logo custom settings */
.corner-logo {
  height: 70px; /* Logo size */
  margin-right: 10px; /* Adds some spacing between the logo and the team name */
}

/* Menu settings */ 
.navbar {
  border-bottom: 1px solid #cccccc; /* makes the line under the menu bar */
}

.navbar-light .navbar-nav .nav-link {
  color: var(--dark-blue);
}

.navbar-light .navbar-nav .nav-link:hover {
  color: var(--light-blue); /* Changes the color on hover */
}

/* Dropdown hover and open styling */
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .dropdown-item.active, /* Dropdown items active state */
.navbar-light .dropdown-menu:hover,
.navbar-light .navbar-nav .nav-link.show, /* When dropdown is open */
.navbar-light .dropdown-item:focus,
.navbar-light .dropdown-item:hover {
  color: var(--light-blue) !important; /* Ensure light blue on dropdown hover */
}

/* Ensure no color change on click or focus for nav-link and dropdown items */
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:active,
.navbar-light .dropdown-item:focus,
.navbar-light .dropdown-item:active {
  color: var(--light-blue); /* Keep light blue on click */
  outline: none; /* Remove the default focus outline */
  background-color: transparent;/* Prevent background color change */
}


/* Menu items are right-aligned but not taking the full width */
.navbar-nav {
  text-align: right; /* Ensure the menu items are right-aligned */
  display: flex; /* Ensure flexbox layout */
  justify-content: space-between; /* Distribute space between items */
  width: 85%; /* Ensure it takes full width of the container */
}

.nav-item {
  display: inline-block; /* Displays items in-line to ensure horizontal layout */
}

/* Items uppercase and font-size */
.navbar-nav .nav-link, .navbar-nav .dropdown-item {
  text-transform: uppercase; /* Convert text to uppercase */
  font-size: 16px; /* Adjust font size as needed */
}

/* Make the dropdown menu items uppercase */
.dropdown-menu .dropdown-item {
  text-transform: uppercase; /* Convert text to uppercase */
}

/* Adjust spacing for better visibility */
.navbar-nav .nav-item {
  margin: 0 10px; /* Space out menu items */
}

/* Align logo and brand name (UZurich) closer together and adjust spacing */
.navbar-brand {
  display: flex;
  align-items: flex-start; /* Aligns the top of the logo with the navbar */
  font-size: 16px; /* Adjust brand name font size */
  font-weight: bold;
  text-transform: uppercase; /* Convert brand name to uppercase */
  display: inline-block; /* Make sure the brand name is displayed */
  padding-left: 10px; /* Adjust padding if needed */
}





/* -=-=-=-=-=-=-=-= layout_TOC.html -=-=-=-=-=-=-=-= */

/* Layout for TOC and content */
.container .row {
  display: flex;
  margin-left: 0;
  margin-right: 0;
}

#toc {
  position: -webkit-sticky; /* For Safari */
  position: sticky;
  top: 80px; /* Adjusted to the height of our menu */
  max-height: calc(100vh - 80px); /* Adjusted to the height of our menu */
  overflow-y: auto;
  background-color: #f8f9fa; /* Light background color for TOC */
  padding: 10px 15px; /* Add some padding around TOC */
  box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* Shadow for TOC */
  display: flex;
  flex-direction: column;
}

#toc h2 {
  color: var(--dark-blue); /* Darker color for TOC title */
  font-size: 1.5rem; /* Font size for TOC title */
  margin-top: 20px; /* Removing margin to align with content headers */
  padding-top: 0; /* Removing top padding */
  padding-bottom: 10px; /* Adjusting bottom padding to balance spacing */
  padding-left: 25px;
}

/* Adjust TOC list items for different header levels */
#toc-list .pl-3 {
  padding-left: 30px; /* Indentation for <h3> */

}

#toc-list .pl-5 {
  padding-left: 50px; /* Indentation for <h4> */
}

#toc-list {
  list-style-type: none;
  padding-left: 0;
  padding-top: 0;
  margin-top: 0; 
  padding-left: 10px;
  text-transform: uppercase;
  flex-grow: 1; /* Allow the TOC list to grow and take up available space */
  overflow-y: auto; /* Enable scrolling for the TOC list if it overflows */
}

#toc-list .nav-link {
  color: var(--dark-blue); /* Default color for TOC items */
  text-decoration: none;
  transition: transform 0.2s ease-in-out, color 0.2s ease-in-out; /* Smooth transition for movement and color */
}

#toc-list .nav-link:hover {
  transform: translateX(10px) scale(1.05); /* Moves the item slightly to the right, Slightly scales the item for a bouncy effect */ 
  color: var(--light-blue); /* Change color when hovered */
  font-weight: bold; /* Makes the font bold on hover */
}

#toc-list .nav-link:hover::after {
  content: "→"; /* Optional: Add a right arrow when hovered */
  padding-left: 5px; /* Space between the text and the arrow */
}

#toc-list .nav-link.active {
  font-weight: bold;
  color: var(--light-blue); /* Change color when active */
  margin-left: 15px;
}

.col-lg-9.col-md-8 {
  flex: 1; /* Ensure the main content takes available space next to the TOC */
}

/* Add a back to the top button */

#back-to-top-container {
  text-align: left;
  margin-top: 330px; /* Push the Back to Top link to the bottom */
  padding-top: 10px; /* Add some padding at the top to separate from the last TOC item */
  padding-bottom: 10px; /* Add some padding at the bottom to give it space from the bottom of the container */
  padding-left: 25px;
}

#back-to-top {
  font-weight: bold;
  color: var(--dark-blue);
}

#back-to-top:hover {
  color: var(--light-blue);
}

/* Adjust the toc for smaller screen size */
@media (max-width: 767.98px) {
  #toc {
    display: none; /* Hide the TOC by default on small screens */
  }

  /* Show the TOC toggle button */
  #toc-toggle {
    display: block;
    position: fixed;
    top: 80px; /* Position it just below the header */
    left: 0;
    width: 100%;
    background-color: var(--dark-blue);
    color: #fff;
    padding: 10px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    cursor: pointer;
    z-index: 1000;
    text-align: center;
    height: 40px;
  }

  /* Make the TOC appear as an overlay */
  #toc.active {
    display: block !important;
    position: fixed;
    top: 80px; /* Just below the header */
    left: 0;
    width: 100%;
    height: calc(100% - 80px); /* Adjusted height to fit below the header */
    background-color: #f8f9fa;
    z-index: 999;
    overflow-y: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    padding: 20px;
    transform: translateY(0);
  }

  /* Style for the close button inside TOC */
  #toc-close {
    display: block;
    margin-bottom: 20px;
    margin-top: 20px; /* Add margin at the top to ensure it's not hidden */
    text-align: right;
    font-size: 1.5rem;
    color: var(--dark-blue);
    cursor: pointer;
    z-index: 1001; /* Ensure it's above the TOC content */
  }
}

/* TOC-Specific Styles */
.page-toc .nested {
  display: none; /* Hidden by default */
  padding-left: 20px; /* Indentation for nested items */
}

.page-toc .nested.active,
.page-toc .nav-item:hover > .nested {
  display: block; /* Show when active or on hover */
}

.page-toc .nav-item > a {
  cursor: pointer; /* Change cursor for clickable items */
}


/* Adds ▼ to h2 elements with the "has-dropdown" class */
.page-toc .has-dropdown::after {
  content: "▼"; /* Adds the ▼ symbol */
  font-size: 0.8em; 
  color: var(--dark-blue); 
  margin-left: 5px; 
}

/* Default font size for all TOC items */
.page-toc .nav-item a {
  font-size: 16px; /* Default size for h2 */
  font-weight:normal;
}

/* Specific sizes for h3 and h4 */
.page-toc .nav-item a.h3 span {
  font-size: 15px; /* Adjust for h3 */
}

.page-toc .nav-item a.h4 span {
  font-size: 14px; /* Adjust for h4 */
}


/* -=-=-=-=-=-=-=-= home.html layout -=-=-=-=-=-=-=-= */

/* Lottie animation */
#animation-container {
  margin-top: 150px;
  width: 100%; 
  height: 1080px; 
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  background-image: url('https://static.igem.wiki/teams/5250/home/web-animation-full-image-16bit-1-4size-2.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#moving-bacterium {
  width: 100%;
  height: 100%;
  max-width: 100%; /* Ensure it doesn't exceed container width */
  max-height: 100%; /* Ensure it doesn't exceed container height */
  position: relative;
  transform: translateX(20px);
  transition: none; /* Avoid transitions that alter size or position */
  object-fit: contain; /* Ensure aspect ratio is maintained */

}



/* For screens smaller than 1200px */
@media (max-width: 1200px) {
  #animation-container {
    height: 900px;
    margin-top: 100px;
    background-size: cover;
  }
  #moving-bacterium {
    width: 100%;
    height: 100%;
    transform: translateX(20px); /* Shift the animation 20px to the right */
  }
}

/* For screens smaller than 768px */
@media (max-width: 768px) {
  #animation-container {
    height: 700px;
    margin-top: 80px;
    background-size: cover;
  }
  #moving-bacterium {
    width: 100%;
    height: 100%;
    transform: translateX(20px); 
    transform: translateY(-50px); 
  }
}

/* For screens smaller than 480px */
@media (max-width: 480px) {
  #animation-container {
    height: 300px;
    margin-top: 50px;
    background-size: cover;
    background-position: top;
  }

  #moving-bacterium {
    width: 100%;
    height: 100%;
    transform: translateX(0);
  }
}






/* General Section Animations */
/* Centering the text */
.general-statement-container {
  /* height: 100vh; Full viewport height to center vertically */
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center; /* Center the text horizontally */
  margin-top: 180px;
  margin-bottom: 180px;
}

/* Fade-in and Fade-out effect for both sentences */
.general-statement {
  opacity: 0;
  transition: opacity 1s ease, transform 1s ease; /* Adjust transition duration for smoother effect */
  position: relative;
}


/* Fade in and out from the left (First sentence) */
.fade-in-left {
  transform: translateX(-300px); /* Stronger effect */
}

.fade-in-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in-left.hidden {
  opacity: 0;
  transform: translateX(-300px); /* Fade out to the left */
}

/* Fade in and out from the right (Second sentence) */
.fade-in-right {
  transform: translateX(300px); /* Stronger effect */
}

.fade-in-right.visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in-right.hidden {
  opacity: 0;
  transform: translateX(300px); /* Fade out to the right */
}

.fade-in-behind {
  color: black;
  font-size: 5em; /* Bigger text */
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease; /* Smooth fade-in and rise */
  margin-bottom: 50px; /* Adds space between the black and blue text */
}

.fade-in-behind.visible {
  opacity: 1;
  transform: translateY(0); /* Fade in with slight rising effect */
}



/* Add spacing between the text blocks */

.mt-7 {
  margin-top: 180px; /* Increase space between the two sentences */
}



/* General Styles for Section 2 */
.circle-section {
  padding: 30px 0; /* Adjust padding as needed */
}


/* Subtitle Styling */
.circle-subtitle {
  font-size: 18px; /* Size for the small titles */
  color: var(--dark-green); /* Change to desired color */
  margin-bottom: 10px; /* Space below the subtitle */
  font-weight: bold;
}

.circle-box p {
  color: var(--dark-green); 
}

/* General Styles for Section 2 */

/* Hidden state for circle boxes */
.circle-box {
  opacity: 0;
  transform: translateX(0); /* Initial position */
  transition: opacity 1s ease, transform 1s ease; /* Same transition as section 1 */
  display: flex;
  align-items: center;
  margin-bottom: 40px; /* Increased spacing between items */
}

/* Circle entering from the left */
.fade-in-left {
  transform: translateX(-300px); /* Stronger movement from the left */
  opacity: 1;
}

/* Circle entering from the right */
.fade-in-right {
  transform: translateX(300px); /* Stronger movement from the right */
  opacity: 1;
}

/* Circle fade-out to the left */
.fade-out-left {
  transform: translateX(-300px); /* Fade-out to the left */
  opacity: 0;
}

/* Circle fade-out to the right */
.fade-out-right {
  transform: translateX(300px); /* Fade-out to the right */
  opacity: 0;
}

/* Ensure visibility when in the viewport */
.circle-box.visible {
  opacity: 1;
  transform: translateX(0); /* Reset transform */
}

.circle-image {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin-right: 15px;
}

.circle-content {
  flex: 1; /* Ensure content takes up remaining space */
}

@media (max-width: 768px) {
  .circle-box {
    flex-direction: column;
    text-align: center;
  }

  .circle-image {
    margin-bottom: 10px;
  }
}



/* Quiz Layout and Styling */
.quiz-container {
  opacity: 0;
  transition: opacity 1s ease-in-out;
  margin-bottom: 180px;
}


/* Color of the Questions */
.question-text {
  color: var(--dark-blue); /* Blue color */
  font-weight: bold;
  font-size: 24px;
}

.quiz-container.visible {
  opacity: 1;
}


.quiz-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  max-width: 400px;
  margin: 0 auto;
}

.quiz-carousel {
  width: 100%; /* The visible width for one question */
  overflow: hidden; /* Hide non-active questions */
}

.quiz-question {
  display: none; /* Hide non-active questions */
}

.quiz-question.active {
  display: block; /* Show the active question */
}

/* Ensure the answers are consistently laid out */
.quiz-answers {
  display: flex;
  flex-direction: column;
}

.quiz-answer {
  display: block;
  margin: 10px 0;
  padding: 10px;
  background-color: lightgray;
  border: none;
  cursor: pointer;
  width: 100%; /* Make the answer buttons full-width */
  transition: background-color 0.3s ease;
}

.quiz-answer.correct {
  background-color: var(--dark-green); /* Green for correct answer */
}

.quiz-answer.incorrect {
  background-color: var(--brown); /* Dark red for incorrect answer */
}

/* Navigation arrows */
.quiz-nav {
  background: none;
  border: none;
  font-size: 2rem;
  cursor: pointer;
  position: relative;
  color: var(--dark-blue); /* Blue arrows */
}

#prev-question {
  left: -10px;
}

#next-question {
  right: -10px;
}

/* Progress Boxes */
.progress-boxes {
  display: flex;
  justify-content: space-between;
  width: 300px;
  margin: 20px auto;
}

.progress-box {
  height: 5px;
  background-color: lightgray;
  width: 32%; 
  transition: background-color 0.5s ease-in-out;
}

.progress-box.active {
  background-color: var(--dark-blue); /* Blue color when active */
}


/* Fourth Section Fade-in Styling */

/* Default hidden state for text and images */
.fade-in-block {
  opacity: 0;
  transform: translateY(50px); /* Slight downward movement */
  transition: opacity 1s ease-out, transform 1s ease-out;
}

/* When the element is visible */
.fade-in-block.visible {
  opacity: 1;
  transform: translateY(0); /* Resets the position */
}


/* Subteam Container Styling */
.subteam-container {
  display: flex;
  justify-content: space-between;
  gap: 30px; /* Adds more space between the boxes */
  flex-wrap: wrap; /* Allows wrapping for responsiveness */
  margin-bottom: 40px;
}

/* Subteam Box Styling */
.subteam-box {
  border: 2px solid #ccc;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
  width: 30%; /* Ensures all boxes are the same width */
  height: 350px; /* Ensures all boxes are the same height */
  opacity: 0; /* Initially hidden for fade-in effect */
  transform: translateY(50px); /* For slide-up effect */
  transition: opacity 1s ease, transform 1s ease;
}

/* Fade-in when visible */
.subteam-box.visible {
  opacity: 1;
  transform: translateY(0); /* No more vertical translation */
}

.subteam-box h3 {
  color: var(--dark-blue); /* Dark blue title */
}

.subteam-box:hover {
  background-color: rgba(173, 216, 230, 0.3);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
  .subteam-container {
    flex-direction: column;
  }

  .subteam-box {
    width: 100%;
    margin-bottom: 20px;
  }
}


/* -=-=-=-=-=-=-=-= Header background layout -=-=-=-=-=-=-=-= */
header {
  background-image: url('{{ header_background_url }}');
  background-size: cover; /* Ensures the image covers the header */
  background-position: center; /* Centers the image */
  background-repeat: no-repeat; /* Prevents repeating the image */
  min-height: 400px; /* Sets a minimum height for the header */
}

@media (max-width: 768px) {
  header {
    background-size: contain; /* Adjust for smaller screens */
    min-height: 300px;
  }
}

/* -=-=-=-=-=-=-=-= Table for Parts-=-=-=-=-=-=-=-= */
.custom-table {
  border-collapse: collapse;
  width: 100%;
}

.custom-table td {
  padding: 10px;
  border: none; /* No borders between columns */
}

.custom-table tr + tr td {
  border-top: 1px solid #ccc; /* Small border between rows */
}

.custom-table tr:first-child td {
  border-bottom: 3px solid #000; /* Thicker border under the first row */
}




/* -=-=-=-=-=-=-=-= Notebook design -=-=-=-=-=-=-=-= */
.page-container {
  display: flex;
}

#toc-timeline {
  position: -webkit-sticky; /* For Safari */
  position: sticky;
  top: 80px; /* Adjusted to the height of our menu */
  width: 25%;
  max-height: calc(100vh - 80px);
  overflow-y: auto;
  background-color: #f8f9fa;
  padding: 20px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

#toc-timeline h2 {
  text-align: center;
  font-size: 1.5rem; /* Font size for TOC title */
  padding-bottom: 10px; /* Adjusting bottom padding to balance spacing */
  padding-left: 25px;
  color: var(--darker-blue);
  
}

.timeline-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 75vh;
  margin-top: 20px;
}

.timeline-line {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  background-color: var(--dark-blue);
  z-index: 1;
}

.timeline-labels {
  position: absolute; /* Ensure alignment relative to the timeline */
  left: 50%;
  transform: translateX(-50%); /* Center horizontally */
  height: 100%;
  display: flex;
  flex-direction: column; /* Align labels vertically */
  justify-content: space-between; /* Distribute labels evenly */
  width: 100%; /* Ensure it spans the full width */
  z-index: 2; /* Ensure labels are on top of other elements */
}

.timeline-label {
  font-size: 16px; /* Ensure consistent font size */
  color: var(--dark-blue); 
  text-align: center; /* Center text for labels */
  text-transform:uppercase;
}

.timeline-label.left {
  text-align: left;
  margin-left: 15px; /* Adjusted for equal spacing */
}

.timeline-label.right {
  text-align: right;
  margin-right: 15px; /* Adjusted for equal spacing */
}
/* Hover Effects for Timeline Labels */
.timeline-label:hover {
  font-size: 18px; /* Increase font size */
  color: var(--light-blue);
  font-weight: bold;
}

.timeline-label.left:hover {
  transform: translateX(10px); /* Move label slightly to the left */
}

.timeline-label.right:hover {
  transform: translateX(-10px); /* Move label slightly to the right */
}

.timeline-scroll {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 100%;
  width: 22px; /* Adjust width as necessary */
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-y: scroll; /* Ensure vertical scrolling is enabled */
  z-index: 4; /* Ensure it's above markers */
}

.timeline-range {
  width: 16px; /* Ensure this width is not causing overflow issues */
  height: 100%; /* Full height of the container */
  writing-mode: vertical-rl; /* Standard vertical slider */
  background: transparent;
  border: none;
  outline: none;
  appearance: none; /* Remove default styling */
  cursor: pointer;
  z-index: 5; /* Ensure the slider thumb is on top */
}

.timeline-range::-webkit-slider-thumb {
  -webkit-appearance: none; /* Ensure uniformity in WebKit browsers */
  appearance: none;
  width: 18px; /* Adjust thumb width */
  height: 18px; /* Adjust thumb height */
  background-color: var(--light-blue);
  border-radius: 50%;
  cursor: pointer;
  z-index: 6; /* Ensure thumb is on top */
}

.timeline-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  background-color: var(--light-blue);
  border-radius: 50%;
  cursor: pointer;
  z-index: 6;
}

.timeline-range::-ms-thumb {
  width: 18px;
  height: 18px;
  background-color: var(--light-blue);
  border-radius: 50%;
  cursor: pointer;
  z-index: 6;
}



/* Close button styling for small screens */
#notebook-toc-close {
  display: none; /* Hidden on large screens */
  margin-top: 20px;
  margin-bottom: 20px;
  text-align: right;
  font-size: 1.5rem;
  color: var(--dark-blue);
  cursor: pointer;
  z-index: 1001;
}

/* The toggle button is hidden on large screens */
#notebook-toc-toggle-btn {
  display: none;
}

/* For small screens, hide the timetable and show the toggle button */
@media (max-width: 767.98px) {
  /* Hide timetable by default on small screens */
  #toc-timeline {
      display: none;
  }

  #notebook-toc-close {
    display: block;
  }

  /* Show the toggle button on small screens */
  #notebook-toc-toggle-btn {
      display: block;
      position: fixed;
      top: 80px;
      left: 0;
      width: 100%;
      background-color: var(--dark-blue);
      color: white;
      padding: 10px;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
      cursor: pointer;
      z-index: 1000;
      text-align: center;
      height: 40px;
  }

  /* Show the timetable in an overlay when active on small screens */
  #toc-timeline.active {
      display: block !important;
      position: fixed;
      top: 120px;
      left: 0;
      width: 100%;
      height: calc(100% - 120px);
      background-color: #f8f9fa;
      z-index: 999;
      overflow-y: auto;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
      padding: 20px;
  }

  .content-container {
    width: 100%; /* Make the content container almost full width on small screens */
    margin: 0 auto; /* Center the content */
  }

  .page-container {
    flex-direction: column; /* Stack elements vertically */
    width: 100%; /* Full width on smaller screens */
    padding: 0; /* Remove unnecessary padding for smaller screens */
  }
  
}




/* Style for the scroll markers */
.scroll-markers {
  position: absolute; /* Absolute to align with slider */
  top: 0;
  left: 50%;
  transform: translateX(-50%); /* Center align */
  height: 100%;
  width: 16px; /* Match the width of the slider */
  display: flex;
  flex-direction: column; /* Align markers vertically */
  justify-content: space-between; /* Distribute markers evenly */
  align-items: center; /* Center horizontally */
  z-index: 3; /* Below slider and thumb */
}


.scroll-marker {
  width: 10px;
  height: 10px;
  background-color: var(--dark-blue);
  border-radius: 50%;
  margin: 0; /* Remove extra margin */
}

.active-week {
  font-weight: bold;
  color: var(--light-blue);
  font-size: 18px; 

}



/* Ensure smooth scrolling is enforced in CSS */
html {
  scroll-behavior: smooth;
}

.content-container {
  width: 75%;
  padding-left: 20px;
}

.week-box {
  position: relative;
  padding: 20px;
  background-color: #ffffff; /* Default background */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  margin-bottom: 20px; /* Add space between boxes */
  transition: background-color 0.3s ease; /* Smooth transition */
}

.week-box.active-week-box {
  background-color: rgba(173, 216, 230, 0.3); /* Light blue with transparency */
  margin-bottom: 20px; /* Maintain the same space between boxes */
}

.week-box h3 {
  color: var(--light-blue);
  margin-top: 0;
}

.week-box h4 {
  color: var(--light-blue);
  margin-top: 0;
  font-size: 20px;
}

.week-box h5 {
  color: var(--dark-blue);
  margin-top: 0;
  font-size: 18px;
}

/* -=-=-=-=-=-=-=-= Contribution.html-=-=-=-=-=-=-=-= */

/* Contribution box styling */
.contribution-box {
  border: 2px solid #ccc;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  background-color: rgba(128, 128, 128, 0.1);
  opacity: 1;
  transform: translateY(0);
  transition: opacity 1s ease, transform 1s ease;
  margin: 10px 10px 30px 10px;
  display: flex;
  flex-direction: column; /* To align content vertically within each box */
  flex-grow: 1; /* Ensures each box stretches to match the tallest */
}

/* Hover Effect for the Contribution Box */
.contribution-box:hover {
  background-color: rgba(173, 216, 230, 0.3);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

/* Flexbox container */
.flex-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

/* Bootstrap column fix */
.flex-container .row {
  display: flex;
  width: 100%;
  align-items: stretch; /* Ensures all columns (boxes) stretch to the same height */
}


/* -=-=-=-=-=-=-=-= Awards.html-=-=-=-=-=-=-=-= */

/* Individual Contribution Box */
.award-box {
  border: 2px solid #ccc;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  background-color: rgba(128, 128, 128, 0.1); /* Light grey with 50% transparency */
  opacity: 1; /* Ensures it is visible */
  transform: translateY(0); /* Default position */
  transition: opacity 1s ease, transform 1s ease;
  margin: 10px 5px 30px 5px;
}

/* Hover Effect for the Contribution Box */
.award-box:hover {
  background-color: rgba(162,197,121, 0.5); /* Light green on hover */
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}





/* -=-=-=-=-=-=-=-= Team Page layout (flipping cards)-=-=-=-=-=-=-=-= */
.team-text-and-image-container {
  width: 75%;
  margin: 0 auto; /* Centers the container horizontally */
  text-align: center; /* Optional: Centers text within the container */
}

.team-picture {
  width: 100%; /* The image will take up 100% of the container's width, which is 75% of the page width */
  display: block;
  margin: 0 auto;          /* Centers the image horizontally */
  border-radius: 30px;     /* Adjust the value for more or less rounded corners */
  max-width: 100%;         /* Ensures the image scales down on smaller screens */
  height: auto;            /* Maintains aspect ratio */
  margin-bottom: 20px;

}
/* Styling for the flipping cards section */


.team-container {
  padding: 20px;
  overflow: hidden; /* Ensure content stays within the container */
}

.team-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around; /* Adjusted for better spacing */
  margin-bottom: 30px; /* Ensure there's space between the cards and the footer */
}

.team-col {
  flex: 0 0 30%; /* Slightly narrower to give cards a taller appearance */
  max-width: 30%;
  padding: 15px; /* Added more padding around the cards */
  box-sizing: border-box;
}

@media (max-width: 992px) {
  .team-col {
    flex: 0 0 48%;
    max-width: 48%;
  }

  .team-card {
    max-width: 325px; /* Adjust width for tablets */
  }

  .team-flip-card-inner {
    height: 400px; /* Adjust height to maintain proportion */
  }

  .team-card-img-top {
    height: 200px; /* Adjust image height */
  }

  .team-member-picture-small {
    width: 30px;
    height: 30px;
  } 
}

@media (max-width: 576px) {
  .team-row {
    justify-content: center; /* Center the columns horizontally */
  }

  .team-col {
    flex: 0 0 100%; /* Ensure each column takes up the full row */
    max-width: 100%; /* Prevent columns from exceeding the full width */
    display: flex;
    justify-content: center; /* Center the card within the column */
    margin-bottom: 20px; /* Add some space below each card */
  }

  .team-card {
    max-width: 200px; /* Set the max width of the card */
    margin: 0 auto; /* Center the card within its column */
  }

  .team-flip-card-inner {
    height: 320px; /* Adjust height for mobile devices */
  }

  .team-card-img-top {
    height: 160px; /* Adjust image height */
  }
}

.team-card {
  position: relative;
  width: 100%;
  max-width: 325px; /* Set a maximum width for the card */
  perspective: 1000px;
  border: 2px solid #cccccc; /* Blue border */
  border-radius: 10px;
  overflow: hidden; /* Ensure the card's content stays within bounds */
  cursor: pointer;
  margin-bottom: 20px; /* Add spacing between cards */
  background-color: #fff; /* Ensure consistent background */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Initial shadow */
  transition: box-shadow 0.6s ease-in-out; /* Transition for the shadow */
}

.team-flip-card-inner {
  position: relative;
  width: 100%;
  height: 460px; /* Further increased height for a taller card shape */
  transition: transform 0.6s;
  transform-style: preserve-3d;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Consistent shadow */
  border-radius: 10px; /* Ensure border radius is consistent during the flip */
}

.team-flip-card-inner.flipped {
  transform: rotateY(180deg);
  box-shadow: -4px 8px 16px rgba(0, 0, 0, 0.4); /* Enhanced shadow for depth */
}

.team-flip-card-front,
.team-flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%; /* Ensure the front and back are the same size */
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 20px; /* Consistent padding for both sides */
}

.team-flip-card-front {
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 30px; /* Further increased padding for more centering */
  transform: rotateY(0deg);
}

.team-flip-card-back {
  transform: rotateY(180deg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 20px;
}

.team-card-img-top {
  border-radius: 15px; /* Slight rounding of the image edges */
  object-fit: cover;
  object-position: top; /* Aligns the image to the top of the container */
  width: 100%;
  height: 240px; /* Increased height for a more elongated image */
  margin-bottom: 20px; /* Increased margin to push the text down */
}

.team-card-body {
  width: 100%;
  text-align: center;
}

.team-card-title {
  color: var(--dark-blue);
  margin-top: auto; /* Push the text to the bottom */
  font-weight: bold;
  font-size: 1.2rem;
}

.team-badge {
  background-color: var(--dark-blue);
  color: white;
  padding: 2px 8px;
  border-radius: 5px;
  font-size: 0.8rem;
}

.badge-container {
  display: flex; /* Use flexbox for horizontal layout */
  gap: 10px; /* Spacing between badges */
  flex-wrap: wrap; /* Allow badges to wrap if necessary */
  justify-content: center; /* Center badges horizontally */
}

.team-card-quote {
  font-style: italic;
  font-size: 0.9rem;
  margin-top: 10px;
}

.team-member-picture-small {
  border-radius: 50%; /* Creates a circular shape */
  width: 110px; /* Fixed size for the circular image */
  height: 110px; /* Same as width to maintain the circular shape */
  object-fit: cover; /* Ensures the image covers the area without distortion */
  object-position: center; /* Centers the image within the circular container */
  display: block; /* Removes extra space below the image */
  margin: 10px; /* Centers the image horizontally if needed */
}

.team-card-description {
  text-align: justify;
  font-size: 0.9rem;
  color: var(--dark-blue);
  margin-top: 10px;
}

.static-team-card {
  position: relative;
  width: 100%;
  max-width: 325px; /* Same max width as the team cards */
  height: 460px; /* Same height as the flipping cards */
  border: 2px solid #cccccc; /* Match the border style */
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 20px; /* Spacing between the cards */
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Add consistent shadow */
  padding: 30px;
}


.static-card .team-card-description {
  margin-top: 30px; /* Optional: in case there's space above the description */
}


/* -=-=-=-=-=-=-=-= Medal Page layout (flipping cards)-=-=-=-=-=-=-=-= */

/* Medal-Specific Container */
.medal-container {
  padding: 20px;
  overflow: hidden; /* Ensure content stays within the container */

}

.medal-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around; /* Adjust for better spacing */
  margin-bottom: 30px; /* Ensure there's space between the rows */
}

.medal-col {
  flex: 0 0 30%; /* Adjust card width */
  max-width: 30%;
  padding: 15px;
  box-sizing: border-box;
}

@media (max-width: 992px) {
  .medal-container .medal-col {
    flex: 0 0 48%;
    max-width: 48%;
  }

  .medal-card {
    max-width: 275px;
  }

  .medal-flip-card-inner {
    height: 350px; /* Adjust height for different screen sizes */
  }

  .medal-card-title {
    font-size: 1.1rem; /* Adjust title size */
  }
}

@media (max-width: 576px) {
  .medal-row {
    justify-content: center;
  }

  .medal-container .medal-col {
    flex: 0 0 100%;
    max-width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
  }

  .medal-card {
    max-width: 200px;
    margin: 0 auto;
  }

  .medal-flip-card-inner {
    height: 320px;
  }
}

.medal-card {
  position: relative;
  width: 100%;
  max-width: 300px;
  perspective: 1000px;
  border: 2px solid #cccccc;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  margin-bottom: 20px;
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  transition: box-shadow 0.6s ease-in-out;
}

.medal-flip-card-inner {
  position: relative;
  width: 100%;
  height: 350px;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}

.medal-flip-card-inner.flipped {
  transform: rotateY(180deg);
  box-shadow: -4px 8px 16px rgba(0, 0, 0, 0.4);
}

.medal-flip-card-front,
.medal-flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 20px;
}

.medal-flip-card-front {
  z-index: 2;
  padding: 30px;
  transform: rotateY(0deg);
}

.medal-flip-card-back {
  transform: rotateY(180deg);
  padding: 20px;
}

.medal-card-title {
  color: var(--dark-blue);
  font-weight: bold;
  font-size: 20px;
  text-align: center;
  justify-content: center; /* Horizontally center */
}

.medal-card-description {
  text-align: left;
  font-size: 16px;
  color: var(--dark-blue);
}



/* Sources */
.sources {
  border-radius: var(--mid-small);
  padding: var(--small);
  padding-left: var(--big);
  background-color: var(--mid-light-green);
}

.sources a {
  color: var(--mid-black);
  text-decoration: none;
}

.sources a:hover {
  color: var(--mid-black);
  text-decoration: underline;
}

/* Jump Marker */
.jump-marker {
  position: absolute;
  margin-top: -220px;
}


/* References */
.container-references {
  background:var(--brown); /* To make text more readable */
  margin-top: 20px;
  padding-top:0;
  padding: 10px;
  border-radius: 5px;
}




/* -=-=-=-=-=-=-=-= footer.html -=-=-=-=-=-=-=-= */ 
.sponsor-logo {
  display: block; /* Ensures each logo is on a new line */
  width: 100%; /* Adjust the width as needed */
  height: auto; /* Ensures the height scales proportionally */
  max-width: 200px; /* Optional: Set a maximum width to prevent oversized logos */
  margin: 0 0 auto 15px; /* Adds spacing between logos */
}

.social-icons {
  justify-content: center; /* Ensure icons stay centered horizontally */
  margin: 0 auto; /* Center the container on the page */
  gap: 50px; /* Add more space between icons for clarity */
}

.social-icons img {
  width: 45px; /* Default size of icons */
  height: auto; /* Maintain aspect ratio */
  filter: invert(100%) brightness(200%); /* Ensure proper coloring */
  transition: transform 0.3s ease; /* Smooth hover effect */
}

.social-icons img:hover {
  transform: scale(1.2); /* Slightly enlarge the icon on hover */
}

.footer-centered {
  display: flex;
  flex-direction: column; /* Stack items vertically */
  gap: 10px; /* Add space between items */
}



/* For smaller screens (phones) */
@media (max-width: 768px) {
  .social-icons {
    justify-content: center; /* Ensure icons stay centered horizontally */
    margin: 0 auto; /* Center the container on the page */
    gap: 60px; /* Add more space between icons for clarity */
    align-items: center; /* Horizontally center the content */
    text-align: center; /* Ensure text is centered */
  }

  .social-icons img {
    width: 40px; /* Slightly reduce size for smaller screens */
    margin-right: 0; /* Remove right margin for icons */
    margin-bottom: 5px; /* Add spacing under icons */
  }
  
  .sponsor-logo {
    margin: 15px auto; /* Ensures logos are centered on medium-small screens */
    text-align: center; /* Centers content if needed */
  }

  .footer h4 {
    text-align: center; /* Ensure titles stay centered on very small screens */
  }

  .footer-centered {
    align-items: center; /* Horizontally center the content */
    text-align: center; /* Ensure text is centered */
  }

  .footer-centered div {
    justify-content: center; /* Center each individual block */
  }

  .footer-centered img {
    margin-right: 0; /* Remove right margin for icons */
    margin-bottom: 5px; /* Add spacing under icons */
  }
}







