/* Base Styles */
body {
	/* max-width: 95%; */
	font-family: Arial, sans-serif;
	margin: 0;
	padding: 0;
	line-height: 1.6;
	width: 100%;
	/* min-width: 475px; */
	padding-bottom: 5vw; /* Add padding at the bottom for scrolling */
	margin-bottom: 5vw; /* Add padding at the bottom for scrolling */
	min-height: 100vh; /* Full viewport height */
}

/* Container */
.container {
	width: 90%;
	max-width: 1200px;
	margin: auto;
}


/* Main Section */
.main {
	padding: 20px;
}

/* Grid Layout */
.row {
	display: flex;
	flex-wrap: wrap;
	margin: -10px;
}

.col {
	flex: 1;
	padding: 10px;
	min-width: 250px; /* Minimum width for columns */
}

/* Footer */
footer {
	background: #004d7a;
	color: #ffffff;
	text-align: center;
	padding: 1rem 0;
}

/* Media Queries */
@media (max-width: 768px) {
	nav {
		flex-direction: column;
	}
	
	.row {
		flex-direction: column;
	}
	
	.col {
		flex-basis: 100%;
	}
}

@media (max-width: 480px) {
	header h1 {
		font-size: 1.5rem;
	}
	
	nav a {
		padding: 10px;
		font-size: 0.9rem;
	}
	
	footer {
		font-size: 0.8rem;
	}
}
h1 { font-size: 4em; }
h2 { font-size: 3em; }
h3 { font-size: 2.5em; }
h4 { font-size: 2em; }
h5 { font-size: 1.5em; }
.container {
	display: flex;
	width: 90%; /* Set a width for the container */
}

.box {
	margin: 0 auto; /* padding: 1em; */
	/* height: 18em; */
	/* display: flex; */
	justify-content: center; /* Center text horizontally */
	align-items: center; /* Center text vertically */
}

.fixed img {
	width: 150px;
}
.fixed {
	text-align: center;
	width: auto;
}
div.fixed div.caption {display: block !important; clear: both !important;}
.flexible {
	text-align: center;
	flex-grow: 1; /* Allow the middle box to grow and fill the available space */
}

section {
	display: flex;
	justify-content: center; /* Center buttons */
	padding: 20px;
	width: 100%; /* Full width of the viewport */
	flex-wrap: wrap;
}
section em { dispaly: block; }
.responsive-button {
	display: flex;
	flex: 1; /* Grow to fill available space */
	flex-direction: column;
	justify-content: space-between;
	max-width: 300px; /* Maximum width for buttons */
	margin: 0 10px; /* Padding between buttons */
	padding: 15px; /* Button padding */
	font-size: 2vw; /* Responsive font size */
	background-color: #007bb8;
	color: white;
	border: none;
	border-radius: 5px;
	cursor: pointer;
	transition: background-color 0.3s;
	text-decoration: none;
	min-height: 120px;
}
.responsive-button:hover { background-color: #005f8f; }
.responsive-button .button-title { display: block; color: white; font-size: 1.1em; font-weight: bold; }
.responsive-button .button-meta { display: block; margin-top: 1em; font-size: 10px; color: #d7edf7; }

/* Responsive adjustments for smaller screens */
@media (max-width: 600px) {
	.responsive-button {
		font-size: 4vw; /* Increase font size for smaller screens */
		max-width: none;
	}
}

/* Landscape mobile browsers adjustments */
@media (orientation: landscape)  {
	body {
	padding-bottom: 15vw; /* Add padding at the bottom for scrolling */
	margin-bottom: 15vw; /* Add padding at the bottom for scrolling */
		/* font-size: 90%; /* Reduce text size by 25% */ */
	}
	.flexible {
		font-size: 125%;
		flex-grow: 1; /* Allow the middle box to grow and fill the available space */
	}

}
button {display: block; padding: 1em; font-size: 2.5em; background-color: black; color: white; width: 45%; margin: .5em; float: left; }
button.halfsize {display: block; padding: 1em; font-size: 2.5em; background-color: black; color: white; width: 45%; margin: .5em; float: right;}
button a { color: white; text-decoration: none;}
button a:hover { color: black; text-decoration: none;}
button a:click { color: black; text-decoration: underline;}

.align_c { text-align: center; display: block; }
.float_l {float: left !important;}
.float_r {float: right !important;}
div.portrait div span {display: block; font-size: 1.75em; font-weight: bold }
div.header { clear: both; display: block; height: 4em; }
div.portrait div.message { font-size: 2em; color: blue;  }
div.bottom { position: fixed; bottom: 0; left: 0; right: 0; min-height: 8vw; background-color: #fff; font-size: 2vw; text-align: center; padding: .35em 0; }
div.bottom.contact { text-align: center;}
div.bottom.contact address { display: inline;}



/* Admin Stuff */
div.admin { width: 90%; margin-left: 5%; }
div.admin form ul {font-size: 1.5em; margin-bottom: 2em; }
div.admin form ul li { width: 100%; max-width: 45em; margin-bottom: .75em; }
div.admin form ul li label { width: 10em; float: left; font-weight: bold; }
div.admin form ul li input { max-width: 24em; width: calc(100% - 11em); }
div.errors { font-weight: bold; width: 60%; color: #f00; font-size: 2em; margin: 0 auto; }
.flash { width: 80%; max-width: 900px; margin: 1em auto; padding: .85em 1em; border-radius: 6px; font-size: 1.1em; text-align: center; }
.flash.success { background: #e6f5e8; color: #1f5f2c; }
.flash.error { background: #fde7e7; color: #8a1f1f; }
.admin-nav { width: 90%; margin: 0 auto 1.5em; display: flex; flex-wrap: wrap; gap: .75em; justify-content: center; }
.admin-nav a { color: #004d7a; font-weight: bold; text-decoration: none; padding: .4em .8em; border: 1px solid #004d7a; border-radius: 999px; }
.admin-nav a.current, .admin-nav a:hover { background: #004d7a; color: #fff; }
.admin-dashboard p { font-size: 1.2em; }
.admin-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1em; margin: 2em 0; }
.admin-card { display: block; padding: 1.25em; border: 1px solid #c8dbe8; border-radius: 8px; text-decoration: none; color: #123; background: #f8fbfd; }
.admin-card strong, .admin-card span { display: block; }
.admin-card span { margin-top: .5em; font-size: .95em; }
.admin-panel { margin-bottom: 2em; }
.admin-table { width: 100%; border-collapse: collapse; background: #fff; }
.admin-table th, .admin-table td { border: 1px solid #d5dce2; padding: .75em; text-align: left; vertical-align: top; }
.admin-table th { background: #f0f5f8; }
.inline-form { display: flex; gap: .5em; flex-wrap: wrap; align-items: center; }
.admin-note { font-size: 1em; margin: 1em 0; }
.admin-login { max-width: 700px; margin: 0 auto; }
.admin-login form, .admin form { background: #f8fbfd; padding: 1.5em; border-radius: 8px; border: 1px solid #d5dce2; }
.admin small { display: inline-block; margin-left: .5em; font-size: .8em; color: #555; }

@media (max-width: 900px) {
	div.bottom { position: static; font-size: 1em; margin-top: 2em; }
	body { padding-bottom: 2em; margin-bottom: 0; }
}

@media (max-width: 600px) {
	div.admin form ul li label { width: 100%; float: none; display: block; margin-bottom: .35em; }
	div.admin form ul li input { width: 100%; max-width: none; }
	.admin-nav { justify-content: flex-start; }
	.inline-form { flex-direction: column; align-items: stretch; }
}
