/*-- Body Reset --*/
body {
  overflow-x: hidden;
  font-family: 'Inter', sans-serif;
  color: var(--dark);
  height: 100%;
  margin: 0;
}

html {
  height: 100%;
  margin: 0;
}

:root {
  --dark: #252323;
  --grey: #9FA4C4;
  --accent: #ADD7BF; 
  --highlight: #D6EBDF;
  --blue: #3652A0;
  --white: #FFFFFF;
  --dark-transparent: #2523239c;
  --white-transparent: #ffffffd8;
  --blue-transparent:  #3652a034;
  --accent-transparent: #add7bfd3;
}

p {

  word-wrap: break-word;      /* Internet Explorer */
  overflow-wrap: break-word;  /* CSS3 */
}

a {
  color: var(--blue);
}

a:hover {
  color: var(--accent);
}

/* Nav Styles*/

.font-nav {
  font-size: .95rem;
  font-weight: 400;
}

/* Remove the background color */
.navbar {
  background: var(--white);
  box-shadow: 0 .5rem .5rem rgba(0,0,0,.1);
}

nav .active {
  color: var(--blue)!important;
}

/* Define the link style */
.nav-link-underline {
  position: relative;
  text-decoration: none;
}

/* Create a pseudo-element for the underline */
.nav-link-underline::after {
  content: '';
  position: absolute;
  width: 0;
  height: 2px;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  transition: width .3s ease-in-out;
}

/* Extend the underline from left to right when hovering over a link */
.nav-link-underline:hover::after {
  width: 100%;
}

.btn-nav-md {
  font-size: 1.05rem;
  font-weight: 600;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white);
  border: none;
  padding-left: .8rem;
  padding-right: .8rem;
  border-radius: 2rem;
}

.btn-nav-sm {
  font-size: 1.05rem;
  font-weight: 600;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white);
  border: none;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  border-radius: 2rem;
}

.btn-nav-md:hover,
.btn-nav-md:active {
  background-image: linear-gradient(to bottom right, var(--accent), var(--blue));
  color: var(--white);
}

.btn-nav-sm:hover,
.btn-nav-sm:active {
  background-image: linear-gradient(to bottom right, var(--accent), var(--blue));
  color: var(--white);
}

nav .dropdown-menu {
  background-color: var(--accent);
  color: var(--white);
}

nav .dropdown-item:hover {
  background-color: var(--accent);
  color: var(--blue);
}

.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(54,82,160, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

.custom-toggler.navbar-toggler {
  border-color: var(--blue);
}

.navbar-toggler-icon:hover {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(54,82,160, 1)' stroke-width='3' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

.custom-toggler.navbar-toggler:focus,
.custom-toggler.navbar-toggler:active {
    outline: solid;
    outline-width: 2px;
    outline-color: var(--blue);
    box-shadow: none;
}

/* Index Header Styles */

.parallax-header {
  background-color: var(--accent);
  background-image: url("../img/Ship-and-Screen.png");
  height: 100%;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--white);
}

.header-bg {
  background-color: var(--accent);
  background-image: url("../img/Ship-and-Screen.png");
  background-size: cover;
  background-position: center;
  height: 100%;
}
.header-bg .row {
  padding-top: 75vh;
  align-items: center;
  text-align: center;
  align-content: center;
  align-self: center;
}

.page-header {
  background-color: var(--accent);
  color: black;
  font-size: 6vw; /* Responsive font size */
  font-weight: 700;
  margin: 0 auto; /* Center the text container */
  padding: 1rem;
  width: 60%;
  min-width: 360px;
  text-align: center; /* Center text */
  position: absolute; /* Position text */
  top: 40%; /* Position text in the middle */
  left: 50%; /* Position text in the middle */
  transform: translate(-50%, -50%); /* Position text in the middle */
  mix-blend-mode: lighten; /* This makes the cutout text possible */ 
  border-radius: 1vh; 
}

.page-header-md {
  background-color: var(--white-transparent);
  color: var(--blue);
  padding: .9rem;
  border-radius: 1vh; 
  box-shadow: .5rem .5rem .5rem rgba(0,0,0,.1);
  /* margin: auto;
  margin-top: 6rem; */
  max-width: 600px;
  text-align: center;
  position: absolute; /* Position text */
  top: 46%; /* Position text in the middle */
  left: 50%; /* Position text in the middle */
  width: 90%;
  transform: translate(-50%, -50%); /* Position text in the middle */
}

.page-header h1 {
  font-size: 6vw;
  font-weight: 800;
  text-transform: capitalize;
}

.page-header-md h1 {
  font-size: 2.1rem;
  font-weight: 800;
  text-transform: capitalize;
}

.page-header p {
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--white);
}

