﻿/* variables */
:root {
	
    /* browns */
	--bg-color: rgb(240, 234, 210); /* very pale brown */
	--bg-color-nav: rgb(225, 219, 195); /* slightly darker pale brown */
	--bg-color-focus: rgb(153, 129, 112); /* low saturation brown */
	--bg-color-border: rgba(153, 129, 112, 0.15); /* semi-transparent low saturation brown */
	--bg-color-hover: rgb(189, 160, 137); /* medium saturation brown */

	/* greens */
	--content-bg-color-primary: rgb(186, 213, 91); /* rgb(162, 186, 78); */
	--content-bg-color-primary-focus: rgb(221, 229, 182);
	--content-bg-color-primary-hover: rgb(173, 193, 120);

	/* pinks */
	--content-bg-color-secondary: rgb(149, 112, 83);
	--content-bg-color-secondary-focus: rgb(108, 88, 76);
	--content-bg-color-secondary-hover: rgb(169, 132, 103);

	--field-color-focus: Gold;
	--field-color-info: LightSteelBlue;
	--field-color-success: LimeGreen;
	--field-color-warning: DarkOrange;
	--field-color-danger: FireBrick;

	--text-color-primary: Black;
	--text-color-secondary: White;

	--nav-text-size-desktop: 14pt;
	--nav-text-size-mobile-xl: 22pt;
	--nav-text-size-mobile: 18pt;

	--text-size-desktop: 18pt;
	--text-size-tablet: 16pt;
	--text-size-tablet-portrait: 14pt;
	--text-size-mobile: 16pt;
}

/* base */

html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, nav, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, output, ruby,
section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	background-color: inherit;
	color: var(--text-color-primary); 
	font-family: Arial, Tahoma, Verdana, sans-serif;
	vertical-align: baseline;
	text-decoration: none;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, section {
	display: block;
}

body {
	line-height: 1;
}

body {
	-webkit-text-size-adjust: none;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

html {
	box-sizing: border-box;
}

body.is-preload *, body.is-preload *:before, body.is-preload *:after {
	-moz-animation: none !important;
	-webkit-animation: none !important;
	-ms-animation: none !important;
	animation: none !important;
	-moz-transition: none !important;
	-webkit-transition: none !important;
	-ms-transition: none !important;
	transition: none !important;
}


/* base case and defaults for screen sized based styles */
body {
	overflow-y: scroll;
}

body, input, textarea, select {
	font-weight: 300;
	color: var(--text-color-primary);
	font-size: var(--text-size-desktop);
	line-height: 1.75em;
	border-radius:0.25em;
}

/* screen size dependent case overrides */

@media screen and (max-width: 1280px) {

	body, input, textarea, select {
		font-size: var(--text-size-tablet);
	}
}

@media screen and (max-width: 736px) {

	body, input, textarea, select {
		font-size: var(--text-size-tablet-portrait);
	}
}

@media screen and (max-width: 480px) {

	body, input, textarea, select {
		font-size: var(--text-size-tablet-mobile);
	}
}


/* text defaults */
p, strong, b, h2, h3, h4, h5, h6 {
	font-weight: 400;
	color: var(--text-color-primary);
	max-width: 100%;
}

h1 {
	font-weight: 500;
	font-size: 2em;
	letter-spacing: -0.015em;
}

h2 {
	font-size: 1.5em;
	letter-spacing: -0.015em;
}

h3, h4, h5, h6 {
	font-size: 1.25em;
	letter-spacing: -0.015em;
}

/* screen size text overrides */
@media screen and (max-width: 736px) { /* var(--text-size-tablet-portrait) */

	h1 {
		margin-top: 0.5em;
		margin-bottom: 0.5em;
		font-size: 1.75em;
	}

	h2 {
		margin-top: 0.4em;
		margin-bottom: 0.4em;
		font-size: 1.375em;
	}

	h3, h4, h5, h6 {
		margin-top: 0.3em;
		margin-bottom: 0.3em;
		font-size: 1em;
	}

}

blockquote {
	border-left: solid 0.5em #ddd;
	padding: 1em 0 1em 2em;
	font-style: italic;
}

em, i {
	font-style: italic;
}

hr {
	border: 0;
	border-top: solid 1px #ddd;
	padding: 1.5em 0 0 0;
	margin: 1.75em 0 0 0;
}

sub {
	position: relative;
	top: 0.5em;
	font-size: 0.8em;
}

sup {
	position: relative;
	top: -0.5em;
	font-size: 0.8em;
}

br.clear {
	clear: both;
}

p, ul, ol, dl, table, blockquote, form {
	margin-bottom: 0.2em;
}


/* basic body format */
body {
	display: block;
	width: 100%; /* never exceed the viewport width */
	min-height: 100vh; /* always fill the screen vertically */
	background-image: linear-gradient(to bottom right, var(--bg-color), var(--bg-color-focus));
	background-size: 110% 110%; /* sizing is weird. This ensures the gradient doesn't suddenly end within view.*/
}
	/* 
	 * Override for narrow screen size
	 * We increase the nav bar to fill the screen, putting content below it. 
	*/
	@media screen and (max-width: 480px) {
		body {
			width: 480px;
		}
	}
	@media screen and (max-width: 360px) {
		body {
			width: 360px;
		}
	}


#body-pane {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	align-items: flex-start;
	justify-content: flex-start;
	padding-top: 12px;
}
	/* 
	 * Override for narrow screen size
	 * We increase the nav bar to fill the screen, putting content below it. 
	*/
	@media screen and (max-width: 480px) {
		#body-pane {
			flex-direction: column;
			width: 480px;
		}
	}
	@media screen and (max-width: 360px) {
		#body-pane {
			flex-direction: column;
			width: 360px;
		}
	}


