@charset "utf-8";
/* CSS Document */

/* Document Fonts */
h1, h2, h3, h4, h5, h6, li, .overlayText {
	font-family: 'Raleway', Open Sans, sans-serif; /* alternative fonts including a websafe version */
	font-weight: lighter;
	text-transform: uppercase;
}
p, .sitemap, button, input, .backLink, .abtLink, .fcf-body, textarea.fcf-form-control {
	font-family: 'Lato', 'Roboto', 'Arial', sans-serif; /* alternative fonts including a websafe version */
	font-size: 11pt;
}


/* Header Styling */
header {
	width: 100%; 
	height: 55px;
	background-color: #c5d9ef;
	margin-left: auto;
	margin-right: auto;
	}
header a {
	color: #000000; /* colour for all the links within the header, even the nav ones*/
	float: left;
	margin-left: 15px;
	text-decoration: none; /* removes default link underline */ 
}
header h3 {
	margin-top: 18px;
	font-size: 12pt;
}
header a:hover h3 {
	color: #929292;
	font-size: 12pt;
	transition: all 0.2s linear; /* changes property values smoothly */ 
}
header h4{
	float: left;
	font-size: 12pt;
	margin-left: 40px;
	margin-top: 20px;
	color: #929292;
}
nav {
	float: right;
	width: 50%; 
	text-align: right;
	margin-right: 25px;
	background-color: #C5D9EF;
	}
header nav ul {
	float: right;
	list-style: none; /* removes bullet points */ 
}
nav ul li { /* plain text for this part and standard */
	color: #FFFFFF; 
	font-size: 12pt;
	text-align: left;
	margin-left: 20px;
	margin-top: 4px; /* to align with the oscar norman */
	transition: all 0.3s linear; /* changes property values smoothly */ 
	float: left;  
}
ul li a {
	text-decoration: none; 
}
ul li:hover a {
	color: #ffffff;
	transition: all 0.1s linear; 
}

/* Footer Styling */
footer{
	background-color:#C5D9EF;
	width: 100%;
	display: inline-block;
	object-fit: cover;
}
.footer .column {
	width: 29%;
	float: left;
	display: inline-block;
	height: 110px;
	margin-left: 2%;
	margin-right: 2%;
}
.footer .copyright {
	text-align: right;
	vertical-align: baseline;
	font-size: 9pt;
	color: #929292;
	float: right;
	margin: 20px;
}
.footer ul {
	list-style: none;
	text-decoration: none;
	margin: 15px;
	text-align: left;
	margin-left: 5px;
}
.footer a {
	text-decoration: none;
	color: black;
	font-size: 9pt;
}
.footer a:hover {
	color: #ffffff;
	font-size: 10pt;
}
footer h4{
	margin: 10px;
	margin-top: 22px;
	padding: 0px;
	font-size: 13pt;
	text-align: left;
}
.footer h5{ /*had to put into class footer because it kept bugging and refusing to change text size*/
	color: #929292;
	font-size: 13pt; 
	margin: 0px;
	padding: 0px;
}
h6 {
	font-size: 13px;
	margin-left: 0;
	margin-bottom: 0px;
	margin-top: 20px;
	padding-top:5px;
	padding-bottom: 10px;
}
.footer .sitemap{
	vertical-align: baseline;
	float: left;
	margin: 20px; 
}
.footer button {}
.footer button:hover {
	background: white;
}

/*Other Global Styling */ 
.backLink {
	text-decoration: none;
	float: left; 
	margin-top: 20px;
	margin-left: 0px;
	padding: 4px;
	font-size: 9pt; 
	background-color: #DDDDDD;
	color: black;
}
.backLink:hover{
	background-color: #878787;
	color: white;
	font-size: 9pt; 
	transition: 0.1s linear;
}

/* Main Content Containers */
/* 66% centred container */ 
.container {
	width: 66%;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 80px;
}
/* Additional Container class to fix layout errors */
.container2 {
	width: 66%;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 80px;
}
.centredBlock {
	width: 100%;
	display: inline-block; /* makes section fit to content, changed from block bc issues */ 
	margin-left: auto;
	margin-right: auto;
	background-color: #FFFFFF;
	padding-bottom: 20px;
}

/*Project Pages specific Styling*/ 
.HeroImg{  
	max-width: 100%;
	height: 500px;
	display: block;
	padding-top: 65px;
	margin-left: auto;	/* align the image block centre*/
	margin-right: auto;  
	object-fit: cover; /*fills the desired container and then crops the image maintaining the aspect ratio*/ 
}
.projectPageTitle{
	float: left;
	text-align: left; 
	width: 25%;
	margin-left: 5px;
	margin-right: 5px;
	font-size: 16.5pt;
}
.projectIntro {  
	color: #000000; 
	padding-top: 7px; /*aligns with project title */
	width: 70%;
	float: right;
	text-align: left;
	margin-right: 5px;
}

