/*
off-white colour: #f8f8ff
off-black colour: #4b4c41
main-colour: "steel blue" #4682B4
main-highlight: #90B4D2
main-shadow: #2b4f6d

Viewport breakpoints:
0-687, 688-991, 992-1311, 1312+
*/
* {
	box-sizing: border-box;
	color: #4b4c41;
}
html {
	scroll-behavior: smooth;
}
body {
	width: 100%;
	margin: 0;
}
.general{
  position: relative;
  margin-top: 80px;
  font-family: 'Titillium Web', Arial, sans-serif;
  font-weight: normal;
  font-size: 16px;
  color: white;
  top: 0;
  min-height: calc(100vh - 80px - 60px); /* allow for the header bar and footer */
}
@media only screen and (min-width: 688px) and (max-width: 991px) {
	.general {
		margin-top: 80px;
		min-height: calc(100vh - 80px - 90px); /* allow for the header bar and footer */
	}
}
@media only screen and (max-width: 687px) {
	.general {
		margin-top: 50px;
		min-height: calc(100vh - 50px - 110px); /* allow for the header bar and footer */
	}
}
.general h1  {
  text-align: center;
  font-weight: bold;
  font-size: 24px;
  margin-bottom: 4px;
  margin-top: 15px;
}
.general h2{
  font-weight: bold;
  font-size: 20px;
}
.general p {
	margin-top: 0.2em;
	margin-bottom: 0.5em
}
.page, .home_page  {
	position: relative;
	float: left;
	background: #f8f8ff;
	width: 100%;
	min-width: 246px;
	margin: 0;
	padding-left: 20px;
	padding-right: 20px;
}
.home_page {
	padding-left: 0;
	padding-right: 0;
}
.page_centre, .page_mid {
	display: block;
	background: #f8f8ff;
	margin-left: auto;
	margin-right: auto;
	float: none;
	padding: 20px;
	width: 50%;
	min-width: 246px;
}

#page h2, .page h2 {
	text-align: center;
}

/* On smaller screens... */
@media only screen and (max-width: 687px) {
  body {
	background: none;
  }
  #page, .page, .page_mid, .page_left{
	  width: 100%;
  }
}

input[type="submit"] {
	width: 140px; 
	border-top: 2px solid #E9E4E2; /* tint colour */
	border-left: 2px solid #E9E4E2; 
	border-right: 2px solid #A5928D;  /* shade colour */
	border-bottom: 2px solid #A5928D; 
	border-radius: 20px;
	text-align: center; 
	background-color: white;
	font-size: 16px; 
	font-weight: bold; 
	padding-top: 2px; 
	padding-bottom: 2px;
}
/* note that these MUST defined in the following order: link, visited, hover, active */
input[type="submit"]:link {
	text-decoration: none;
	border: none;
}
input[type="submit"]:visited {
	text-decoration: none;
}
input[type="submit"]:hover {
	text-decoration: none;
	color: white;
	border-radius: 20px;
	border: 3px sold red;
}
input[type="submit"]:active {
	text-decoration: none;
	border: none;
}
input[type="submit"]:focus {
	outline: none;
}

/* WECS 21 CSS --------------------------------------------*/

/* Home Page */

#main_panel {
  display: block;
  background-image: url(../images/background_home.jpg);
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
  width: 100%;
  height: 750px;
}
/* This "wash" lays a translucent, graduated dark colour over the background image 
to enhance the contrast with the white intro text. */ 
#wash {
  height: 100%;
}

/* On smaller screens... */
@media only screen and (max-width: 687px) {
#main_panel {
  display: block;
  background-image: url(../images/background_home_narrow.jpg);
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	background-position: center;
  width: 100%;

}
}
#intro_container {
  position: relative;
  display: inline-block;
  float: right;
  height: 100%;
  width: 50%;
  max-width: 350px;
  background-image: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0.2), 
										rgba(0,0,0,0.2), rgba(0,0,0,0.2), rgba(0,0,0,0.2));
}
.intro_inner {
  margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
	padding: 20px;
}
.intro_inner h1 {
  font-size: 24px;
  font-weight: bold;
  text-align: left;
  color: white;
}
.intro_inner p {
  font-size: 18px;
  font-weight: bold;
  color: white;
}
@media only screen and (max-width: 687px) {
.intro_inner p {
  font-size: 16px;
  color: white;
}
}
.intro_buttons {
  padding: 20px;
}
.quick_button. gotoTop_button {
    background: #4682B4;
	color: #fbfbf8;
	margin-top: 30px;
	text-decoration: none;
	font-size: 16px;
	padding: 3px;
}
#credit {
	position: absolute;
	bottom: 0;
	color: white;
	font-size: 14px;
	font-weight: bold;
	padding-right: 5px;
	padding-bottom: 5px;
	text-align: right;
	width: 100%;
}

