/* CSS Document */

:root {
	--cerulean: #14b4eb;
	--accordian-border: #e7f1ff;
	--dark-accordian-border: #2371b0;
	--dark-bg-color: #333;
	--dark-bg-secondary-color: #111;
	--dark-bg-tertiary-color: #222;
	--dark-text-color: #ccc;
	--light-bg-color: #fff;
	--light-bg-secondary-color: #f8f9fa;
	--light-text-color: #212529;
	--light-text-muted: rgba(33, 37, 41, 0.75);
}

html {
	scroll-padding-top: 100px; /* Prevents anchor links being slightly off and covered up by the fixed navbar */
}

body {
	padding-top: 70px;
	font-family: 'PT Serif', serif !important;
}

footer {
	margin-top: 4em;
}

h1, h2, h3, h4, h5, h6, h7, h8 {
	font-family: 'PT Sans', sans-serif !important;
}

.scrolled-down{
  transform:translateY(-100%); transition: all 0.3s ease-in-out;
}
.scrolled-up{
  transform:translateY(0); transition: all 0.3s ease-in-out;
}

.navbar {
	font-family:'PT Sans' !important;
	font-variant: small-caps !important;

}

.navbar-brand:hover {
	filter: brightness(75%);
	transition: 0.5s ease-in-out;
}

#lantern-logo {
	max-width:25%;
}

#homepage-cover {
	max-width: 750px;
	max-height: 75em;
	overflow: hidden;
}

.visualization {
	background-color: DimGray !important;
	border-radius: 5px;
	width: 100%;
	margin-bottom: 2rem;
	max-height: 75vh;
	overflow: hidden;
	
}

/* The following declarations are for the Slick.js visualization divs */

.visualization img {
	width: 75%;
	padding-bottom: 1rem;
	transition: 0.3s;
}

.visualization img:hover {
	width: 80%;
}

.visualization .panel-heading {
	background-color: var(--cerulean) !important;
	color: white;
	margin-bottom: 2rem;
	border-radius: 5px;
	width: 100%;
}

.visualization .panel-heading .panel-title {
	padding: 0.75rem;
	text-align: center;
}

.slick-prev {
	transform: translate(75%, 0) !important;
	left: 0px !important;
	z-index: 1;
}

.slick-next {
	transform: translate(-75%, 0) !important;
	right: 0px !important;
	z-index: 1;
}

.slick-slide, .slick-slide, .slick-track {
	margin: auto !important;
}

.slick-caption {
	display: inline-block;
	font-size: 1em;
	max-width: 75%;
	text-align: center;
	margin-bottom: 1rem;
	padding-bottom: 2rem;
	/* This code is used to prevent long titles from really messing up the flow. It limits the max-height of the caption element and specifies and any overflowing text should be replaced with an ellipsis */
	line-height: 1em !important;
	max-height: 5em !important;
	-webkit-box-orient: vertical;
	display: -webkit-box;
	overflow: hidden !important;
	text-overflow: ellipsis;
	-webkit-line-clamp: 5 !important;
	
}

.slick-caption a {
	text-decoration: none !important;
	color: white !important;
	transition: 0.3s;
}

.slick-caption a:hover {
	color: var(--cerulean) !important;
}

/* Prevent the size of the slick.js visualizer jumping around while images load, and makes sure it stays reasonable on the page */
.slick-slider {
	min-height: 250px;
	max-height: 75vh;
}

/* Add basic zebra striping to accordian items */

.accordian {
	border: 4px solid var(--accordian-border);
}

.accordian-header {
	margin-bottom: 0 !important;
}

.accordian-item {
	scroll-margin-top: 6rem; /* Prevents items from being hidden under the navbar when scrolled to via an anchor link*/
}

.accordian-item:nth-child(odd) .accordion-button.collapsed {
	background-color: var(--accordian-border) !important;
}


/* Display opened accordion items with a cerulean header: */

.accordion-button:not(.collapsed) {
	background-color: var(--cerulean) !important;
	color: white !important;
}




/* styles for the publications.php page */
.publication-description {
	line-height: 1em !important;
	max-height: 7em !important;
	line-clamp: 7 !important;
	-webkit-line-clamp: 7 !important;
	-webkit-box-orient: vertical;
	display: inline-block;
	display: -webkit-box;
	overflow: hidden !important;
	text-overflow: ellipsis;
	
}


