/* Cooper BT regular */
@font-face {
  font-family: 'CooperBT';
  src: url('https://static.igem.wiki/teams/5794/wiki/fonts/cooperltbt-regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

/* Cooper BT bold */
@font-face {
  font-family: 'CooperBT';
  src: url('https://static.igem.wiki/teams/5794/wiki/fonts/cooperltbt-bold.woff') format('woff');
  font-weight: bold;
  font-style: normal;
}

/* Cooper BT italic */
@font-face {
  font-family: 'CooperBT';
  src: url('https://static.igem.wiki/teams/5794/wiki/fonts/cooperltbt-italic.woff') format('woff');
  font-weight: normal;
  font-style: italic;
}

/* Cooper BT bolditalic */
@font-face {
  font-family: 'CooperBT';
  src: url('https://static.igem.wiki/teams/5794/wiki/fonts/cooperltbt-bolditalic.woff') format('woff');
  font-weight: bold;
  font-style: italic;
}

/* Alviona for headings */
@font-face {
  font-family: 'Alviona';
  src: url('https://static.igem.wiki/teams/5794/wiki/fonts/alviona.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

/* Apply Alviona headings, Cooper BT body */

h1, h2, h3, h4, h5, h6 {
  font-family: 'Alviona', serif;
}

h1{
  color:#67011B;
  text-align: center;
}

body { font-family: 'CooperBT', sans-serif; padding-top: 56px; position:relative;}
.left-aligned { margin-left: auto; }
.bg-dark { background-color: #67011B !important; }
.bg-hero { background-color: #FFFAEC; }

body{
  background-color: #FFFAEC;
  color: #042339;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0; 
}

/* NAVBAR */
.navbar .nav-link{
  color: #FFFAEC;
  font-size: 1.3em;
  margin: 5px 10px;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
  color:#FCC201;
}

.navbar .dropdown-menu{
  background: rgba(103,1,27,0.70)  /*set opacity*/
}

.navbar .dropdown-item{
  color:#FFFAEC;
}

.navbar .dropdown-item:hover{
  color:#FCC201;
  background-color: #67011B;
  background: rgba(103,1,27,0.50) /*lower opacity*/
}

/* HEADING */
.heading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  padding: 20px;
  margin-top: 5vw;
}

.heading-title{
  width: 100%;
  color:#67011B;
  font-size: 15vw; /*XS screens */
  margin-top: 20px;
}
/*S screens */
  @media (min-width: 768px) {
    .heading-title {
      font-size: 10vw;
    }
  }

/* Above */
    @media (min-width: 992px) {
    .heading-title {
      font-size: 5vw;
    }
  }

.subtitle{
  width: 60%;
  color:#67011B;
  font-size: 3em;
  margin-top: 20px;
}

.heading-img {
  margin-top: 0px;
  border-style: solid;
  border-width: 2px 6px 6px 2px;
  border-color: #67011B;
  border-radius: 30px;
  height: auto;
  max-width: 75%;
  object-fit: contain;
}


/* 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: 1.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:#53caee }
.bd-callout-warning { border-left-color:#423494 }
.bd-callout-danger { border-left-color:#d9534f }

/* COLLAPSIBLE TEXT BOX */
.wrapper {
  display: flex;
  padding-top: 5px;
  justify-content: center;
}

.collapsible {
  overflow: hidden;
  width: 100%;
  position: relative;
}

.collapsible label{
  position: relative;
  display: block;
  cursor: pointer;
  padding: 10px 0;
  background-color: #67011B;
  border: 4px solid #67011B;
  border-radius: 6px;
  padding-left: 10px;
  font-family: 'Alviona', serif;
  transition: background-color 0.5s ease; border-radius: 0.5s ease;
  color:#FFFAEC;
  font-size: 1.6em;  
}

.collapsible label:hover {
  color: #FCC201;
}

.collapsible label::after{
  content: "▼";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.5s ease;
}

.collapsible input:checked + label::after {
  transform: translateY(-50%) rotate(180deg);
}

.collapsible-text {
  max-height: 0;
  overflow: hidden;
  border: 4px solid transparent;
  border-top: none;
  padding-left: 10px;
  transition: max-height 0.5s ease, border-color 0.5s ease, padding 0.5s ease, border-radius 0.5s ease;
}

.collapsible input:checked ~ .collapsible-text {
  max-height: 10000px;
  border-color: #67011B;
  padding: 10px;
  border-top: none;
  border-radius: 6px;
}

.collapsible input:checked ~ label {
  border-bottom: none;
  border-radius: 6px 6px 0px 0px;
  background-color: #67011B;
}

.collapsible h1,
.collapsible h2,
.collapsible h3,
.collapsible h4,
.collapsible h5,
.collapsible h6  {
  color: #042339;
  font-size: 1.3em
}

.collapsible p {
  color: #042339
}

.collapsible a {
  color: #2064e2
}

.collapsible a:hover {
  color: #FCC201;
}
/* FOR HEADINGS BETWEEN COLLAPSIBLE TEXT BOXES*/
.collapsible-categories {
  text-align: left;
  padding-top: 20px;

}

/* IHP */

.bold {
  font-weight: bold;
}

.light {
  font-weight:lighter;

}

.bigbold {
  font-weight: bold;
  font-size:1.2em;
}

.indent{
  text-indent: 2em;
}

/* a div for under a picture alignin text to the center*/
.under-picture {
    margin: auto;
    text-align: center;
  }



.long-ihp-text {
  padding: 10px;
  border-style: solid;
  border-width: 4px 12px 12px 4px;
  border-color: #ebe0ce;
  border-radius: 30px;
  height: auto;
  object-fit: contain;
  background: #FFFAEC;
  box-shadow: 5px 5px 5px 5px #ebe0ce;
}


.long-ihp-text h1 {
  color:#042339;
  font-size: 2.5em;
  padding: 35px;
}

.long-ihp-text h2 {
  color: #042339;
  font-size: 2em;
  padding:15px;
}

.long-ihp-text a {
  color: #2064e2
}

.long-ihp-text a:hover {
  color: #FCC201;
}

table {
  border-collapse: collapse;
  width: 100%;
  line-height:1.5em;
  margin-left:auto;
  margin-right:auto;
  border: 2px solid #FCC201;
  z-index: 1;
  padding:10px;
}

td, th {
  text-align: left;
  padding: 8px;
  border: 2px solid #FCC201;
}

tr:nth-child(even) {
  background-color: #FFEDB9;
}

.references {
  text-align:left;
  color: #042339;
}

.references h1{
  font-size:1.6em;
}

/* Slideshow container */
.slideshow-container {
  max-width: 100%;
  position: relative;
  margin: auto;
}

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(26,50,96,0.8);
}

/* Number text (1/3 etc) */
.numbertext {
  color: #1A3260;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}

/* The dots/bullets/indicators */
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}

/* Sidenav bar */

.sidenav {
  position: fixed;
  top: 150px;
  left:1vw;
  display:block;
  padding:20px 10px;
  width:18vw;
  height: 33vw;
  background: #1A3260;
  overflow-x: hidden;
  border:2px solid #1A3260;
  border-radius: 30px;
  transform: translateX(-300px); 
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s ease;
  z-index:0;
}

.visible {
  transform: translateX(0); 
  opacity: 1;
}

.sidenav a {
  padding: 6px 8px 6px 16px;
  font-size: 1.3em;
  font-family: 'Alviona', serif;
  color: #FFFAEC;
  display: block;
  text-decoration: none;
}

.smallera-a {
  padding: 6px 8px 6px 16px;
  font-size: 0.8em;
  font-family: 'Alviona', serif;
  color: #FFFAEC;
  display: block;
  text-decoration: none;
  text-indent: 1em;
}

.sidenav a:hover {
  color: #FCC201;
}

/*edit scrollbars both sidenav and all*/
/* width */
.sidenav::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar {
  width: 15px;
}

/* Track */
.sidenav::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px #2064e2; 
  border-radius: 10px;
  margin-top:14px;
  margin-bottom:14px;
}

::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px #67011B; 
}
 
/* Handle */
.sidenav::-webkit-scrollbar-thumb {
  background: #2064e2; 
  height:10px;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: #2064e2; 
  height:10px;
  border-radius: 10px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #FCC201; 
}

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

/* text in hero banner */
header.bg-hero h1.display-4.text-white,
header.bg-hero p.lead.text-white-50 {
  color: #042339 !important;
}

/*description images*/
.description-img{
  display: block;
  margin-left: auto;
  margin-right: auto;
  flex-shrink: 0;
  max-height: 600px;
  max-width: 80%;
  border: 5px solid #67011B;
  border-radius: 8px;
}


/* indent for lists*/
ol, ul{
  padding-left: 20px; /* adjust indentation */
  margin-top: 5px;
  margin-bottom: 5px;
}

/*for Album(in) page*/
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.album-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; 
  justify-content: flex-start;
}

.responsive {
  flex: 1 1 calc(25% - 20px);       /* 4 boxes per row */
  max-width: calc(25% - 20px);
  display: flex;
  flex-direction: column;  
  overflow: hidden;     
}

div.gallery {
  width: 100%;
  overflow: hidden;
}

div.gallery:hover {
  border: 1px solid #67011B;
}

div.gallery img {
  width: 100%;  
  height: 250px;   
  object-fit: contain; 
  display: block; 
}

div.desc {
  text-align: center;
  padding: 12px;   
  background-color: #FFFAEC;
  word-wrap: break-word;
  flex: 0 0 auto;
}

/* Responsive adjustments */
@media (max-width: 1000px) {
  .responsive {
    flex: 1 1 calc(50% - 20px); /* 2 per row */
    max-width: calc(50% - 20px);
  }

  div.gallery img {
    height: 200px;  
  }
}

@media (max-width: 600px) {
  .responsive {
    flex: 1 1 100%; /* 1 per row */
    max-width: 100%;
  }

  div.gallery img {
    height: 180px;
  }
}

/*tabs on Engineering page*/
/* Style the tab */
.tab {
  overflow: hidden;
  display: inline-block;
}

/* Style the buttons that are used to open the tab content */
.tab button {
  background-color: inherit;
  float: left;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 14px 16px;
  transition: 0.3s;
  border-radius: 6px 6px 0 0;
}

/* Change background color of buttons on hover */
.tab button:hover {
  background-color: #042339;
  color: #FFFAEC;
}

/* Create an active/current tablink class */
.tab button.active {
  background-color: #2064e2;
  color: #FFFAEC;
}

/* Style the tab content */
.tabcontent {
  display: none;
  padding: 12px;
  border: 2px solid #2064e2;
  border-radius: 6px;
  margin-top: -1px;
}

.tabcontent {
  animation: fadeEffect 1s; /* Fading effect takes 1 second */
}

/* Go from zero to full opacity */
@keyframes fadeEffect {
  from {opacity: 0;}
  to {opacity: 1;}
}

/*scroll bar*/
#progressContainer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;                  
  background-color: transparent;
  z-index: 9999;                
}

