/************** Basic items **********************************************************/

h1, h2, h3 { 
	color: #26D; 
	margin-top: 0.2em;
}
h1 { 
	margin-top: 0.5em; }
	font-size: 2em; 
}
h2 { font-size: 1.5em; }

/************* Structural items ***************************************************************/

body { 
	background: #FFF;
	font-family: Helvetica; 
	font-size: 10pt;
	padding: 0;
	margin: 0;
	color: #000;
}

header {  /** Gradient colour is BDF **/
	background-image: linear-gradient(
		to right,
		rgba(176, 208, 255, 0.2) 50%,
		rgba(176, 208, 255, 0.4) 60%,
		rgba(176, 208, 255, 0.6) 70%,
		rgba(176, 208, 255, 0.8) 80%,
   		rgba(176, 208, 255, 1.0) 100%
 	), url('../../Images/banner.png');
	background-size: cover;
	background-color: #EFE;
 	width: 100%;
	height: 14rem;
	padding: 0;
	margin: 0;
	
}

.admin { /** Smaller header in admin pages **/
	height: 5rem;
}

.minimal { /** Minimal header in minimal pages **/
	height: 2rem;
}

nav { /* Contains hamburger and main menu */
	width: 100%;
	padding: 0;
	margin: 0;
}

main {
	width: 100%;
	padding: 0.5rem;
	margin: 0;
}

footer, footer a {
	background-color: #1A6;
	width: 100%;
	margin: 0;
	text-align: center;
	padding-top: 3px;
	padding-bottom: 3px;
	padding-left: 30px;
	padding-right: 30px;
	background-color: #060;
	color: #FFF;
	border-bottom: 2px #DDE ridge;
}

/**************** Main divisions *****************************************************/

section {
	width: 95%;
	position: relative;
	padding-left: 10px;
	padding-right: 10px;
	padding-bottom: 10px;
	text-align: left;
	margin-left: 0;
	margin-right: 0;
	margin-top: 5px;
}

aside {
	background-color: #DEF;
	width: 25%;
	padding-left: 15px;
	padding-right: 5px;
	padding-bottom: 5px;
	padding-top: 5px;
	text-align: left;
    float: right;
    clear: both;
    position: relative;
    z-index: 10;
    display: block;
	margin-top: 0.5em;
	margin-left: 0.5em;
	border-left: 2px;
	border-right: 1px;
	border-top: 1px;
	border-bottom: 2px;
	border-style: ridge;
	border-radius: 5px;
}

/************* Header items **************************************************/

.logo {
	margin-top: 0.5rem;
	margin-left: 0rem;
    height: auto;
	width: 6rem;
    border-radius: 10%;
}

.club-name {
	margin-top: 1.0rem;
	padding: 2px;
	margin-left: 0.5rem;
	font-size: 24pt;
	text-align: left;
	width: 25%;
	color: #060;
    border-radius: 10%;
  	text-shadow: 0 0 2.0em #FFF;
}

.admin-name {
    position: absolute;
    top: -0.5em;
	left: 12%;
	padding-left: 0.5em;
	font-size: 24pt;
	text-align: left;
	width: 30%;
	color: #060;
}

.slide-box { 
	position: absolute; 
    top: 1.5rem;
    left: 35%;
    display: block;
    height: 12rem;
	width: auto;
}

.slide-box > img {
    height: 10rem;
    position: absolute;
 	transform-origin: center;
	padding: 0;
	border: #1A6 dotted 1px;
}

.minus-three { transform: rotate(-15eg); }
.minus-two { transform: rotate(-10deg); }
.minus-one { transform: rotate(-5deg); }
.zero { transform: rotate(0deg); }
.one { transform: rotate(5deg); }
.two { transform: rotate(10deg); }
.three { transform: rotate(15deg); }

.selling { 
	position: absolute; 
    top: 1.0rem;
    right: 0.1em;
    height: auto;
	width: 14rem;
    font-size: 1.25em;
    font-style: italic;
}

.selling, .selling a { 
    color: #22E;
    text-decoration: none;
}

.selling a:hover { 
    color: #26D;
}

/************* Navigation **************************************************/