.page-header-md p {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--dark);
}

.btn-header {
  font-size: 2.2rem;
  font-weight: 600;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white);
  text-align: center; /* Center text */
  position: absolute; /* Position text */
  top: 75%; /* Position text in the middle */
  left: 50%; /* Position text in the middle */
  transform: translate(-50%, -50%); /* Position text in the middle */
  border: none;
  padding-left: 2rem;
  padding-right: 2rem;
  border-radius: 2rem;
}

.btn-header:hover,
.btn-header:active{
  font-weight: 800;
  background-image: none;
  background-color: var(--dark-transparent);
  border: solid;
  border-color: var(--white);
  border-width: 4px;
  color: var(--white);
}

.btn-header-md {
  font-size: 1.3rem;
  font-weight: 600;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white);
  text-align: center; /* Center text */
  border: none;
  padding-left: .9rem;
  padding-right: .9rem;
  border-radius: 2rem;
  margin: .8rem;
}

.btn-header-md:hover, 
.btn-header-md:active{
  border: solid;
  border-color: var(--white);
  border-width: 2px;
  color: var(--accent);
}

.btn-header-inverse {
  font-size: 2.2rem;
  font-weight: 400;
  background-color: none;
  color: var(--white);
  text-align: center; /* Center text */
  position: absolute; /* Position text */
  top: 85%; /* Position text in the middle */
  left: 50%; /* Position text in the middle */
  transform: translate(-50%, -50%); /* Position text in the middle */
  border: solid;
  border-color: var(--white);
  border-width: 2px;
  color: var(--white);
  padding-left: 2rem;
  padding-right: 2rem;
  border-radius: 2rem;
}

.btn-header-inverse-md {
  font-size: 1.3rem;
  font-weight: 400;
  background-color: none;
  color: var(--white);
  text-align: center; /* Center text */
  border: solid;
  border-color: var(--white);
  border-width: 2px;
  color: var(--white);
  padding-left: .9rem;
  padding-right: .9rem;
  border-radius: 2rem;
  margin: .8rem;
}

.btn-header-inverse-md:hover, 
.btn-header-inverse-md:active{
  border: solid;
  border-color: var(--accent);
  border-width: 2px;
  color: var(--accent);
}

/* Introduction Styles */

.introduction {
  font-size: 1.2rem;
  margin-left: 1rem;
  margin-right: 1rem;
}

.learn-more {
  /* min-height: 5rem; */
  background-position: center;
  background-image: url('../img/containers-top-view.png');
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: .3rem;
}

.learn-more h1 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--blue);
  padding: 2rem;
  margin: 1rem;
  background-color: var(--white-transparent);
  border-radius: .3rem;
  box-shadow: 4px 4px 10px var(--dark-transparent);
}

.learn-more h1:hover,
.learn-more h1:active {
  color: var(--dark);
}

.btn-header-inverse:hover,
.btn-header-inverse:active {
  font-weight: 600;
  background-image: none;
  background-color: var(--dark-transparent);
  border: solid;
  border-color: var(--white);
  border-width: 4px;
}

/* Why Join Styles */