/*Column Styling */ 
.column {
	width: 50%; 
	height: 235px;
	float: left;
	padding-bottom: 5px;
	display: inline-block;
}
.column h5{
	margin-left: 10px;
	padding-bottom: 0;
	margin-bottom: 0;
	margin-top: 5px;
	font-size: 17px; 
}
.column img {
	width: 95%;
	height: 220px;
	object-fit: cover; 
	padding-bottom: 10px; 
	float: left;
	margin-left: 5px;
	margin-right: 5px;
}
.columnLeftText {
	float: right;
	text-align: left;
	margin-left: 10px;
	margin-right: 30px;
}
.columnRightText {
	float: left;
	text-align: left;
	margin-left: 10px;
	width: 90%;
	padding-bottom: 20px; 
}

/*Embedded videos */
iframe {
	margin-left: auto;
	margin-right: auto;
	margin-top: 50px;
}

/*Image Gallery*/ 
.imageGallery{
	margin-top: -10px; 
	background-color: #878787 ; 
	width: 98%;
	display: inline-block;
	margin-left:-1%;
	padding-left: 4px;
	margin-right: 1px;
	padding-right: 4px;
}
.gallery {
	float: left;
	width: 24.2%;
	margin-top: 4px;
	margin-right: 0;
	margin-bottom: 4px;
	padding-left: 0.4%;
	padding-right: 0.4%;
}
.gallery a {
	text-decoration: none;
}
.gallery a:hover {
	background-color: #BFBFBF;
	display: inline-block;
	transition: all 0.2s linear;
}
.gallery img {
	width: 100%;
	height:110px; 
	object-fit: cover; 
	margin-left: 0; /*centre the images*/ 
	margin-right: 0;
}
.gallery p {
	color: #FFFFFF;
	font-size: 11pt;
	margin-top: 0px;
	margin-bottom: 5px;
	margin-left: 2px;
	margin-right: 2px;
	}

/* Projects Contents Page Element Styles */
.container2 .column {
	display: inline-block;
	padding-bottom: 20px;
	height: 600px;
}
.projectContentsItem {
	position: relative;
	width: 95%;
	display: inline-block;
	padding-bottom: 10px;
}
.baseImage {
	display: block;
	width: 100%;
	height: auto; /*change this to the standard image aspect ratio when the code is at least functional*/
	border: 0; /* prevents IE autoadding a border to image links */
}
.overlay {
  	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	height: 100%;
	width: 100%;
	opacity: 0;
	transition: 0.5s ease;
	background-color: #ffffff;
}
.projectContentsItem:hover .overlay{
	opacity: 0.8;
}
.overlayText{
	color: black;
  	font-size: 20px;
  	position: absolute;
  	top: 80px; /* change this in line with sized images */
  	left: 50%;
  	transform: translate(-50%, -50%);
  	text-align: center;
}