#nav { /* ul for main menu. Could use nav > ul ?  */
	display: block; 
	background-color: #BDF; 
	margin: 0;
	text-align: center;
	text-align: left;
	font-size: 1em;
}
#nav ul { /* Drop down menus that appear on hover over li in main menu. */
	background-color: #22E; /* Creates left 'strip' as background. Foreground governed by #nav li. */
	z-index: 910;
	display: none;
	position: absolute;
	text-align: left;
	left: 0em;
	width: 10em;
	border: #68A 1px groove;
}
#nav li {  /* Default for menu items. */
	position: relative;
	border-width: 1px;
}
#nav > li { /* Items in main horizontal menu. Overrides #nav li. */
	display: inline-block; 
	color: #FFF;   /* Text colour of horizontal menu items */
	height: 1.5em;
	background-color: #26D; /* Background colour of horizontal menu items */
	padding-left: 1em;
	padding-right: 1em;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	border: 1px #DDE groove;
	border-radius: 5px;
	margin-top: -1.0em;
	margin-bottom: -1.5em;
}
#nav a {
	text-decoration: none;
	display: block; 
	color: #FFF;
}
#nav li > ul  { /* Drop menu format. */
	background-color: #DEF;
	list-style: none;
	color: #22E;
	top: 2.3em; /* Vertical offset for drop menus */
	padding: 0.2em;
	margin: 0;
}
#nav li:hover > ul  { /* Make drop menus appear on hover. */
	display: block; 
}
#nav li:hover { 
    background: #22E; /* Background of horizontal menu items on hover */
}
#nav li:hover > ul a  { 
	color: #22E;    /* Text colour of submenu items  */
	padding-left: 0.5em;
	border: none;
}
#nav li > ul li:hover a, #nav li > ul li:hover   { /* Hover on drop menu items */
	color: #FFF;
    background: #22E;
}

#admin_menu {
	display: block;
    position: absolute;
    top: 0;
    right: 0;
    padding: 2px;
	border-left: 1px;
	border-right: 0px;
	border-top: 0px;
	border-bottom: 1px;
	border-style: ridge;
	border-bottom-left-radius: 5px;
	background-color: #FFB;
	border-color: #AAA; 
}

/*************** Just  below header items *****************************************************/

.logged { 
	margin-top: 0.5rem; 
	font-style: italic; 
	color: #22E; 
	float: right;
	clear: both;
	padding-right: 1em;
}

.report { 
	border-bottom: 2px ridge #777;
	background: #FFB;
}

/****************** Forms **************************************************/

.form-label { 
    font-weight: bold;
}

.form-wrapper {
    padding: 0;
    border-radius: 3px;
}
.form-row {
    padding: 0.5em;
}
.form-row > label {
    padding: 0.5em;
}

input {
	margin: 0;
}

input[type=checkbox], input[type=submit] {
	background-color: #1A6;
	color: #FFF;
	font-weight: bold;
	margin: 3px;
	border-radius: 5px;
	border: 1px groove #AAA;
  	text-decoration: none;
	cursor: pointer;
}

.autosave { 
	position: absolute;
	color: black;
	background: #DFD;	
	border: 1px solid #AAF;
	border-left: 4px solid #7F7;
	margin-left: -1px;
	margin-bottom: 2px;
	padding-left: 0.5em;
	padding-right: 0.5em;
}

/*********** Generic styles **************************************************/


.red-text { color: red; }