.parallax {
  padding-top: 4rem;
  background-image: url("../img/harbour-background-dark.png");
  /* min-height: 400px; */
  height: 30rem;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.why-join-title {
  color: var(--white);
  font-size: 2.2rem;
  font-weight: 800;
}

.why-join-text {
  color: var(--white);
  font-size: 1.4rem;
  font-weight: 600;
}

.why-join-description {
  color: var(--white);
  font-size: 0.9rem;
  font-weight: 400;
}

.why-join-image {
  width: 7rem;
  height: 7rem;
}

.parallax-md {
  background-image: url("../img/harbour-background-dark.png");
  /* min-height: 400px; */
  height: 50rem;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.why-join-text.md {
  font-size: 1.2rem;
  font-weight: 600;
}

.why-join-description.md {
  font-size: 0.85rem;
  font-weight: 400;
}

.why-join-image.md {
  width: 4rem;
  height: 4rem;
}

/* Who Should Participate Styles */


.why-participate .carousel {
  width: 90%;
  margin: auto;
}

.carousel-img {
  border-radius: .2rem;
}

.why-participate p {
  font-size: 1.4rem;
}

/* Latest News */

.card-footer {
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white)!important;
  text-decoration: none;
  font-weight: 600;
}

.card-footer:hover, 
.card-footer:active{
  background-image: linear-gradient(to bottom right, var(--accent), var(--blue));
}

.card-body h2{
  font-size: 1.3rem;
  font-weight: 600!important;
}

.card-body h3{
  font-size: 1rem!important;
  font-weight: 300!important;
}

.card-body p {
  font-size: 1rem!important;
}

.news-img {
  border-top-left-radius: .3rem;
  border-top-right-radius: .3rem;
}

/* Leaderboard Styles */

.table-container {
  max-height: 70vh; /* Adjust this value to suit your needs */
  overflow-y: auto;
}

.table-container-sm {
  max-height: 75vh; /* Adjust this value to suit your needs */
  overflow-y: auto;
}

.table-container th,
.table-container-sm th {
  text-align: left;
  color: var(--dark);
  font-weight: 600;
  font-size: 1rem;
  padding-left: 1.2rem;
}

.table-container td,
.table-container-sm td {
  text-align: left;
  color: var(--dark);
  padding-left: 1.2rem;
  font-weight: 400;
  font-size: .9rem;
}

.table-container.company tr:nth-child(even), 
.table-container-sm.company tr:nth-child(even) {
  background-color: var(--highlight);
}

.table-container.individual tr:nth-child(even), 
.table-container-sm.individual tr:nth-child(even) {
  background-color: var(--blue-transparent);
}

.table-container table,
.table-container-sm table {
  border: none;
}

.table-container-sm th {
  font-size: .8rem;
  padding-left: .5rem;
}

.table-container-sm td {
  padding-left: .5rem;
  font-size: .65rem;
}

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
  bottom: 5px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--accent);
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  transition: .4s;
}

input:checked + .slider {
  background-color: var(--blue-transparent);
}

input:checked + .slider:before {
  transform: translateX(26px);
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.leaderboard-switch {
  font-size: 1.3rem;
  padding-right: 1rem;
}

.leaderboard-name {
  padding-top: 1.5rem;
  font-size: 1.3rem;
  font-weight: 600;
}

/* Schedule Styles */

.schedule h2 {
	font-size: 1.3rem;
	margin-bottom: .3em;
}

.schedule p {
	font-size: .8rem;
}

.schedule .container {
	max-width: 1024px;
	width: 90%;
	margin: 0 auto;
}

.schedule .timeline-item {
	padding: 2.5em 2em 1em;
	position: relative;
	color: rgba(0, 0, 0, .7);
	border-left: 2px solid rgba(0, 0, 0, .3);
}

.schedule .timeline-item p {
	font-size: 1rem;
}

.schedule .timeline-item::before {
	content: attr(date-is);
	position: absolute;
	left: 2em;
	font-weight: bold;
	top: 1em;
	display: block;
	font-weight: 700;
	font-size: .785rem;
}

.schedule .timeline-item::after {
	width: 10px;
	height: 10px;
	display: block;
	top: 1em;
	position: absolute;
	left: -6px;
	border-radius: 10px;
	content: '';
	border: 2px solid rgba(0, 0, 0, .3);
	background: white;
}

.schedule .timeline-item:last-child {
	border-image: linear-gradient(
		to bottom,
		rgba(0, 0, 0, .3) 60%,
		rgba(0, 0, 0, 0)) 1 100%
	;
}

/* Sponsor Styles */

.sponsor-image {
  width: 100%;
  max-width: 250px;
  height: 75%;
  object-fit: contain;
}

.sponsor-image:hover {
  opacity: 0.75;
}

.sponsor-modal {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  width: 100%;
  max-width: 250px;
  height: 75%;
  object-fit: contain;
}

.sponsor-modal:hover {
  opacity: 0.75;
}

/* FAQ Styles */

.accordion-body p {
  font-size: 1rem;
}

.accordion-img {
  width: 100%;
  max-width: 750px;
  height: 100%;
  object-fit: contain;
}

/* Contact Styles */

.contact-map {
  width: 100%;
  min-height: 300px;
  height: 100%;
  object-fit: contain;
}

/* Resources */

.contents {
  position: sticky;
  top: 100px; /* Adjust this value to the height of your navbar */
  padding-top: 50px;
  padding-bottom: 50px;
}

.contents p {
  font-weight: 500;
}

.contents .nav-link {
  text-decoration: none;
  color: inherit;
  font-size: .9rem;
  font-weight: 400;
}

.contents .nav-link::before {
  content: "";
  border-left: 1px solid var(--dark-transparent); /* Change color as needed */
  height: 100%;
  position: absolute;
  left: 0;
}

.contents .nav-link.active::before,
.contents .nav-link.hover::before {
  content: "";
  border-left: 1px solid var(--accent); /* Change color as needed */
  height: 100%;
  position: absolute;
  left: 0;
}

.contents .nav-link {
  position: relative;
  padding-left: 15px;
}

.contents .nav-link.active,
.contents .nav-link:hover {
  color: var(--accent); /* or any other styles you want */
  font-weight: 500;
}

.section-title::before {
  content: "";
  display: block;
  height: 75px; /* height of your navbar */
  margin: -75px 0 0; /* negative value of navbar height */
  visibility: hidden;
}

.section::before {
  content: "";
  display: block;
  height: 75px; /* height of your navbar */
  margin: -75px 0 0; /* negative value of navbar height */
  visibility: hidden;
}

h2.section {
  color: var(--accent);
  font-size: 1.4rem;
  font-weight: 600;
}

h3.section {
  color: var(--accent);
  font-size: 1.2rem;
  font-weight: 600;
}

h4.section {
  color: var(--accent);
  font-size: 1.1rem;
  font-weight: 600;
}

.resources p {
  font-size: 1rem;
}

.flow-box {
  background-color: var(--highlight);
  padding: 10px;
  margin: 10px;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
}

.green {
  color: green;
}

.red {
  color: red;
}

/* Terminology */

#alphabet {
  display: flex;
  flex-direction: row;
  /* margin-right: 20px; */
}