/* Vertical Nav */
#nav-pane {
	display: flex;
	padding-right: 12px;
	width: 256px; /* default nav width */
	flex-wrap: wrap;
    flex-direction: column;
    align-content: flex-start;
    justify-content: center;
	align-items: stretch;
	text-align: center;
	cursor: default;
	font-size: var(--nav-text-size-desktop);
}

	#nav-pane a {
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		align-content: center;
		justify-content: center;
		align-items: stretch;
		text-align: center;
		cursor: default;

		-moz-transition: background-color .25s ease-in-out;
		-webkit-transition: background-color .25s ease-in-out;
		-ms-transition: background-color .25s ease-in-out;
		transition: background-color .25s ease-in-out;
	}

	
		#nav-pane a:hover {
			background-color: var(--bg-color-hover);
		}

		#nav-pane a.selected {
			background-color: var(--bg-color-focus);
		}
	
#nav-title {
	border-radius: 5px;
	border: 3.5px solid Black;
	padding: 10px;
	background-color: var(--bg-color-nav);

}
#logo-text {
	background-color: inherit;
}

#nav-tray {
	margin-right: 24px;
	margin-left: 13.5px;
	border: 3.5px solid Black;
	border-bottom: none;
	border-top: none;
	background-color: var(--bg-color-nav);
}
	
	#nav-tray > a {
		padding-top: 0.15em;
		padding-bottom: 0.3em;
		font-size: 1.35em;
		border-bottom: solid 3px var(--text-color-primary);
	}
	#nav-tray > #last {
		border-bottom: none;
	}
	
#nav-bottom {
	display: flex;
	justify-content: center;
	margin-right: 24px;
	margin-left: 13.5px;
	border-top: 3.5px solid Black;
}

	/* 
	 * Override for narrow screen size
	 */
	@media screen and (max-width: 480px) { /* var(--breakpoint-width-mobile-xl) */
		#nav-pane {
			width: 480px;
			padding-right: 0px;
			font-size: var(--nav-text-size-mobile-xl);
		}
		#logo-top {
			margin-left: 5px;
			width: 455px;
		}
		#nav-title {
			height: 64px;
			border: 4.5px solid Black;
			margin-left: 8px;
		}
		#logo-text {
			height: 58px;
		}
		#nav-tray {
			border: 4.5px solid Black;
			border-bottom: none;
			border-top: none;
			margin-left: 30px;
			width: 378px;
		}
		#nav-bottom {
			border-top: 4.5px solid Black;
			margin-left: 30px;
			width: 386px;
		}
		#logo-bottom {
			width: 146px;
		}
	}

	/* 
	 * Override for narrower screen size
	 */
	@media screen and (max-width: 360px) { /* var(--breakpoint-width-mobile) */
		#nav-pane {
			width: 360px;
			margin-right: 0px;
			font-size: var(--nav-text-size-mobile);
		}
		#logo-top {
			width: 335px;
		}
		#nav-tray {
			width: 278px;
		}
		#nav-bottom {
			margin-left: 30px;
			width: 286px;
		}
		#logo-bottom {
			width: 110px;
		}
	}

/* content panel */
#content-pane {
	display:block;
	flex-grow: 1;
	align-content: flex-start;
	align-items: stretch;
}

	/* 
	 * Override for narrower screen size
	 */
	@media screen and (max-width: 480px) { /* var(--breakpoint-width-mobile) */
		#content-pane {
			width: 480px;
		}
	}
	@media screen and (max-width: 360px) { /* var(--breakpoint-width-mobile) */
		#content-pane {
			width: 360px;
		}
	}

#banner {
	display: flex;
	flex-wrap: wrap;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: stretch;
    text-align: center;
}

#footer-pane {
	display:flex;
	flex-wrap: wrap;
	flex-direction: column;
}

