:root {
	--main: #ccc;
	--accent: #167279;
	--highlight: #f3643a;
	--background: #999;
	--warn: #ffff00;
	--error: #ff0000;
	--admin: #ff0000;
	--light: #ffffff;
	--dark: #000000;
	--sheer: rgba(0, 0, 0, 0.8);
}

.color-admin {
	color: var(--admin) !important;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	color: var(--dark);
	font-family: 'Roboto', sans-serif;
	-webkit-font-smoothing: antialiased;
}

html {
	background: var(--main);
	color: var(--light);
	width: 100vw;
	min-height: 100vh;
	overflow-x: hidden;
}

table {
	border-collapse: collapse; /* Ensures borders collapse into one */
	width: 100%;
}

th {
	border: 0.25vh solid var(--light);
	padding: 1vh;
	font-size: 2.5vh;
}

tr {

}

td {
    border: 0.25vh solid var(--light);
    padding: 1vh;
}


body {
	width: 100vw;
	min-height: 100vh;
}

header {
	height: 10vh;
	background-color: var(--light);
	position: sticky;
	top: 0;
	z-index: 9999;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

header * {
	text-decoration: none;
}

.header-image {
	height: 100%;
}

.site-title {
	color: var(--dark);
}

h1 {
	font-size: 4vh;
}

h2 {
	font-size: 2.5vh;
}

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

.center-block {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.center-vertical {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.flex {
	display: flex;
	flex-direction: row;
}

.highlight {
	color: var(--highlight);
}

.accent {
	color: var(--accent);
}

.card {
	display: flex;
	flex-direction: column;
	gap: 2vh;
	align-items: stretch;
	justify-content: center;
	padding: 2vh 2vh;
	border-radius: 1vh;
	background: var(--dark);
	color: var(--light);
	border: 0.25vh solid var(--light);
	text-decoration: none;
	width: fit-content;
	height: fit-content;	
	transition-duration: 0.3s;
}

a.card:hover {
	border-color: var(--highlight); /* or any color you want */
}

.card * {
	color: var(--light);
}

.drop-zone {
	border: 0.3vh dashed var(--light);
	padding: 5vh 2vw;
	border-radius: 1vh;
	text-align: center;
	color: var(--light);
	cursor: pointer;
	transition: all 0.3s ease;
}

.drop-zone.hover {
	background-color: rgba(255, 255, 255, 0.1);
	border-color: var(--highlight);
}

.full-width {
	width: 100%;
}

.full-height {
	height: 100%;
}

#chat-box {
	height: 50vh;
	display: flex;
	flex-direction: column;
	gap: 1vh;
}


#chat-form {
	display: flex;
	flex-direction: row;
}

form {
	display: flex;
	flex-direction: column;
	gap: 2vh;
}

.together {
	display: flex;
	align-items: center;
	height: 10vh;
	padding: 2vh;
	gap: 2vh;
}

nav.main-nav {
	display: flex;
	align-items: stretch;
	gap: 2vw;
	height: 100%;
}

.main-logo {
	width: 16vw;
	padding: 2vh;
}

.spacer {
	height: 2vh;
}

.big-spacer {
	height: 20vh;
}

.dark {
	background: var(--dark);
}

.sheer {
	background: var(--sheer);
}

.error {
	color: var(--error);
}

.dropdown {
	position: relative;
	display: inline-block;
	height: 100%;

	cursor: pointer;
	transition: all 0.3s ease;
}

.dropdown:hover {
	background-color: var(--background);
}

.dropdown a {
	font-size: 1.25vw;
	cursor: pointer;
	text-decoration: none;
	color: var(--dark);
	transition: all 0.3s ease;

	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 1vw;
}

.dropdown a:hover {
	color: red;
}

.dropdown-content {
	display: none;
	position: absolute;
	z-index: 1000;
	width: 100%;
	cursor: pointer;
	background-color: var(--light);
	flex-direction: column;
	left: 0;
	text-align: center;
	top: 10vh;
}

.dropdown-content a {
	border-top: 0.25vh solid var(--accent);
	padding: 1vh 1vw;
	text-decoration: none;
	display: block;
	font-size: 1vw;
	color: var(--dark);
}

.dropdown-content a:hover {
	color: var(--highlight);
}

.dropdown:hover .dropdown-content {
	display: block;
}

.content, .section {
	padding: 4vh 20vw;
	width: 100vw;
	background-color: var(--main);
}

.parallax {
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	
	height: 50vh;
}

.grid-two {
	display: grid;
	grid-template-columns: repeat(2, 1fr); /* 4 items per row */
	gap: 2vh;
}

.grid-four {
	display: grid;
	grid-template-columns: repeat(4, 1fr); /* 4 items per row */
	gap: 2vh;
}

.headshot {
	max-width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 0.5vh;
}

.margin-left {
	width: 20vw;
	height: 90vh;
	padding: 2vh;
	position: absolute;
	top: 10vh;
	left: 0;
}

.margin-right {
	width: 20vw;
	height: 90vh;
	padding: 2vh;
	position: absolute;
	top: 10vh;
	right: 0;
}

footer {
	background: var(--accent);
	color: var(--light);
	padding: 20vh 4vw;
	text-align: center;
	display: block;
}

footer a, footer p {
	color: var(--light);
	text-decoration: none;
	transition-duration: 0.3s;
}

footer a:hover {
	color: var(--highlight);
}

a {
	text-decoration: none;
	cursor: pointer;
	transition-duration: 0.3s;
}

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

p,
label,
input,
textarea,
select,
option,
button {
	font-family: Arial, Helvetica, sans-serif;
	font-size: large;
	line-height: 1.5;
}

.zoomable {
	font-size: large !important;
}

input,
textarea,
select,
option {
	width: 100%;
	padding: 1vh;
	border-radius: 0.5vh;
	color: var(--dark) !important;
	background: var(--light) !important;
}

textarea,
select,
option {
	color: var(--dark) !important;
}

input[type=submit],
.button,
button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1vh 2vh;
	border-radius: 1vh;
	background: var(--dark);
	color: var(--light);
	border: 0.25vh solid var(--accent);
	font-size: 2vh;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.3s ease;
	width: fit-content;
	height: fit-content;
}

input[type=submit]:hover,
.button:hover,
button:hover {
	color: var(--highlight);
	border-color: var(--highlight);
}

::-webkit-scrollbar {
	width: 0.5vw;
}

::-webkit-scrollbar-track {
	background: var(--background);
}

::-webkit-scrollbar-thumb {
	background: var(--accent);
}

::-webkit-scrollbar-thumb:hover {
	background: var(--highlight);
}

.hidden {
	display: none !important;
}

#hamburger {
	filter: invert(0);
	cursor: pointer;
}

.portrait .flex-row {
	display: flex;
	flex-direction: row;
	height: 4vh;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
}

.portrait .flex-row a {
	flex: 1;
	display: block;
	margin: auto;
}

#portrait-nav {
	position: fixed;
	top: 8vh;
	padding: 2vh;
	width: 100vw;
	background: var(--background);
	left: -100%; /* Start off-screen */
	transition: left 0.3s ease;
	height: 92vh;
}

.slide-in {
	left: 0 !important;
}

.spin-animation {
	animation: spin 0.4s ease;
}

@keyframes spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(180deg); }
}