#alphabet a {
  text-decoration: none;
  color: black;
  margin-bottom: 5px;
  margin-right: auto;
}

#alphabet a.selected {
  font-weight: bold;
  color: var(--accent);
  text-decoration: underline;
}

.term {
  margin-bottom: 10px;
  padding: 10px;
  background-color: #f0f0f0;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
}

/* Esunny User Guide */

ol.esunny {
  list-style: none;
  counter-reset: list-counter;
}

ol.esunny li {
  counter-increment: list-counter;
  position: relative;
}

ol.esunny li::before {
  content: counter(list-counter);
  position: absolute;
  background-color: var(--blue);
  color: var(--white);
  border-radius: 50%;
  left: -2.5em; /* Adjusted to accommodate larger circle */
  width: 2em; /* Increased size of circle */
  height: 2em; /* Increased size of circle */
  text-align: center;
  padding: 0.2em;
  line-height: 1.7em; /* Adjusted to match height for vertical centering */
  font-size: 0.8em; /* Adjusted to fit two digits */
}

ol.esunny img {
  border-radius: .3rem;
  border-color: var(--dark-transparent);
  border-width: 1px;
  border-style: solid;
  box-shadow: 2px 2px 7px var(--dark-transparent);
}

/* Footer Styles */

footer {
  padding: 4rem;
}

.footer-competition {
  margin-bottom: 0;
  padding: .5rem;
}

.terms {
  margin-top: 1rem;
  font-size: smaller;
  font-weight: 200;
}

.terms a:hover {
  color: var(--blue)!important;
}

.footer-bands {
  margin-top: 0;
}

.footer-title {
  font-size: 1.3rem;
  line-height: 1.3;
  color: var(--accent);
}

footer li {
  margin-bottom: 0.5rem;
  font-weight: 200;
}

.footer-text:hover {
  color: var(--accent);
}