.MNSC-text, .MNSC-text a  { color: #186; }

.white { background: #FFF; }
 
.MNSC-blue { 
	background: #DEF;
	border-color: #AAF; 
}
.MNSC-back { 
	background-color: #EEF;
}
.MNSC-light { 
	background-color: #DFD;
}
.MNSC-dark { 
	background-color: #060;
}

.dots { border: 1px dotted #00F; }

/*********** Google maps ******************************************************/

.map_canvas {
	width: 500px;
	height: 400px;
	margin-bottom: 2em;
}
.small_canvas {
	width: 400px;
	height: 300px;
	margin-bottom: 1em;
}

/************ Images ************************************************************/

figure { 
  	align-items: center;
  	background-color: #CDE;
}
figure > img { 
  	width: 100%;
  	height: auto;
}

figcaption, .figcaption {
	width: 100%;
	background-color: #26D;
	color: #FFF;
	margin: 0;
	padding: 0;
}

.figcaption {
	background-color: #060;
}

.slide-control-button {
    bottom: 0;
    left: 0;
    position: relative;
    width: 1.6em;
	text-decoration: none;
	background-color: #CDF;
	border: 1px ridge #AAA;
}

.slide-show {
    display: block;
    height: 22rem;
    object-fit: cover;
    width: auto;
    padding: 2px;
}

.slide-number { /* Box for displaying slide number in slide show. */
	font-size: 5em; 
	padding: 0.5em;
	border: 2px #C75 solid; 
	background: #1A6;
	color: #FFF;
	height: 1.5em;
   	top: 0.1em;
    left: 0;
    position: absolute;
}

.framed { /* Used for img element in photo contest slide show */
	border: 18px #C75 ridge;
	max-width: 60%;
	margin-top: 0.5em; 
	margin-left: 9em;
}

.slide-gallery { /* Used for gallery in photo contest slide show */
	position: relative;
 	display: flex;
  	flex-direction: row;
	align-items: center;
	text-align: left;
	background-color: #EFE;
	border: 1px dotted;
	margin: 0;
}

.slide-gallery > figcaption { /* Used for gallery in photo contest slide show */
	font-size: 1.5em; 
	background-color: #1A6;
	text-align: left;
	border: 1px dotted;
    top: 0.5em;
    right: 0;
    width: 20%;
    position: absolute;
}

/********** Autosuggest styles *************************************************/

.suggest-wrapper { 
	position: relative;
	display: block;
	margin: 0;
}

.suggest-input {
	position: absolute;
	left: 0;
}

.suggest { 
	position: absolute;
	display: block;
	z-index: 999;
	left: 0;
	width: 15em;
	padding: 0.2em;
	border-style: ridge;
	border-width: 1px;
	border-radius: 0px;
	list-style: none;
    border-color: #777;
    border-radius: 5px;
    background-color: #EEF;
}

.suggest:before {
    display: block;
    content: '';
    position: absolute;
    left: 20%;
    border: 8px outset transparent;
    border-bottom: 10px solid #777;
    top: -18px;
}

.loose { top: 1em; }
.tight { margin-top: 0.3em; }

.suggest li {
	position: relative;
	margin: 0;
	display: block;
	width: 100%;
	text-align: left;
	padding-left: 0.35em;
	padding-right: 0.35em;
	border-width: 1px;
	border-color: #228;
	border-bottom: 1px solid;
	width: 96%;
}

.suggest a {
	width: 100%;
	text-decoration: none;
}

.login-menu {
	margin: 0;
	padding-right: 1em;
	border-style: ridge;
	border-width: 2px;
	border-radius: 5px;
	display: inline-block;
	text-align: center;
}

.login-menu-item {
	margin-top: 0;
	margin-bottom: 0;
	background-color: #000;
	display: inline-block;
	padding-top: 0.2em;
	padding-bottom: 0.2em;
	padding-left: 0.5em;
	padding-right: 0.5em;
	text-align: center;
	border: 1px #FFF ridge;
	border-radius: 5px;
}

/************** Feeds **********************************************************/

.collapse-button {
	background-color: #1A6;  
	color: #FFF; 
}

.reply, .collapse-button:hover {
	background: #EFE;
}

.reply p {
	background: #FFF;
	border: dotted 1px #1A6;
	margin-top: 0;
}

/************** General **********************************************************/

.box {
	vertical-align: top;
	padding: 0px;
	margin: 5px;
	border: 3px #DDE ridge;
}

.right {  
	float: right;
	margin-left: 1em;
	clear: both;
}

.left {  
	float: left;
	margin-right: 1em;
	clear: both;
}


/************ Tables ***************************************************************/

.tab-before {
    display: flex;
    justify-content: flex-start;
    align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

.tab-before li, .tab-before a {
	display: inline-block;
	text-decoration: none;
	padding-left: 0.5em;
	padding-top: 0.2em;
	padding-right: 0.5em;
	padding-bottom: 0;
	margin-bottom: 0;
	border-radius: 5px 5px 0 0;
	margin: 0;	
}

.unselected { border-right: 1px #777 solid;  }

.column-actions {
	background-color: #DFD;
	border: 1px #060 dotted;
	border-radius: 1rem;
	padding-left: 0.25rem;
	padding-right: 0.25rem;
}

table {
	border-width: 1px;
	border-color: #ACD;
	background: #FFF;
	margin-top: 0.9em;
	margin-left: 0.2em;
	margin-bottom: 0.5em;
	border-style: dotted;
	border-width: 1px;
	border-collapse: collapse;
}

th {
	background-color: #1A6;  
	color: #FFF; 
	border-right: 1px dotted;
	border-bottom: 3px ridge #ACD;
	padding: 0em;
	text-align: left;
}

td { 
	padding: 0.2em;
	border-right: 1px dotted;
	border-bottom: 1px dotted;
}   

/* Freeze table head in data tables */

.fixed-table {
	table-layout: fixed;
}

.zebra tr:nth-child(even) { background: #FFF; }
.zebra tr:nth-child(odd) { background: #EEE; }

.fixed-table tbody {
	display: block;
 	overflow: auto;
	max-height: 50em; 
}

.fixed-table thead, .fixed-table tbody tr  {
	display: table;
	width: 99%;
	table-layout: fixed;
	word-wrap: break-word;
}

/**/

.hide {
	display: none;
	padding 0.5em;
}

.actions {  
	color: #F00;
	text-align: right;
}

/************ Modals and buttons ***********************************************/

.modal-box {
	background-color: #EFE;
	border-style: ridge;
	border-width: 2px;
	border-color: #777;
}
.modal-box h1 {
  background-color: #1A6;
  margin: 0;
  color: white;
  padding: 2px 16px;
  width: 100% auto; 
}

.modalContent {
	padding-left: 1em;
}

button, .buttons { /** Can .buttons be retired? ************/
	background-color: #48F;
	color: #FFF;
	font-weight: 400;
	border-radius: 5px;
	border: 1px ridge #AAA;
}

.calendar-buttons {
	background-color: #CDE;
	color: #00F;
	font-weight: 400;
	border-radius: 5px;
	border: 1px ridge #AAA;
}

.buttons:hover {
	background-color: #22E;
}

.dim { 
	background-color: #AAA;
	border-color: #444;
 }

.bright { 
	background-color: #ECC;
	border-color: #DBB;
	color: #00F;
 }

/************** Calendars ********************************************************/

.calendar th {
	text-align: center;
	width: 8em;
	background: #48F;
}

.boxhead { /* Band at top of date entry containing the date. */
	background-color: #DEF;  
	color: #000; 
}

.spaces {   /* Show the remaining event spaces in calendar. */
	font-style: normal;
	display: inline-block;
	color: #FFF;
	background: #F00;
	padding-left: 0.4em;
	padding-right: 0.4em;
	padding-top: 0.2em;
	padding-bottom: 0.2em;
    border-radius: 0.8em;
}

.day {
	width: 8em;
	padding-left: 0;
	padding-right: 0;
}
.month {
	width: 3em;
	background: #48F;
	color: #FFF;
}
.today {
	border-style: ridge;
	border-width: 2px;
	border-color: #1A6;
	background: #9AF;
}

.today boxhead {
	color: #FFF;
	background: #666;
}

.current {
	background: #888;
	color: #FFF;
}

.blank {
	background: #BDF;
	width: 8em;
}

.entry {
	padding-left: 0;
	padding-right: 0;
	margin: 0;
	font-size: 0.8em;
}

.entry li {
	margin: 0;
}

.strut {
	height: 4.5em;
}

.only {
	padding-top: 0.2em;
	border: ridge 2px;
    border-radius: 0.5em;
	height: 5em;
	font-size: 0.8em;
}
.free { height: auto; }
.mid {
	padding-top: 0.2em;
	border-top: ridge 2px;
	border-bottom: ridge 2px;
	height: 5em;
	font-size: 0.8em;
}
.start {
	padding-top: 0.2em;
	margin-left: 1em;
    border-top-left-radius: 0.8em;
    border-bottom-left-radius: 0.8em;
	border-top: ridge 2px;
	border-bottom: ridge 2px;
	border-left: ridge 2px;
	height: 5em;
	font-size: 0.8em;
}
.end {
	padding-top: 0.2em;
	margin-right: 1em;
    border-top-right-radius: 0.8em;
    border-bottom-right-radius: 0.8em;
	border-top: ridge 2px;
	border-bottom: ridge 2px;
	border-right: ridge 2px;
	height: 5em;
	font-size: 0.8em;
}

.cal-nav {
    display: flex;
    justify-content: center;
    align-items: center;
	margin: 0;
	list-style: none;
	text-align: center;
	font-size: 0.8em;
}

.cal-nav li,.cal-nav li a {
	display: inline-block;
	text-decoration: none;
	margin-left: 2px;
	padding-left: 0.5em;
	padding-top: 0.1em;
	padding-right: 0.5em;
	padding-bottom: 0.1em;
	font-weight: bold;	
}
.cal-nav li:hover,.cal-nav li a:hover {
	background-color: #AAA;	
}

.selected, .selected a, .backwards, .backwards a, .forwards, .forwards a {
	color: #FFF;
	background: #26D;
	padding-top: 0.3em;
	padding-bottom: 0.3em;
	border: 0;
}

.selected:hover, .selected a:hover, .backwards:hover, .backwards a:hover, .forwards:hover, .forwards a:hover {
	background: #22E;
}

.offer {
	background: #BDF;
}

.request {
	background: #FE7;
}

/*******************	Hamburger and aside retrieval ********************/

.hidden {
	display: none; 
}

.show_aside {
	border: 2px; 
	border-style: ridge;
	border-color: #00F;
	border-radius: 4px;
	background-color: #DEF; 
    padding 0.4em;
    margin 0.4em;
}

/************************************************************************************
	Mobile devices and narrow screens
*************************************************************************************/

@media screen and (max-width: 900px) {
	#nav, #nav >li { 
		padding-left: 0;
		padding-right: 0;
	}
}

@media screen and (max-width: 767px) {

	.club-name { 
		font-size: 2rem; 
		margin-top: 0;
	}
	.admin-name { font-size: 2rem; }
	.slide-box { height: 8rem; }
	.slide-box > img { height: 7rem; }
	.selling { 
		top: 2rem;
		right: -2rem;
		font-size: 1rem;
	}
	#nav { 
		display: none;
		width: 50%;  
		padding-left: 0;
		padding-right: 0;
	}
	#nav ul { width: 80%; }
	#nav li {
		display: block;
		border-style: dotted;
		border-radius: 2px;
	}
	#nav > li { /* Main horizontal menu items */
		margin-top: 0;
		margin-bottom: 0;
	}
	#nav li:hover > ul  { top: 0em; left: 85%; padding-left: 0.1em; }
 	.hamburger { display: inline-block; } 
	.logo { width: 3em;	 } 
	h1 { font-size: 1.75em; }
	h2 { font-size: 1.25em; }
	.immense { font-size: 1.75em; }	
	.large { font-size: 1.5em; }
	.slide-gallery { /* Used for gallery in photo contest slide show */
	  	flex-direction: column;
		justify-content: left;
	}
}
	
@media screen and (max-width: 540px) {

	#nav li:hover > ul  { 
		top: 0em; 
		left: 80%;  
		padding-left: 0.1em; 
	}
	h1 { font-size: 18pt; }
	h2 { font-size: 14pt; }
	.show_aside { display: inline-block; }   
	aside { display: none; }   
	img { max-width: 80%; }
	.slide-box {  width: 6rem; }
	.slide-box > img { height: 5rem; }
	.admin-name { font-size: 14pt; }
	
}

@media (-webkit-min-device-pixel-ratio: 2) and (max-device-width: 480px) {

	.club-name { font-size: 14pt; }
 	.hamburger { display: inline-block; } 
	.slide-box {  display: none; }
	.show_aside { display: inline-block; }   
	aside { display: none; }   
	#nav { 
		display: none;
		width: 50%;  
		padding-left: 0;
		padding-right: 0;
	}
	#nav ul { right: 0; }
	#nav li {
		display: block;
		border-style: dotted;
		border-radius: 0;
	}
	#nav > li { /* Main horizontal menu items */
		margin-top: 0;
		margin-bottom: 0;
	}
	.immense { font-size: 1.75em; }	
	.large { font-size: 1.5em; }
	img { max-width: 80%; }
}

