@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap');
* {
  box-sizing: border-box;
  font-family: 'Open Sans', sans-serif;
  margin:	0% 0% 0% 0%;
  padding: 0;
}

/*sets body to have a consistent size and a constant background colour*/
.body{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
	margin:0;
	padding:0;
	background-color: lightblue;
}

/*functionality to make all buttons hover gree when cursor is above it*/
.button:hover {
  cursor: pointer;
  background-color: green;
  color: white;
}

/*sets colour and dimensions for the header*/
.header {
  	background-color:lightgrey;
	height: 100px;
	width: 100%
	margin:0;
	padding:0;
}

.header a {
  float: left;
  color: black;
  text-align: center;
  margin: auto;
}

/*sets dimensions for images used in the header*/
.header img{
	width:110px;
	margin-top: 0;
	
}

/*sets aspects such as the colour of the button and the size of the font in it*/
.header button{	
	  background-color: grey;
	  border: none;
	  color: White;
	  padding: 15px 32px;
	  text-align: center;
	  text-decoration: none;
	  display: inline-block;
	  font-size: 18px;
		margin-top: 0;
}





/*sets background colour for home page*/
.bgr{
	background-color: lightblue;
	color: white;
}

/*grid-container is used to set dimensions and colours of background for elements on the services page*/
.grid-container {
  background-color: dodgerblue;
  color: white;
  padding: 1rem;
}

/*sets picture dimensions*/
.grid-container img{
	width:100%;    
	height: 750px;
}


.grid-container .left {
  background-color: lightblue;
  padding: 20px;
}

.grid-container.image {
  background-color: lightcoral;
  padding: 20px;
}

.grid-container .bleft {
  background-color: lightcoral;
  padding: 20px;
}


/*sets grid template colmns for the contact page*/
.grid-container_contact {
  display: grid;
  grid-template-columns: 1fr 1fr; 
  height: 450px;
}


.grid-container_contact iframe{
	width:  500px;     
	height: 450px;
}

/*sets height dimensions for elemets on the contact page*/
.grid-container_contact .left {
  	background-color: coral;
	height: 450px;

}

.grid-container_contact  .right {
  	background-color: lightcoral;
  	height: 450px;
}

.grid-container_contact  .right img{
	width: 412px;    
	height: 300px;
}

/*box to hold google map link*/
 .bottom {
  background-color: lightgrey;
	width: 412px;    
	height: 300px;
	margin: auto;

}

/*used to set dimenstions for photos on home page*/
.photo {
  display: grid;
	padding:20px;
}

.photo img
{
	width:  425px;     
	height: 350px;
}


/* these 2 @medias determine how many columns are present depending on the pixel size of the screen for responsivness */
@media (min-width: 600px) {
  .photo { 
	  grid-template-columns: repeat(2, 1fr); 
	}
}

@media (min-width: 900px) {
  .photo { 
	  grid-template-columns: repeat(3, 1fr); 
	}
}

/*Similar to before but sets columns and design aspects for the admin page*/
.admin_page{
	display: grid;
	grid-template-columns: 1fr 1fr; 	  
}

.admin_page .side{
	background-color: lightblue;
	padding: 20px;
	
}

/*makes a blank box for info to be inserted into*/
.admin_page .box{	
	width: 500px;
	height: 200px;
  	background-color: white;
	text-align: center;
	margin: auto;
}


.admin_page a{
	font-size: 20px;
	color:black;	
}


.admin_page button{
      background-color: Grey;
	  border: none;
	  color: white;
	  padding: 15px 32px;
	  text-align: center;
	  display: inline-block;
	  font-size: 20px;
}

/*used to create a large text box on the about page*/
.centre-text-box{
	width: auto;
	height: auto;
  	background-color: white;
	text-align: center;
	margin: auto;
}

/*sets size of common text used in the box*/
.centre-text-box a{
	  color: black;
	  text-align: center;
	  padding: 10px;
	  text-decoration: none;
	  font-size: 25px;
	  margin: auto;
}

.centre-text-box title{
	  text-align: left;

}
/*sets size of headers used in the box*/
.centre-text-box .title a{
	  color: black;
	  text-align: left;
	  font-size: 50px;
}


/*code used for slideshow on main page*/ 
.slideshow-container {
	background-color: lightblue;
	 max-width: 1000px;
	 position: relative;
	 margin: auto;
}

/* text for captions on the slideshow */
.text {
  font-size: 30px;
  padding: 8px 12px;
  bottom: 8px;
  width: 100%;
  text-align: center;
  color: black;
}

/* text for the numbers */
.numbertext {
  font-size: 12px;
  padding: 8px 12px;
}