#progressBar {
  height: 100%;
  width: 0;                     
  background-color: #FCC201;    
}

body {
  margin: 0;
  overflow-x: hidden;
  max-width:100%;
}

html {
  overflow-x: hidden;
  max-width:100%;
  scroll-padding-top: 30vh !important;
}

/* SPONSORS PAGE */

.sponsorbox-row {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.vertical-container {
  display: flex;
  flex-direction: column;
  margin:0;
}

.vertical-container .logo-box {
  display: flex;
  justify-content:center;
  width: 200px;
  min-height: 100px;
  margin: 20px 10px 0px 10px;
  border-color: #FCC201;
  border-style: solid;
  border-width: 10px 10px 2px 10px;
}

.logo-box .box-image {
  height: auto;
  width: auto;
  max-width: 180px;
  min-width: 30mm;
  padding:0 2px;
  object-fit: contain;
  flex-shrink: 0;
}

.vertical-container .text-box {
  width: 200px;
  margin: 0px 10px 10px 10px;
  padding: 10px;
  text-align:left;
  border-color: #FCC201;
  border-style: solid;
  border-width: 0px 10px 10px 10px;
  overflow: hidden;
}

/*Team members page*/
.members-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
  gap: 20px;
}

.members-img-textbox{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  box-sizing: border-box;
  flex-wrap: nowrap;
  min-width: 0;
}