#cover {
	width:100%;
}
	/* 
	 * Override for narrow screen size
	 */
	@media screen and (max-width: 480px) { /* var(--breakpoint-width-mobile-xl) */
		#cover {
			width: 456px; /* 480 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px; 
		}
	}

	@media screen and (max-width: 360px) { /* var(--breakpoint-width-mobile) */
		#cover {
			width: 336px; /* 360 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px;
		}
	}

.content {
	display:flex;
	flex-wrap: wrap;
	flex-grow: 1;
	flex-direction: column;
	align-content: stretch;
	justify-content: flex-start;
	align-items: stretch;

	border-radius: 5px 5px 0px 0px;
	border: 3px solid var(--bg-color-border);
	border-bottom: none;
	padding:5px;
	margin-top: 12px;

	background-color: var(--content-bg-color-primary);
}
	/* 
	 * Override for narrow screen size
	 */
	@media screen and (max-width: 480px) { /* var(--breakpoint-width-mobile-xl) */
		.content {
			width: 440px; /* 480 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px; 
		}
	}

	@media screen and (max-width: 360px) { /* var(--breakpoint-width-mobile) */
		.content {
			width: 320px; /* 360 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px;
		}
	}

.content-title {
	text-decoration: underline;
	text-align: center;
	padding-bottom: 0.5em;
}

.content-nav {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row;
	align-content: center;
	justify-content: center;
	align-items: stretch;
	text-align: center;
	cursor: default;
}

.content-img {
	border-radius: 2.5px;
	border: 3px solid var(--content-bg-color-secondary);
}
	/* 
	 * Override for narrow screen size
	 */
	@media screen and (max-width: 480px) { /* var(--breakpoint-width-mobile-xl) */
		.content-img {
			width: 440px;
		}
	}

	@media screen and (max-width: 360px) { /* var(--breakpoint-width-mobile) */
		.content-img {
			width: 320px;
		}
	}

.about-pane {
	display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
	min-width:180px;
	max-width:360px;
	border-radius: 5px;
	margin:15px;
	padding: 5px;
	border: 3px solid var(--content-bg-color-secondary);
}

.about-img {
	min-width:150px;
	max-width:300px;
}

.content-button {
	margin: 0.15em;
	padding: 0.15em 0.35em;

	text-align: center;
	display: inline-block;
	
	background-color: var(--bg-color-nav);
	border-radius: 2.5px;
	border: 3px solid var(--bg-color-focus);;

	-moz-transition: background-color .25s ease-in-out;
	-webkit-transition: background-color .25s ease-in-out;
	-ms-transition: background-color .25s ease-in-out;
	transition: background-color .25s ease-in-out;
}

.content-button:hover {
	background-color: var(--bg-color-hover);
}

.content-button.selected {
	background-color: var(--bg-color-focus);
}

/* utility elements */
.vertical-gradient-bar {
	height: 10px;
	width: 100%;
	background-image: linear-gradient(to bottom, var(--bg-color-focus), rgba(0,0,0,0));
	border-radius: 0px 0px 5px 5px;
}
	/* 
	 * Override for narrow screen size
	 */
	@media screen and (max-width: 480px) {
		.vertical-gradient-bar {
			width: 456px; /* 480 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px; 
		}
	}

	@media screen and (max-width: 360px) {
		.vertical-gradient-bar {
			width: 336px; /* 360 minus padding, border and margin */
			margin-left: 4px;
			margin-right: 4px;
		}
	}


/* Slideshow styles */

.slideshow-slide {display: none}
.slideshow-slide > img {vertical-align: middle;}

/* Slideshow container */
.slideshow-container {
	max-width: 100%;
	position: relative;
	margin: auto;
	margin-right: 5px;
}

/* Next & previous buttons */
.slideshow-prev, .slideshow-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 "prev button" to the left */
.slideshow-prev {
	left: 0;
	border-radius: 3px 0 0 3px;
}
/* Position the "next button" to the right */
.slideshow-next {
	right: -6px;
	border-radius: 0 3px 3px 0;
}

/* On hover, add a black background color with a little bit see-through */
.slideshow-prev:hover, .slideshow-next:hover {
	background-color: rgba(0,0,0,0.8);
}

/* The dots/bullets/indicators */
.slideshow-dot {
    cursor: pointer;
    height: 15px;
    width: 15px;
    margin: 0 2px;
    background-color: #bbb;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    top: -40px;
    transition: background-color 0.6s ease;
}

.slideshow-active, .slideshow-dot:hover {
	background-color: #333;
}
.slideshow-dot.active {
	background-color: #ddd;
}

/* Fading animation */
.slideshow-fade {
	animation-name: fade;
	animation-duration: 1.5s;
}

@keyframes fade {
	from {opacity: .4} 
	to {opacity: 1}
}