/* Dot to show progress along the images */
.dot {
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: grey;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active {
  background-color: black;
}

/* Fading animation */
.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

/* On smaller screens, decrease text size */
@media only screen and (max-width: 300px) {
  .text {
	  font-size: 11px
	}
}
	
	
/* Creates form used to submit data and set aspects such as its height etc */
.Forms {
   border-radius: 5px;
   background-color: lightblue;
   padding: 20px;
	text-align: center;
	margin: auto;
	min-height: 60vh;
}

.Forms input{
	height: 155px;
 	width: 400px;
	text-align: top;
	margin: auto;
}

.Forms select{
	height:50px;
 	width: 400px;
	margin: auto;
	
}

.Forms button{	  
  	background-color: lightgreen;
	height:75px;
 	width: 150;
	text-align: center;
	margin: auto;
}


/*similar to the form above but does it for the login form instead*/
.LoginForm
{
	border-radius: 100px;
  	background-color: grey;
  	padding: 20px;
	height:250px;
 	width: 400px;
	text-align: center;
	margin: auto;
}

.LoginForm input{
	height: 50px;
 	width: 200px;
	text-align: top;
	margin:top;
}
	
/*css for the gallery
first the rows and columns are set up as desired and then a container is made for the images and their dimensiosn are set
*/
.rowgal {
  display: flex;
  flex-wrap: wrap;
  padding: 0 4px;
}

.columngal {
  flex: 50%;
  padding: 0 4px;
}

.columngal img {
  
	width:100%;
}

.img-container {
  position: relative;
  display: inline-block;
  width: 100%;
  margin-bottom: 8px;
}

.img-container img {
  width: 100%;
  display: block;
}


/*this css is used so that whenever the user hovers over an image in the gallery a small descreption will pop up describing it*/
.description {
  position: absolute;
  bottom: 8px;
  left: 8px;
  right: 8px;
  background-color: black;
  color: White;
  padding: 6px 10px;
  font-size: 14px;
  border-radius: 4px;
  opacity: 0;
  transition: opacity 0.3s ease;
}

/*makes descreption appear*/
.img-container:hover .description {
  opacity: 1;
}

/*follow css is for the buttons on the gallery page to change the number of viewable images*/
.btn {
  border: none;
  outline: none;
  padding: 10px 16px;
  background-color: lightblue;
  cursor: pointer;
  font-size: 18px;
}

.btn:hover {
  background-color: lightblue;
}

.btn.active {
  background-color: black;
  color: white;
}


/*Follow css is used to create and stylise a table
Sets elements such as the width, colours etc
*/
.table-container {
      background-color: white;
      border-radius: 8px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
      padding: 1rem;
      max-width: 100%;
}

table {
      width: 100%;
      border-collapse: collapse;
      min-width: 400px;
}

/*sets colour of table head*/
thead {
      background-color: black;
      color: white;
}

th, td {
      text-align: left;
      padding: 12px 16px;
      border-bottom: 1px solid ;
}

/*changes colour of table column every even (2 entries) to ake it stand out more*/
tbody tr:nth-child(even) {
      background-color: lightgrey;
}

/*changes colour of a table column as you hover over it*/
tbody tr:hover {
      background-color: Grey;
}


@media (max-width: 768px) {
     th, td {
        padding: 10px;
      }
}

/*sets elements of the footer*/
.footer {
	margin-top: auto;
	background-color: lightgrey;
    text-align: center;	
}


.footer .row{
	width:100%;
	color:gray;
	font-size:40px;
}

.footer .row a{
	text-decoration:none;
	color:gray;
	transition:0.5s;
}

/*make footer links change colour when theyre hovered over*/
.footer .row a:hover{
	color:white;
}

.footer .row ul{
	width:100%;
}

.footer .row ul li{
	display:inline-block;
	margin:0px 30px;
}


/*responsive features to edit parts of the site when the screen goes below 768 pixels*/
@media screen and (max-width: 768px) {
	.header {
		padding:5%;
		height: 350px;
	}
	
  	.header a {
		float: none;
		display: block;
		text-align: left;
		width:1px;  
  	}
	
	.header a img{
		position: relative;
		left: -150px;
	}
	
	.header-right {
		float: right;
		margin-top: 0;
	}

	.grid-container_contact{
		padding:5%;
	}
	
	.grid-container_contact right{
		width:  200px;  
	}
	
	.grid-container_contact .right img{
		width:  200px; 
	}
	
	.admin_page button{
	  	font-size: 10px;
		width:500px;
	}
	
	.admin_page a{
	  font-size: 10px;
	}
	
	.footer{
	text-align:left;
	padding:5%;
	}
	
	.footer .row ul li{
	display:block;
	margin:10px 0px;
	text-align:left;
	}
	
	.footer .row a i{
	margin:0% 3%;
	}
	
	  .LoginForm {
    padding: 1.5rem;
    border-radius: 30px;
  }

  .LoginForm input {
    width: 100%;
  }
	
}