/* Home Page */
.homePage {
  	height: 100%; /* body class to fill entire page background */
	margin: 0; 
}
.bg{
  	height: 80%; 
  	background-position: center;
  	background-repeat: no-repeat;
  	background-size: cover;
}
/*Static background images */
.img1 { background-image: url("Images/IMG_20200323_163708.jpg"); }
.img2 { background-image: url("Images/fixpertsHero1.jpg"); }
.img3 { background-image: url("Images/InhalerHero.jpg"); }
.img4 { background-image: url("Images/FixpertsHero.jpg"); }
.img5 { background-image: url("Images/DiffDesk2.jpg");}
.img6 { background-image: url("Images/SpkHero1.jpg"); }
/* Content Block */
.bg-text {
  	background-color: rgba(197,217,239,1.00); /* Fallback color */
  	background-color: rgba(250,250,250,0.80); /* Black w/opacity */
  	color: black;
  	font-weight: bold;
  	font-size: 20px;
  	border: 10px solid #C5D9EF;
  	position: fixed;
  	top: 50%;
  	left: 50%;
  	transform: translate(-50%, -50%);
  	z-index: 2;
  	width: 300px;
  	padding: 20px;
	padding-bottom: 10px;
  	text-align: center;
}
.bg-text h1 {
	margin: 5px;
	margin-bottom: 10px;
	font-size: 24pt;
}
.bg-text h2 {
	margin: 2px;
	font-size: 16pt;
	color: #4B4B4B;
}
.bg-text ul{
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.bg-text li {
	list-style: none;
	width: 200px;
	margin-top: 10px;
	margin-bottom: 10px;
	padding: 2px;
	margin-left: 10px;
	margin-right: 10px; 
	text-align: center;
	background-color: #c5d9ef;
	color: #848484;
}
.bg-text a{
	text-decoration: none;
	color: #848484;
	width: 200px; 
	object-fit: cover;
	padding: 0px;
	margin: 4px;
	text-align: center;
	background-color: #c5d9ef;
}
.bg-text a:hover li {
	color: white;
}

/* About Me Page */ 
.avatar {
	width: 25%;
	height: 90%;
	object-fit: cover;
	float: left;
	padding-bottom: 40px; /* 40px padding to both avatar and link elements so that whichever is longer, the other elements will always be properly spaced, even if I change the text length in the future */
}
.abt {
	width: 70%;
	float: left; 
	margin-left: 20px; 
	margin-top: 10px;
	padding-bottom: 20px;
}
/* CV and portfolio links */
.abtLink {
	text-decoration: none;
	float: left; 
	margin: 10px;
	padding-bottom: 40px; /* 40px padding to both avatar and link elements so that whichever is longer, the other elements will always be properly spaced, even if I change the text length in the future */
	padding: 4px;
	font-size: 9pt; 
	background-color: #DDDDDD;
	color: black;
}
.abtlink:hover {
	background-color: #878787;
	color: white;
	font-size: 9pt; 
	transition: 0.1s linear;
}

/* Contact Page Styling */
 .contactHr {
	margin: 6px;
	margin-top: 40px;
	width: 25%;
	float: left;
}
.contact {
	margin: 10px;
	margin-top: 40px;
	width: 60%;
	float: left;
}
.contact a {
	text-decoration: none;
	color: black;
	font-weight: 600;
	padding: 2px;
}
.contact a:hover {
	text-decoration: none;
	color: white;
	font-weight: 600;
	padding: 2px;
	background-color: #878787;
}

/* Responsive Elements */
/*For Mobile Phone Screens */
@media only screen and (max-width:620px) {
/* Header & Nav */
	header{
		height: 10vw;
		max-height: 50px;
	}
 	nav, nav ul li, header nav ul, ul li a {
		width:100%;
		margin-left: auto;
		margin-right: auto;
		float: left;
		margin-top: 1px;
		margin-bottom: 1px;
  	}
	nav ul {float:left;
		margin-bottom: 15px;
	}
	nav ul li {
		width: 70%;
		text-align: center;
		margin-left: 7%;
		margin-right: auto;
	}
	nav, nav ul li, header nav ul {
		font-size:2.5vw;
	}
	header h3, header h4{
		font-size:3vw;
		margin-top:3vw;
	}
	header h4{
		float:right;
		margin-right: 10px;
	}
	header a:hover h3{
		font-size:3vw;
		margin-top:3vw;
	}
	ul li:hover a{
		background-color: #929292;
	}
/* Project Pages Specific Mobile Screen Styling*/
	body .container {
		width:100%;
	}
	 .HeroImg {
		max-width: 100%;
		height: 70vw;
		display: block;
		padding-top: 5px;
		padding-bottom: 5px;
		margin-top: 0px;
		margin-left: auto;	/* align the image block centre*/
		margin-right: auto;  
		object-fit: cover;
	}
	
	.centredBlock {
		width: 100%;
		display: inline-block; /* makes section fit to content, changed from block bc issues  */
		margin-left: auto;
		margin-right: auto;
		background-color: #FFFFFF;
		margin: 0px;
		padding: 0px;
	} 
	.projectPageTitle, .projectIntro, .column {/* Other elements that need setting to 95% */
		width:95%;
		max-height: 400px;
		padding-bottom: 2px;
		padding-top: 2px;
		margin-top: 0px;
	}
	.gallery {
		float: left;
		width: 48%;
		margin-top: 4px;
		margin-right: 0;
		margin-bottom: 4px;
		padding-left: 0.4%;
		padding-right: 0.4%;
	}
	.backLink {
		width: 60%;
		text-align: center;
		float:left;
		margin-left: auto;
		margin-right: auto; 
		font-size:2.5vw;
	}
	.backLink:hover {
		width: 60%;
		text-align: center;
		float:left;
		margin-left: auto;
		margin-right: auto;
		font-size:2.5vw;
		background-color: #878787;
		color: white;
		transition: 0.1s linear;
	}
	iframe {
		width: 100%;
	}
/* Footer Styling Responsive Mobile Screens */	
	.footer .column {
		width:100%;
		margin: 2px;
		object-fit: cover;
		height: 30px;
	}
	.footer h5, .footer h4 {
		font-size: 3vw;
		float: left;
		margin: 10px;
	}
	.footer h6 {
		width: 20%;
		float: left;
		font-size: 8pt;
		margin: 0px;
	}
	.footer li {
		width: 20%;
		float: left;
		max-height: 25px;
		margin: 5px;
		font-size: 8pt;
		text-align: center;
	}
	#___gcse_0 { /* google search bar additional styling */
		width: 95%;
		margin: 0px;
		padding: 0px;
	}
/* About and Contact Page Specific Responsive Styling */
	section .container{
		margin: 10%;
		float: left;
		text-align: center;
	}
	h1{
		margin: 20px;
		margin-top: 40px;
		padding-top: 20px;
		font-size:3.8vw;
	}
	h1 {
		margin-top:20px;
		float: left;
		width: 100%;
	}
	.contactHr{
		width:35%;
		margin: 5px;
		margin-left: 15px
	}
	.contact  {
		width: 50%;
		margin: 5px;
		padding: 0px;
		margin-bottom: 10px;
		margin-left: 15px;
	}
	.abt {
		font-size:2.4vw;
		marin-left: 20%;
		width: 90%;
	}
	.avatar {
		display: block;	
		margin-left: 20%;
		margin-right: 20%;
		vertical-align: middle;
		max-height: 250px;
		width: 60%;
		object-fit: cover;
	}
	/* Objects for Project Contents Page */
	.projectContentsItem {
		width: 95%;
		height: 30vw;
		max-height: 300px;
	}
	.projectContentsItem img{
		width: 95%;
		height: 30vw;
		max-height: 300px;
	}
/* Home Page */
	.bg-text a {
	width: 200px; 
	object-fit: cover;
	padding: 0px;
	margin: 4px;
	text-align: center;
	background-color: #c5d9ef;
	color: #848484;
	}
	.bg-text h1 {
		margin-top: 0px;
		padding: 0px;
	}
	.bg-text li {
		background-color: rgba(0,0,0,0.00); /*makes Li boxes invisible, because no other style editing would remove them*/
	}
}

