@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* type selectors: desktop-first */

html {
	max-width: 1024px;
	margin: 0 auto;
	background-color: #d8d8d8;
}
body {
	font-family: Montserrat, Verdana, Arial, Helvetica, sans-serif;
	font-size: 100%;
	-webkit-text-size-adjust: 100%;   /* to correct irregular browser zoom behaviour in iOS 13+ */
	width: 95%;
	margin: 15px auto;
	padding: .5em 0 0;
	border: 1px solid #22A2E1;
	border-radius: 10px;
	background-color: white;
	animation: fade_in ease .75s;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;	
}
section, aside, h1, h2, h3, p {
	margin: 0;
	padding: 0;
}
p {
	font-size: 1em;
	line-height: 160%;
	padding-bottom: .5em;
}
a {
	font-weight: bold;
	text-decoration: none;
}
hr {
	height: .8px;
	background-color: #22A2E1;
	border: 0;
	margin: .8em 0 .8em;
}


/* page fade-in animation definition */
@keyframes fade_in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}


/* header styles */

header {
	width: 100%;
	text-align: center;
	padding-bottom: .9em;
	background-color: white;
}
header img {
	float: left;
	height: 5em;
	padding: 0 .5em;
	margin-bottom: .5em;
}
header h2 {
	font-size: 2.4em;
	color: #137baf; /* same colour as menu hover */
	margin-bottom: .2em;
}
header h3 {
	font-size: 1.1em;
	font-style: normal;
	font-weight: normal;
	color: black;
	margin-left: 0;
	line-height: 95%;
	margin-bottom: .1em;
}

header a:link, a:visited {
	color: #137baf;
}

header a:hover, a:focus {
	color: #137baf;
	background-color: white;
	text-decoration: none;
}

.qualifications {
	font-size: 0.8em;
}


/* initial menu settings (desktop-first) */

#nav_menu {
	display: block;
}
#mobile_menu {
	display: none;
}
.slicknav_menu {
	background-color: #22A2E1 !important;
}


/* navigation menu - operation */

#nav_menu ul {
	width: 100%;
	list-style-type: none;
	position: relative;
	background-color: #22A2E1;
}
#nav_menu ul ul {
	display: none;
	position: absolute;
	top: 100%;
	max-width: 20%;
}
#nav_menu ul ul li {
	float: none;
	position: relative;
	width: 100%;
}
#nav_menu ul ul li ul {
	position: absolute;
	left: 100%;
	top: 0;
}
#nav_menu ul li.lastitem ul li ul {
	position: absolute;
	left: -100%;
	top: 0;
}
#nav_menu ul li {
	float: left;
}
#nav_menu ul li:hover > ul {
	display: block;
}
#nav_menu > ul::after {
	content: "";
	clear: both;
	display: block;
}


/* navigation menu - formatting */

#nav_menu ul {
	margin: 0;
	padding: 0;
}
#nav_menu ul li {
	width: 20%;
}
#nav_menu a:link {
	font-size: .95em;
	text-align: center;
	display: block;
	padding: .7em .4em .7em 0;
	background-color: #22A2E1;
	color: white;
}
#nav_menu a:visited {
	color: white;
}
#nav_menu a:hover, a:focus {
	color: white;
	background-color: #137baf;   /* darker blue */
	text-decoration: none;
}
#nav_menu ul li a.current {
	color: #fde25a;   /* lighter yellow tint */
	pointer-events: none;
}
#nav_menu a.current::before {
	font-size: .8em;
	content: "\0025B6\000020";   /* 'black right-pointing triangle' followed by a space */
}
#nav_menu ul li:hover ul {
	width: 100%;
}
#nav_menu ul li:hover ul li:hover ul li {
	width: 100%;
}

/* styling for top-level menu items that have drop-downs */

.no_click {
    cursor: default;
}
.no_click a {
    pointer-events: none;
}
#nav_menu a.down_arrow::after {
	font-size: .9em;       /* reduce arrow size so that it doesn't dominate the menu text */
	content: " \0025BC";   /* 'black down-pointing triangle' character */
}


/* link styles in main (both section and aside) */

main a:link {
	color: blue;
	background: none;
}
main a:visited {
	color: blue;
}
main a:hover, a:focus {
	text-decoration: underline;
}


main { background-color: white;
}


/* image styling: rounded corners */

main img {
	border-radius: 9px;
	width: 100%;
}


/* section styles */

section {
	width: 55%;
	float: left;
	margin: 0 2% 1em 2%;
	padding: 1.5em 0 0 0;
	background-color: white;
}
section ul {
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}
section li {
	font-size: 1em;
	line-height: 160%;
	padding-bottom: .35em;
}
section li.spaced {
	padding-bottom: .8em;
}
section img {
	margin-bottom: .5em;
}
section h1 {
	font-size: 1.2em;
	margin-bottom: .8em;
}
section h2 {
	font-size: 1em;
	margin: .8em 0 .8em;
}
section p {
	margin-top: .4em;
}


/* styles for pages that don't have an aside */

.full_width {
	width: 96%;
}


/* aside styles */

aside {
	width: 35%;
	float: right;
	background-color: #ffebc6;
	padding: 2%;
	margin: 1.5em 2% 1.5em 0;
	border-radius: 9px;
}
aside h2 {
	font-size: 1.2em;
	padding-bottom: .8em;
}
aside h3 {
	font-size: .92em;
	padding: .2em 0 .8em;
}
aside p {
	margin-bottom: .5em;
}
aside ul {
	margin-top: 0;
	margin-bottom: 0;
}
aside li {
	padding-bottom: .4em;
}


/* footer styles */

footer {
	clear: both;
	width: 100%;
	padding: .5em 0 0;
	margin: 0 auto;
	border-radius: 0 0 9px 9px;
	background-color: #22A2E1;
	color: white;
}
footer p {
	font-size: .9em;
	text-align: center;
}
footer img {
	height: 1.4em;
	vertical-align: top;
}

footer a:link {
	color: white;
	font-weight: bold;
	background: none;
}
footer a:visited {
	color: white;
}
footer a:hover, a:focus {
	text-decoration: underline;
}

.footer_links {
	font-size: .92em;
 }


/* media queries */

@media only screen and (max-width: 900px) {
	body {
		font-size: 90%;
	  }
}

@media only screen and (max-width: 767px) {
	#nav_menu {
        display: none;
    }
    #mobile_menu {
        display: block;
    }
	header img {
		height: 3.7em;
	}
	header h2 {
		font-size: 1.8em;
	}
	header h3 {
		font-size: .9em;
	}
	section {
		width: 96%;
		margin: 0 2% 1em 2%;
		padding: 1.5em 0 0 0;
	}	
	aside {
		width: 92%;
		padding: 2%;
		background-color: #f7e7ca;
		margin: 0 2% .85em 2%;
	}	
}

@media only screen and (max-width: 479px) {
	#nav_menu {
        display: none;
    }
    #mobile_menu {
        display: block;
    }
	header img {
		height: 3.5em;
	}
	header h2 {
		font-size: 1.6em;
	}
	header h3 {
		font-size: .85em;
	}
	body {
		font-size: 90%;
	}
}

/* An extra media query is needed to fit the header nicely on very slim devices, eg. iPhone 5, Galaxy S9, LG G4 */
@media only screen and (max-width: 374px) {
	header img {
		height: 3em;
	}
	header h2 {
		font-size: 1.3em;
	}
	header h3 {
		font-size: .7em;
	}
}