.members-img{
  flex-shrink: 0;
  width: 250px;
  height: 298px;
  border: 5px solid #67011B;
  border-radius: 8px;
  object-fit: cover;
}

.textbox-members{
  flex: 0 0 253px;
  width: 220px;
  border: 5px solid #67011B;
  border-radius: 8px;
  padding: 20px;
  background-color: #FFFAEC;
  max-height: 298px;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  min-width: 0;
}

.textbox-members::-webkit-scrollbar{
  width: 0;
  height: 0;
}

.textbox-members h6{
  margin-bottom: 10px;
}

.toggle-input{
position: absolute;
opacity: 0;
width: 0;
height: 0;
pointer-events: none;
}

.image-wrapper {
  position: relative;
  display: block;
  cursor: pointer;
  flex-shrink: 0;
  width: 250px;
  height: 298px;
}

.image-wrapper .members-img{
  transition: opacity 0.3s ease;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 5px solid #67011B;
  border-radius: 8px;
  position: absolute;
  top: 0;
  left: 0;
}

.swapped-image-wrapper {
  text-align: center;
  margin-bottom: 10px;
}
.swapped-image{
  width: 100%;
  height: auto;
  border: 3px solid #67011B;
  border-radius: 6px;
}
.swapped-text {
  margin: 0;
}

