:root {
	box-sizing: border-box;
	font-size: calc(0.5em + 1vw);
	line-height: 1.2;
	--main-font: Arial, Helvetica, sans-serif;
	--main-color: #4472C4;
	--body-color: #555555;
	--input-color: lightgray;
	--input-focus-color: lightblue;	
}	

*, ::before, ::after {
	box-sizing: inherit;
}

body {
  display: flex;
  flex-direction: column;
  margin 0;
  min-height: 75vh;
  min-height: -webkit-fill-available;
}

main {
  flex: 1;
}

html {
  height: -webkit-fill-available;
}

a:link {
	color: var(--main-color);
	text-decoration: none;
}	

a:visited {
	color: #bb8d3b;
}

a:hover {
	text-decoration: underline;
}	

a:active {
	color: red;
}	

.contact input {
  width: 50%;
  padding: 0.2em;
  font-size: 0.8em;
  line-height: 2em;
  border: 1px solid #444;
  border-radius: 0.5em;
  background-color: #fff;  /* white background */
  color: #000;             /* black text for contrast */
}

.contact input[type="text"]:focus,
.contact input[type="email"]:focus,
.contact input[type="tel"]:focus {
  background-color: #fff;  /* stays white on focus */
  border-color: #007acc;
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.3);
}

.contact input[type="submit"] {
  width: 15%;
  padding: 0.5em;
  font-size: 0.9em;
  font-weight: bold;
  color: #fff; /* white text for contrast */
  background-color: #007acc; /* strong blue, passes WCAG AA */
  border: none;
  border-radius: 0.5em;
  box-shadow: 0 0.4em rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.contact input[type="submit"]:hover {
  background-color: #005fa3; /* slightly darker on hover */
}

.contact input[type="submit"]:focus {
  background-color: #005fa3;
  box-shadow: 0 0 0 3px rgba(0, 122, 204, 0.4);
  outline: none;
}

.contact textarea {
  width: 100%;
  height: 150px;
  padding: 0.2em;
  box-sizing: border-box;
  border: 1px solid #444;
  background-color: #fff;   /* white background */
  color: #000;
  resize: none;
  font: var(--main-font);
  font-size: 0.8em;
  border-radius: 0.5em;
}

.contact textarea:focus {
  background-color: #fff;  /* stays white on focus */
  border-color: #007acc;
  box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.3);
  outline: none;
}

.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 10px 10px 0px;
}

.header a {
	float: left;	
	text-align: center;
	padding: 10px;
	text-decoration: none;
}

@media (min-width: 800px) {
	.header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 15px 15px 15px 0px;
	}

	.header a {
		float: left;	
		text-align: center;
		padding: 15px;
		text-decoration: none;
	}
}

@media (min-width: 1200px) {
	.header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20px 20px 20px 40px;		
	}

	.header a {
		float: left;	
		text-align: center;
		padding: 20px;
		text-decoration: none;
	}
}

.logo {
	margin: 0;
	padding: 0;	
}

.logo img {
	width: 50%; 
	height: auto; 	
	float: left;
}

@media (min-width: 800px) {
	.logo img {
		width: 75%; 
		height: auto; 
	}
}

@media (min-width: 1200px) {
	.logo img {
		width: auto; 
		height: auto; 
	}
}

.header-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.header-links li {
	display: inline;
	margin-right: 1em;
}

.header-links a {	
	font-weight: bold;
}

.main-content {
	text-align: center;
	padding: 1.5em 1.5em 0em 1.5em;
	color: var(--main-color);	
	font-size: 1.2em;
}

@media (min-width: 800px) {
	.main-content {
		text-align: center;
		padding: 2.25em 2.25em 0em 2.25em;
		color: var(--main-color);
		font-size: 1.5em;
	}
}

@media (min-width: 1200px) {
	.main-content {
		text-align: center;
		padding: 3em 3em 0em 3em;
		color: var(--main-color);
		font-size: 1.5em;
	}
}

div.body {
	margin: auto;
	width: 90%;
	padding: 5px;	 
	color: var(--body-color);
}

li {
	margin-bottom: 0.5em;
}	

div.body > h1, h2, h3, h4, h5 {
	color: var(--main-color);
}

@media (min-width: 800px) {
	div.body {
		margin: auto;
		width: 75%;
		padding: 7.5px;		
		color: var(--body-color);
	}
}	

@media (min-width: 1200px) {
	div.body {
		margin: auto;
		width: 50%;
		padding: 10px;
		color: var(--body-color);
	}	
}	

.footer {
	text-align: center;	
	font-size: calc(0.6em + 0.3333vw);	
	color: var(--body-color);
}

.footer .row ul{
	width: 100%;
}

.footer .row li{
	display: inline-block;
	margin: 0px 2em;
}