/*For Tablet Screens and to bridge a gap causing unattractive layout in desktop browsers */
@media only screen and (min-width:621px) and (max-width:770px) {
/* Header */	
	header{
		height: 10vw;
		max-height: 50px;
	}
 	nav, nav ul li, header nav ul, ul li a{
		width:100%;
		margin-left: auto;
		margin-right: auto;
		float: left;
		margin-top: 1px;
		margin-bottom: 1px;
  	}
	nav ul {float:left;}
	nav ul li {
		width: 70%;
		text-align: center;
		margin-left: 8%;
		margin-right: auto;
	}
	nav, nav ul li, header nav ul {font-size:2vw;}
	header h3, header h4{
		font-size:2.5vw;
		margin-top:3vw;
	}
	p {font-size: 1.8vw;}
	header h4{
		float:right;
		margin-right: 10px;
	}
	header a:hover h3{
		font-size:3vw;
		margin-top:3vw;
	}
	ul li:hover a{
		background-color: #929292;
	}
/* Project pages Responsive Styling 621-770px*/
	.columnLeftText{
		padding-bottom: 40px;
	}
	h1 {
		margin-top:20px;
		float: left;
		width: 100%;
	}
/* Contact Page Styling */
	.contactHr{width:35%;
		margin: 5px;}
	.contact  {
		width: 50%;
		margin: 5px;
		padding: 0px;
		margin-bottom: 10px;
	}
/* Content Containers: Responsive 621-770px */	
	.container2 {
		width: 90%;
		margin-left: auto;
		margin-right: auto;
	}
	.column {
		object-fit: cover;
	}
/* Footer Responsive Styling for screens 621-770px */
	.footer {
		display: inline-block;
		object-fit: contain;
	}
	.footer .column {
		width:46%;
		margin: 10px;
		object-fit: cover;
		max-height: 60px;
		padding-bottom: 15px;
	}
	.footer h5, .footer h4, .footer h6 {
		margin: 10px;
		font-size: 2.4vw;
	}	
	.footer li {
		width: 25%;
		float: left;
		margin: 5px;
		text-align: center;
	}
/* Home Page */
	.bg-text a {
	width: 200px; 
	object-fit: cover;
	padding: 0px;
	margin: 4px;
	text-align: center;
	background-color: #c5d9ef;
	color: #848484;
	}
	.bg-text h1 {
		margin-top: 0px;
		padding: 0px;
	}
	.bg-text li {
		background-color: rgba(0,0,0,0.00); /*makes Li boxes invisible, because no other style editing would remove them*/
	}
}