#events_panel, #magazines_panel {
  width: 100%;
  display: block;
}
#events_panel {
  padding: 20px;
}
#magazines_panel {
  padding: 20px;
}
/* On small screens... */
@media only screen and (max-width: 687px) {
	.page {
		padding-left: 10px;
		padding-right: 10px;
	}
	#events_panel {
	  padding: 10px;
	}
	#magazines_panel {
	  padding: 10px;
	}
}
/* On medium screens... */
@media only screen and (max-width: 991px) {
	#intro_container {
		width: 100%;
	}
}
@media only screen and (max-width: 687px) {
	#announcement {
		width: 100%;
	}
	#intro_inner {
		top: 30%;
	}
}

.annunc_modal {
  z-index: 1;
  opacity: 0;
  animation: myFadeIn 0.5s linear 2s ;
  animation-fill-mode: forwards;
  width: 45%;
  height: auto;
  border: 1px solid rgba(0, 0, 0, 0.4);
  border-radius: 3px;
  padding: 20px;
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.4);
  position: absolute;
  margin:20px 30px; 
}
#announcement {
  font-family: Helvetica, Arial, sans-serif;
  font-size: 16px;
  color: #1d2b36;
  background-color: #ffff99;
}
@-webkit-keyframes myFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes myFadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.annunc_modal:target {  
  display:none;
}

/* On smaller screens... */
@media only screen and (max-width: 687px) {
	.annunc_modal {
		width: 100%;
		margin: 0;
	}
}


form {
	font-size: 16px;
	border: none;
	background: none;
	padding-left: 20px;
	padding-right: 20px;
	padding-bottom: 20px;
}
form input {
	display: inline-block;
}
form div#email_error, form div#error_msg, form div#headcount_error, form div#voucher_error {
	display: none;
	background-color: red;
	color: white;
	padding-left: 1em; padding-right: 1em;
}
form #pay_method, form #pay_method_label {
	display: inline;
}
form #guide, form #ts_and_cs, form #privacy {
	display: inline;
	text-decoration: underline;
}
label {
  padding: 3px 12px 3px 0;
  display: inline-block;
}
input[type=text], input[type=number], input[type=email], input[type=tel], select, textarea {
  width: 100%;
  padding: 3px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
  resize: vertical;
}
input[type=number], select, #ctitle, #zipcode, #telephone, #mobile, #voucher_code, #membership_type, #postcode {
  width: 25%;
  min-width: 150px;
}
input[type=email] {
  width: 75%;
  min-width: 250px;
}
/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}

.col-25 {
  float: left;
  width: 20%;
  min-width: 150px;
  margin-top: 3px;
}
.col-75 {
  float: left;
  width: 80%;
  margin-top: 3px;
}
/* Responsive layout - when the screen is less than 600px wide, 
make the two columns stack one above the other instead of next to each other */
@media screen and (max-width: 687px) {
  .col-25, .col-75 {
    width: 100%;
    margin-top: 0;
  }
}

.spinner {
	height: 200px;
	width: auto;
}
.no_entry {
display: inline-block;
background-image: url('images/noentry.png');
background-repeat: no-repeat;
background-size: contain;
width: 72px;
height: 72px;
}

.events_list, .main_mags_list, .member_types_list, .main_profile_list {
	list-style: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
	justify-content: space-around;
	padding-inline-start: 0;
}

.events_list :first-child, .member_types_list :first-child {
    align-self: center;
}

.event_panel, .member_type_panel, .profile_panel {
	position: relative;
	display: inline-block;
	height: 500px;
	width:  22vw;
	min-width: 300px;
	font-family: 'Titillium Web', Arial, sans-serif;
	font-weight: normal;
	font-size: 16px;
	padding: 15px;
	margin-bottom: 10px;
	border-radius: 5px;	
}




.mags_list_item {
  display: inline-block;
  height: 282px;
  width: 200px; 
  margin-bottom: 10px;
}

/* events */

.event_panel {
	border: 1px solid gray;
	box-shadow: 3px 3px 3px grey;
}
.event_panel img {
	display: block;
	box-sizing: inherit;
	object-fit: cover;
	height: 150px;
	margin-left: auto;
	margin-right: auto;
}
.event_details {

}
.event_type {
	text-align: center;
	padding-top: 5px;
	font-size: 16px;
}
.event_title {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
}
.event_date {
	font-size: 16px;
	font-weight: bold;
}
.event_location {
	font-size: 16px;
	font-weight: normal;
}
.event_status {
	font-weight: bold;
	text-align: center;
}
.event_brief, .event_highlights {
	font-size: 16px;
	font-weight: normal;
}
.event_alert {
	font-weight: bold;
	color: #4682B4;
}