.social {
  color: var(--white);
  display: inline-block; /* Ensures the icon is treated as a block element */
  width: 40px; /* Set the desired width (adjust as needed) */
  height: 40px; /* Set the same height as width for a perfect circle */
  border-radius: 50%; /* Makes the element circular */
  border-color: var(--white);
  border-style: solid;
  border-width: 1px;
  text-align: center; /* Center the icon horizontally */
  line-height: 40px; /* Vertically center the icon */
  margin-right: 0.5rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.social:hover {
  color: var(--accent);
  display: inline-block; /* Ensures the icon is treated as a block element */
  width: 40px; /* Set the desired width (adjust as needed) */
  height: 40px; /* Set the same height as width for a perfect circle */
  border-radius: 50%; /* Makes the element circular */
  border-color: var(--accent);
  border-style: solid;
  border-width: 1px;
  text-align: center; /* Center the icon horizontally */
  line-height: 40px; /* Vertically center the icon */
  margin-right: 0.5rem;
}

.copyright {
  font-size: smaller;
  font-weight: 200;
}

@keyframes scroll-down {
  0% {
    /* top:20%; */
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    top: 90%;
    opacity: 0;
  }
}

/* Disclaimer */

.disclaimer-list,
.disclaimer-list h2 {
  font-size: 1.3rem;
  font-weight: 500;
}

.disclaimer-list-inner {
  font-size: 1rem;
  font-weight: 400;
}

.competition-terms h2 {
  font-size: 1.4rem;
  font-weight: 500;
}

.competition-terms h3 {
  font-size: 1.2rem;
  font-weight: 500;
}

.competition-terms p {
  font-size: 1rem;
  font-weight: 400;
}

/* General Styles */

p {
  font-size: 1.2rem;
}

.link-no-decoration {
  text-decoration: none;
  color: inherit;
}

.list-no-decoration {
  list-style-type: none;
}

.noindent {
  margin-left: 0;
  padding-left: 0;
}

.section-title {
  color: var(--accent);
  font-size: 2.2rem;
  font-weight: 800;
}

.white-space-top {
  margin-top: 10vh;
}

#cookie-banner {
  position: fixed;
  bottom: 10%;
  width: 40%;
  left: 30%;
  padding: 20px;
  background-color: var(--white);
  background-image: linear-gradient(to bottom right, var(--white-transparent), var(--accent-transparent));
  box-shadow: .5rem .5rem .5rem rgba(0,0,0,.1);
  text-align: center;
  z-index: 10000;
  display: none; /* Hidden by default */
  border-radius: .2rem;
}

@media (max-width: 992px) {
  #cookie-banner {
    position: fixed;
    bottom: auto;
    top: 40%;
    width: 90%;
    left: 5%;
  } 
}

h1.cookie {
  font-weight: 600;
  font-size: 1.2rem!important;
  color: var(--blue);
}

p.cookie {
  font-weight: 300;
  font-size: .9rem!important;
}

.btn-cookies-accept {
  margin-left: .3rem;
  margin-right: .3rem;
  background-color: var(--blue);
  color: var(--white);
}

.btn-cookies-reject {
  margin-left: .3rem;
  margin-right: .3rem;
  background-color: var(--white);
}

.btn-cookies-settings {
  margin-left: .3rem;
  margin-right: .3rem;
  background-color: var(--white);
}

.btn-cookies-accept:hover,
.btn-cookies-accept:active,
.btn-cookies-reject:hover,
.btn-cookies-reject:active,
.btn-cookies-settings:hover,
.btn-cookies-settings:active {
  background-color: var(--blue);
  color: var(--accent);
  box-shadow: .1rem .1rem .1rem rgba(0,0,0,.1);
}

.btn-cookies {
  font-size: 1.2rem;
  font-weight: 600;
  background-image: linear-gradient(to bottom right, var(--blue), var(--accent));
  color: var(--white);
  text-align: center; /* Center text */
  border: none;
  margin-bottom: 1rem;
  padding-left: 2rem;
  padding-right: 2rem;
  border-radius: 2rem;
}

.btn-cookies:hover,
.btn-cookies:active{
  background-image: linear-gradient(to bottom right, var(--accent), var(--blue));
  color: var(--white);
}

@counter-style paren-lower-alpha {
  system: extends lower-alpha;
  suffix: ") ";
}

[type="a"] {
  list-style: paren-lower-alpha;
}

/* Colour Schemes */

.bg-dark {
  background-color: var(--blue)!important;
  color: var(--white)! important;
}

.bg-highlight {
  background-color: var(--highlight)!important;
  color: var(--white);
}

.bg-accent {
  background-color: var(--accent);
  color: var(--dark);
}

.bg-none {
  background-color: none!important;
  color: var(--dark);
}

/* Javascript Functionality: Leaderboard */

.btn.active {
  background-color: var(--highlight)!important; /* Change to your desired active button color */
  color: var(--white)!important;
  border: none;
}