.img-swapped{
  display: none;
}
.swapped-content{
  display: none;
}

.toggle-input:checked + label .img-default{
  display: none;
}
.toggle-input:checked + label .img-swapped{
  display: block;
}
.toggle-input:checked ~ .textbox-members .default-content{
  display: none;
}
.toggle-input:checked ~ .textbox-members .swapped-content{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.heading-container{
  position: relative;
}

@media (max-width: 520px){
  .members-img-textbox{
    flex-wrap: wrap;
    align-items: stretch;
  }

  .image-wrapper{
    width: 100%;
    height: auto;
    position: static;
  }

  .image-wrapper .members-img{
    position: static;
    width: 100%;
    height: auto;
    border: 5px solid #67011B;
    border-radius: 8px;
  }

  .textbox-members{
    flex: 1 1 100%;
    width: 100%;
    max-height: none;
    margin-top: 10px;
  }
}

.tempus-info{
  position: absolute;
  width: 250px;
  bottom: -50px;
  right: 0;
}

/*small laptops*/
@media (max-width: 992px) {
  .tempus-info{
    width: 180px;
    bottom: -38px;
    right: 0;
  }
}

/*tablets*/
@media (max-width: 768px){
  .tempus-info{
    width: 180px;
    bottom: 100px;
    right: 0;
  }
}

/*phones*/
@media (max-width: 576px){
  .tempus-info{
    width: 110px;
    bottom: -35px;
    right: 10px;
  }
}

.bacterium{
  color: #67011B;
}

/*Public communication*/
.communication-img{
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-height: 400px;
  max-width: 100%;
  height: auto;
  border: 5px solid #67011B;
  border-radius: 8px;
  float: none;
}

/*indented arrow*/
.indent-arrow{
  display:inline-block;
  margin-left:1.5rem;
}

/*DBTL pictures*/
.dbtl-img{
  width: 25%;
  height: auto;
  display: block;
  margin: 0.75rem auto;
  height: auto;
  border: 5px solid #67011B;
  border-radius: 8px;
}