.detail_panel {
	position: relative;
	display: inline-block;
	height: auto;
	width:  30vw;
	min-width: 300px;
	font-family: 'Titillium Web', Arial, sans-serif;
	font-weight: normal;
	font-size: 16px;
	padding: 15px;
	border-radius: 5px;
	vertical-align: top;
}
.detail_panel img {
	display: block;
	box-sizing: inherit;
	object-fit: contain;
	max-height: 250px;
	max-width: 100%;
	padding: 15px;
	margin-left: auto;
	margin-right: auto;
}

/* buttons */
.button, .btn_details, .btn_read, .btn_book, .btn_join, .btn_submit, .btn_annunc {
  text-decoration: none;
  border: none;
  border-radius: 20px;
  padding: 0;
  padding-left: 8px;
  padding-right: 8px;
  font-size: 16px;
  font-weight: normal;
  cursor: pointer;
}
.btn_annunc {
  position: absolute;
  margin: 20px 30px;
  background-color: #ffff99;
  color: black;
  animation: myFadeIn 1s linear 3s;
  animation-fill-mode: forwards;
}
.button, .btn_details, .btn_read {
  background: #4682B4;
  color: white;	
}
.btn_book, .btn_join, .btn_submit {
  background: #DC143C;
  color: white;
}
.btn_submit:visited , .btn_submit:focus{
  text-decoration: none;
    outline: none;
}
.button:after, .btn_details:after, .btn_read:after, 
.btn_book:after, .btn_join:after, .btn_submit:after {
  content: "\00a0\25B6";
}
.btn_details a, .btn_details:hover, .btn_details:focus{
  outline: none;
  cursor: pointer;
}
.btn_small_print {
  display: block;
  text-align: center;
  text-decoration: underline;
  cursor: pointer;
}
.button_bar {
	position: absolute;
	display: block;
	width: calc(100% - 15px - 15px);
	text-align: center;
	bottom: 15px;
}
.close_modal {
	color: red;
	text-decoration: none;
	font-size: 24px;
	float: right;
}
.close_modal:after {
	display: block;
	content: "\00d7"; /* This will render the 'X' */
}
/* ----- Magazine page ----- */
.mag_listing {

}
.mag_listing a img, .mag_listing img {

}
.mag_listing a {
	text-decoration: none;
}
.magazine_open, .magazine_locked {
  border: 2px solid #E4E4E4; 
  box-shadow: 2px 2px 2px gray;
  height: 282px;
  width: 200px;
}
.magazine_locked {
	opacity: 0.5;
}

/* ----- Membership page ----- */

.member_type_panel {
	border: 1px solid rgba(0,0,0,0.1);
	box-shadow: 
    inset 0 2px 3px rgba(255,255,255,0.3),
    inset 0 -2px 3px rgba(0,0,0,0.3),
    0 1px 1px rgba(255,255,255,0.9);
	background: radial-gradient(#f5e5ba 0%, #fcba03 100%);
}
.member_type_panel img {
	display: block;
	box-sizing: inherit;
	object-fit: cover;
	height: 150px;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.6;
}
.member_type_panel .type_details {
}
.member_type_panel .type_details .type_title {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
}
.member_type_panel .type_details .member_price {
	text-align: center;
	font-weight: bold;	
}
.member_type_panel .type_details .member_benefits, .member_type_panel .type_details .member_benefits  p {
	text-align: center;
	margin-left: 15px;
	margin-right: 15px;
}

.member_modal {
  display: none; /* Hidden by default */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 70%;
  background: transparent;
}
.member_modal .cancel {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: default;
}
/* Modal Content */
.member_modal_content {
  position: absolute;
  background-color: #f8f8ff;
  opacity: 1.0;
  padding: 20px;
  border: 1px solid #4b4c41;
  border-radius: 5px;
  width: 90%;
  z-index: 1; /* Sit on top */
  left: 5%;
}
/* The Close Button */
.close_member_modal {
  color: red;
  float: right;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 28px;
  font-weight: normal;
}
.close_member_modal:after {
  display: block;
  content: "\00d7"; /* This will render the 'X' */
}
.close_member_modal:hover,
.close_member_modal:focus {
  text-decoration: none;
  cursor: pointer;
}
/* On smaller screens... */
@media only screen and (max-width: 550px) {
  .member_modal {
	width:100%;
  }
}
.member_gift {
	text-align: center;
	font-weight: bold;
}

/* End of membership page */

/* Committee page */

.profile_panel {
	border: 1px solid gray;
	box-shadow: 3px 3px 3px grey;
}
.profile_panel img {
	display: block;
	box-sizing: inherit;
	object-fit: cover;
	height: 150px;
	margin-left: auto;
	margin-right: auto;
	padding: 5px;
}
.profile_panel .name_role {
	font-size: 16px;
	font-weight: bold;
	padding-top: 5px;
}
.profile_panel .profile {
	font-size: 16px;
	padding-top: 5px;
}
.profile_panel .email {
	font-size: 16px;
	padding-top: 5px;
}

hr.rounded {
  border-top: 4px solid #bbb;
  border-radius: 2px;
}