/* handling for dark mode / light mode */

@media (prefers-color-scheme: dark) {
	body {
		background-color: var(--dark-bg-color);
		color: var(--dark-text-color);
		transition: all 0.5s ease-in-out;
	}

	footer {
		background-color: var(--dark-bg-secondary-color) !important;
		color: var(--dark-text-color) !important;
		transition: all 0.25s ease-in-out;
	}

	a {
		color: var(--cerulean);
		transition: all 0.3s ease-in-out;
	}

	#light-navbar-brand {
		display: none;
		transition: all 0.3s ease-in-out;
	}

	#dark-navbar-brand {
		display: inline-block;
		transition: all 0.3s ease-in-out;
	}

	#light-landing-logo {
		display: none;
		transition: all 0.3s ease-in-out;
	}

	#dark-landing-logo {
		display: block;
		transition: all 0.3s ease-in-out;
	}

	.accordian {
		border: 4px solid var(--dark-accordian-border);
		transition: all 0.25s ease-in-out;
	}

	.accordian-body table {
		color: var(--dark-text-color) !important;
		background-color: var(--dark-bg-tertiary-color) !important;
	}

	.accordian-item:nth-child(odd) .accordion-button.collapsed {
		background-color: var(--dark-accordian-border) !important;
	}

	.accordian-item:nth-child(even) .accordion-button.collapsed {
		background-color: var(--dark-bg-tertiary-color) !important;
	}

	.accordian-header button {
		color: var(--dark-text-color) !important;
	}

	body.light-theme {
		background-color: var(--light-bg-color);
		color: var(--light-text-color);
	}

	footer.light-theme {
		background-color: var(--light-bg-secondary-color) !important;
		color: var(--light-text-muted) !important;
	}

	#light-navbar-brand.light-theme {
		display: inline-block;
	}

	#dark-navbar-brand.light-theme {
		display: none;
	}

	#light-landing-logo.light-theme {
		display: block;
	}

	#dark-landing-logo.light-theme {
		display: none;
	}

	.accordian.light-theme {
		border: 4px solid var(--accordian-border);
	}

	.accordian-item.light-theme:nth-child(odd) .accordion-button.collapsed {
		background-color: var(--accordian-border) !important;
	}

	.accordian-item.light-theme:nth-child(even) .accordion-button.collapsed {
		background-color: var(--light-bg-color) !important;
	}

	.accordian-header.light-theme button {
		color: var(--light-text-color) !important;
	}
}

@media (prefers-color-scheme: light) {
	body {
		background-color: var(--light-bg-color);
		color: var(--light-text-color);
	}

	footer {
		background-color: var(--light-bg-secondary-color) !important;
		color: var(--light-text-color) !important;
	}

	#light-navbar-brand {
		display: inline-block;
	}

	#dark-navbar-brand {
		display: none;
	}

	#light-landing-logo {
		display: block;
	}

	#dark-landing-logo {
		display: none;
	}

	body.dark-theme {
		background-color: var(--dark-bg-color);
		color: var(--dark-text-color);
	}

	footer.dark-theme {
		background-color: var(--dark-bg-secondary-color) !important;
		color: var(--dark-text-color) !important;
	}

	a.dark-theme {
		color: var(--cerulean);
	}

	#light-navbar-brand.dark-theme {
		display: none;
	}

	#dark-navbar-brand.dark-theme {
		display: inline-block;
	}

	#light-landing-logo.dark-theme {
		display: none;
	}

	#dark-landing-logo.dark-theme {
		display: block;
	}

	.accordian.dark-theme {
		border: 4px solid var(--dark-accordian-border);
	}

	.accordian-body.dark-theme table {
		color: var(--dark-text-color) !important;
		background-color: var(--dark-bg-tertiary-color) !important;
	}

	.accordian-item.dark-theme:nth-child(odd) .accordion-button.collapsed {
		background-color: var(--dark-accordian-border) !important;
	}

	.accordian-item.dark-theme:nth-child(even) .accordion-button.collapsed {
		background-color: var(--dark-bg-tertiary-color) !important;
	}

	.accordian-header.dark-theme button {
		color: var(--dark-text-color) !important;
	}
}