/*
=============
ALIGNMENT
=============
*/
@media only screen and (min-width: 600px) {
	.block_align_left {
		text-align:left;
	}
	.block_align_center {
		text-align:center;
	}
	.block_align_right {
		text-align:right;
	}
}


/* 
=============
2 COL TEXT
=============
*/

@media only screen and (min-width: 600px) {
	.text2 .inner {
		display:grid;
		grid-gap:4rem;
		grid-template-columns:1fr 1fr;
	}
}



/* 
=============
TEXT AND IMAGE
=============
*/

.text-and-image .inner :first-child {
	grid-area: tai-text;
}
.text-and-image .inner :last-child {
	grid-area: tai-image;
}
	.text-and-image .inner :last-child>a {
		opacity:1;
	}

.text-and-image .inner {
	width:100%;
	display:grid;
	grid-gap:1rem;
	grid-template-columns:1fr;
	grid-template-rows:auto auto;
	grid-template-areas:
		"tai-text"
		"tai-image"
	;
	}

@media only screen and (max-width: 599px) {
	.text-and-image.mobile_tai_reverse .inner {
		grid-template-areas:
			"tai-image"
			"tai-text"
		;	
	}
}

.text-and-image .text-and-image-caption {
	display:block;
	text-align:center;
	font-size:.9rem;
	line-height:1.2;
}

@media only screen and (min-width: 600px) {
	.text-and-image .inner {
		grid-template-columns:1fr 1fr;
		grid-gap:2rem;
		grid-template-rows:auto;
		grid-template-areas:
			"tai-text tai-image"
			;
		}
		
		.text-and-image>.inner>div:last-child {
			justify-self: end;
		}
		.text-and-image.desktop_tai_image_align_center .inner :last-child {
			align-self: center;
		}
		.text-and-image.desktop_tai_image_align_end .inner :last-child {
			align-self: end;
		}
		.text-and-image.desktop_tai_reverse .inner {
			grid-template-areas:
				"tai-image tai-text"
			;	
		}
			.text-and-image.desktop_tai_reverse .inner :last-child {
				justify-self: start;
			}


		.tai_20_80 .inner {
			grid-template-columns:2fr 8fr;
		}
			.text-and-image.desktop_tai_reverse.tai_20_80 .inner {
				grid-template-columns:8fr 2fr;
			}
		.tai_30_70 .inner {
			grid-template-columns:3fr 7fr;
		}
			.text-and-image.desktop_tai_reverse.tai_30_70 .inner {
				grid-template-columns:7fr 3fr;
			}
		.tai_40_60 .inner {
			grid-template-columns:4fr 6fr;
		}
			.text-and-image.desktop_tai_reverse.tai_40_60 .inner {
				grid-template-columns:6fr 4fr;
			}
		.tai_60_40 .inner {
			grid-template-columns:6fr 4fr;
		}
			.text-and-image.desktop_tai_reverse.tai_60_40 .inner {
				grid-template-columns:4fr 6fr;
			}
		.tai_70_30 .inner {
			grid-template-columns:7fr 3fr;
		}
			.text-and-image.desktop_tai_reverse.tai_70_30 .inner {
				grid-template-columns:3fr 7fr;
			}
		.tai_80_20 .inner {
			grid-template-columns:8fr 2fr;
		}
			.text-and-image.desktop_tai_reverse.tai_80_20 .inner {
				grid-template-columns:2fr 8fr;
			}
}


/*
=============
MEDIA
=============
*/

section.media iframe {
	max-width:100vw !important;
}


.media_to_left_of_text>div>div.inner,
.media_above_text>div>div.inner {
	display:grid;
	grid-gap:2rem;
	grid-template-rows: auto auto;
}
	.media_to_left_of_text>div>div.inner>div:first-child,
	.media_above_text>div>div.inner>div:first-child {
		grid-row:2;
	}
	.media_to_left_of_text>div>div.inner>div:last-child,
	.media_above_text>div>div.inner>div:last-child {
		grid-row:1;
	}

@media only screen and (min-width: 600px) {
	.media_to_right_of_text>div>div.inner {
		display:grid;
		grid-gap:2rem;
		grid-template-columns:1fr 1fr;
	}

	.media_to_left_of_text>div>div.inner {
		grid-template-columns:1fr 1fr;
	}
		.media_to_left_of_text>div>div.inner>div:first-child {
			grid-column: 2;
			grid-row: 1;
		}
		.media_to_left_of_text>div>div.inner>div:last-child {
			grid-column: 1;
			grid-row: 1;
		}
}


/*
=============
SCRIPT BLOCK
=============
*/



.script_to_left_of_text>div>div.inner,
.script_above_text>div>div.inner {
	display:grid;
	grid-gap:2rem;
	grid-template-rows: auto auto;
}
	.script_to_left_of_text>div>div.inner>div:first-child,
	.script_above_text>div>div.inner>div:first-child {
		grid-row:2;
	}
	.script_to_left_of_text>div>div.inner>div:last-child,
	.script_above_text>div>div.inner>div:last-child {
		grid-row:1;
	}

@media only screen and (min-width: 600px) {
	
	.donate_script>div>div.inner {
		grid-template-rows: auto;
	}

	.script_to_right_of_text>div>div.inner {
		display:grid;
		grid-gap:2rem;
		grid-template-columns:1fr 1fr;
	}

	.script_to_left_of_text>div>div.inner {
		grid-template-columns:1fr 1fr;
	}
		.script_to_left_of_text>div>div.inner>div:first-child {
			grid-column: 2;
			grid-row: 1;
		}
		.script_to_left_of_text>div>div.inner>div:last-child {
			grid-column: 1;
			grid-row: 1;
		}
}



/*
=============
DONATE BUTTON
=============
*/



.button_to_left_of_text>div>div.inner,
.button_above_text>div>div.inner {
	display:grid;
	grid-gap:2rem;
	grid-template-rows: auto auto;
}
	.button_to_left_of_text>div>div.inner>div:first-child,
	.button_above_text>div>div.inner>div:first-child {
		grid-row:2;
	}
	.button_to_left_of_text>div>div.inner>div:last-child,
	.button_above_text>div>div.inner>div:last-child {
		grid-row:1;
	}

@media only screen and (min-width: 600px) {
	
	.donate_button>div>div.inner {
		grid-template-rows: auto;
	}

	.button_to_right_of_text>div>div.inner {
		display:grid;
		grid-gap:2rem;
		grid-template-columns:1fr 1fr;
	}

	.button_to_left_of_text>div>div.inner {
		grid-template-columns:1fr 1fr;
	}
		.button_to_left_of_text>div>div.inner>div:first-child {
			grid-column: 2;
			grid-row: 1;
		}
		.button_to_left_of_text>div>div.inner>div:last-child {
			grid-column: 1;
			grid-row: 1;
		}
}




/* 
=============
IMAGE BACKGROUND
=============
*/

section.image-background {
	padding-top:0;
	padding-bottom:0;
	min-height:2rem;
}

	section.image-background::before {
		background-size:cover;
		background-position: center center;
	}
	section.image-background.image_background_fixed::before {
		position:fixed;
		z-index:-2;
	}
	section.image-background {
		background-color:transparent !important;
	}
	section.image-background>div>div.inner {
		display:flex;
		align-items:center;
		padding:1rem;
		margin:4% 1%;
	}
	
	@media only screen and (min-width: 1000px) {
		section.image-background>div>div.inner {
			margin:1%;
		}
	}
	
	footer section.image-background::before {
		content:'';
		position:absolute;
		top:0;
		left:0;
		bottom:0;
		right:0;
	}

/*
=============
TESTIMONIAL
=============
*/
section.testimonials_default_text_size blockquote {
	font-size: var(--font-size) !important;
	padding:0;
}
section.testimonials_default_text_size b {
	font-weight:normal;
}

/* 
=============
LATEST NEWS 
=============
*/

ul.news_headlines {
	padding:0;
	margin:0;
}

	ul.news_headlines li {
		display: grid;
		list-style-type:none;
		margin:0 0 1px 0;
		clear:both;
		overflow: auto;
		padding: .8rem 0;
	}
	aside ul.news_headlines li {
		font-size:.8em;
	}
		ul.news_headlines li a {
			display: flex;	
			align-items: center;
		}

section.news_story {
	
}


/*
=============
GALLERY
=============
*/
.gallery_remove_opacity a {
	opacity:1;
}
.gallery_remove_spacing .gallery_holder {
	grid-gap:0;
}
.gallery_remove_spacing .gallery_holder a {
	margin:0;
}


.gallery_item_details {
	/* width:800px; */
	max-width:80vw;
}

.gallery_item_details img {
	/* max-height:60vh; */
}

.fancybox-inner .gallery_item_details th, .fancybox-inner .gallery_item_details td {
	padding:.5rem;
}

.fancybox-inner .gallery_item_details h3 {
	font-size:1.2em;
}


.gallery_remove_padding {
	padding:0 !important;
}

.gallery_foreground {
	padding-top:0;
}
	.gallery_foreground.caption_below figcaption {
		position:relative;
	}

.block.gallery .inner>:first-child {
	grid-area: gallery-text;
}
.block.gallery .inner>:last-child {
	grid-area: gallery-image;
}


.block.gallery a .caption_summary {
	text-decoration:none !important;
}
	.block.gallery .caption_summary {
		font-size:smaller;
		line-height:1.3;
	}

@media only screen and (min-width: 800px) {

	/* setting text to left or right - desktop only */

	section.gallery_to_right div.inner,
	section.gallery_to_left div.inner, 
	section.gallery_below div.inner {
		display:grid;
		grid-gap: 2rem;
		grid-template-columns:1fr 1fr;
	}
	section.gallery_to_right div.inner {
		grid-template-areas:
			"gallery-text gallery-image"
		;
	}
	section.gallery_to_left div.inner {
		grid-template-areas:
			"gallery-image gallery-text"
		;
	}
}

section.gallery_below div.inner {
	display:grid;
	gap:2rem;
	grid-template-columns:1fr;
	grid-template-rows:auto auto;
	grid-template-areas:
		"gallery-image"
		"gallery-text"
	;
}

section.gallery_below div.inner>div:first-child {
	grid-row:2;
}
section.gallery_below div.inner>div:last-child {
	grid-row:1;
}
	
/* GALLERY SLIDESHOW MODE */
.slideshow_holder {

}

.slideshow_holder .stayhidden {
	display:none !important;
}

.slideshow_holder>* {
	position:relative;
	max-width:100vw;
}

.slideshow_holder>*>figure+p {
	position:absolute;
	left:0;
	bottom:0;
	right:0;
	padding:.4rem 2rem;
	background:rgba(0,0,0,.5);
	color:#fff;
	text-align:center;
	font-size:.8rem;
	margin:0;
}

.slideshow_101 figure {
	background-size:contain;
	background-repeat:no-repeat;
	background-color:transparent;
}

.gallery-slideshow {
	position:relative;
}
	.gallery-slideshow:hover::before {
		content:'';
		z-index:999;
		position:absolute;
		right:2rem;
		bottom:3rem;
		width:4rem;
		height:4rem;
		background-image:url(https://web-cdn.org/img/pause.png);
		background-size:contain;
		background-repeat:no-repeat;
		background-position:center center;
		opacity:0.4;
	}

.gallery-slideshow .bx-controls {
	position:absolute;
	left:0;
	bottom:0;
	right:0;
	padding:5px;
}
.bx-prev {
	position:absolute;
	color:#fff;
	text-decoration:none;
	bottom: .1rem;
	left: .5rem;
}
.bx-next {
	position:absolute;
	color:#fff;
	text-decoration:none;
	bottom: .1rem;
	right: .5rem;
}

.gallery_animation_1 a {
	box-shadow:none !important;
}

.gallery_animation_1 figure {
	transition: all .5s;
}
.gallery_animation_1 figure:hover {
	border-radius: 25% !important;
}



/*
=============
SHOP
=============
*/

span.price {
	white-space:nowrap;
}



/* 
=============
AVAILABILITY CALENDAR 
=============
*/

.availability_calendar_grid {
	display:grid;
	grid-gap:1rem;
}
@media only screen and (min-width: 600px) {

	.availability_calendar_grid_columns2,
	.availability_calendar_grid_columns4 {
		grid-template-columns:1fr 1fr;
		grid-gap:2rem;
	}

	.availability_calendar_grid_columns3,
	.availability_calendar_grid_columns6,
	.availability_calendar_grid_columns12 {
		grid-template-columns:1fr 1fr 1fr;
		grid-gap:2rem;
	}

}


.availability_calendar_holder {
	display:grid;	
	grid-gap:2px;
}
	.availability_calendar_holder.monthly {
		grid-template-rows: auto auto 1fr;
	}

.availability_calendar_holder .changemonth {
	cursor:pointer;
}

.availability_calendar_holder.monthly .calendar_head,
.availability_calendar_holder.monthly .calendar_days,
.availability_calendar_holder.monthly .calendar_body {
	display:grid;
	grid-template-columns: repeat(7, 1fr);
	grid-gap:2px;
}

	.availability_calendar_holder.monthly>div>span {
		background-color:var(--theme_background_1);
		color:var(--theme_foreground_1);
		text-align:center;
	}
	.availability_calendar_holder.monthly>div>div {
		background-color:var(--theme_background_2);
		color:var(--theme_foreground_2);
	}
		.availability_calendar_holder.monthly>div>div>span {
			display:block;
			text-align:center;
			background-color:var(--theme_background_3);
			color:var(--theme_foreground_3);
		}
			.availability_calendar_body.monthly>div>div>span:not(:first-child) {
				font-size:0.9em;
			}


/* colors of available or booked dates */

	.availability_calendar_holder.monthly>div.availability_calendar_body>span {
		background:var(--block_color_1);
		color:var(--block_color_1_alt);	
	}
	.availability_calendar_holder.monthly>div.availability_calendar_body>span.booked {
		background:var(--block_color_2);
		color:var(--block_color_2_alt);
	}
	
	
	
	
	.availability_calendar_holder.monthly span.monthname {
		grid-column: span 5;
		text-align:center;
	}
	.availability_calendar_holder.monthly span i {
		display:none;
	}
	
	.availability_key {
		padding-top:1rem;
	}
		.availability_key_available {
			display:inline-block;
			padding:5px;
			background:var(--block_color_1);
			color:var(--block_color_1_alt);	
			border:1px solid #bbb;
		}
		.availability_key_booked {
			display:inline-block;
			padding:5px;
			background:var(--block_color_2);
			color:var(--block_color_2_alt);	
			border:1px solid #bbb;
		}
	

.availability_calendar_holder.monthly .availability_calendar_head,
.availability_calendar_holder.monthly .availability_calendar_days,
.availability_calendar_holder.monthly .availability_calendar_body {
	display:grid;
	grid-template-columns: repeat(7, 1fr);
	grid-gap:2px;
}

/* month name */
	.availability_calendar_holder.monthly span.monthname {
		grid-column: span 5;
	}


.availability_calendar_holder .no_events {
	display:block;
}

	
	
/* move headings dependent upon start day */
	
	/* move saturday to first column */
	.startday_saturday .availability_calendar_days span:nth-child(7) {
		grid-column:1;
		grid-row:1;
	}
	
	/* move friday to first column */
	.startday_friday .availability_calendar_days span:nth-child(6) {
		grid-column:1;
		grid-row:1;
	}
		/* move saturday to second column */
		.startday_friday .availability_calendar_days span:nth-child(7) {
			grid-column:2;
			grid-row:1;
		}
		
	/* move monday to first column */
	.startday_monday .availability_calendar_days span:nth-child(2) {
		grid-column:1;
		grid-row:1;
	}
		/* move sunday to last column */
		.startday_monday .availability_calendar_days span:nth-child(1) {
			grid-column:7;
			grid-row:1;
		}	
	/* move tuesday to first column */
	.startday_tuesday .availability_calendar_days span:nth-child(3) {
		grid-column:1;
		grid-row:1;
	}
		/* move sunday to 6th column */
		.startday_tuesday .availability_calendar_days span:nth-child(1) {
			grid-column:6;
			grid-row:1;
		}
		/* move monday to last column */
		.startday_tuesday .availability_calendar_days span:nth-child(2) {
			grid-column:7;
			grid-row:1;
		}
	/* move wednesday to first column */
	.startday_wednesday .availability_calendar_days span:nth-child(4) {
		grid-column:1;
		grid-row:1;
	}
		/* move sunday to 5th column */
		.startday_wednesday .availability_calendar_days span:nth-child(1) {
			grid-column:5;
			grid-row:1;
		}
		/* move monday to 6th column */
		.startday_wednesday .availability_calendar_days span:nth-child(2) {
			grid-column:6;
			grid-row:1;
		}		
		/* move tuesday to last column */
		.startday_wednesday .availability_calendar_days span:nth-child(2) {
			grid-column:7;
			grid-row:1;
		}		
	/* move thursday to first column */
	.startday_thursday .availability_calendar_days span:nth-child(5) {
		grid-column:1;
		grid-row:1;
	}
		/* move sunday to 4th column */
		.startday_thursday .availability_calendar_days span:nth-child(1) {
			grid-column:4;
			grid-row:1;
		}
		/* move monday to 5th column */
		.startday_thursday .availability_calendar_days span:nth-child(2) {
			grid-column:5;
			grid-row:1;
		}		
		/* move tuesday to 6th column */
		.startday_thursday .availability_calendar_days span:nth-child(3) {
			grid-column:6;
			grid-row:1;
		}		
		/* move wednesday to last column */
		.startday_thursday .availability_calendar_days span:nth-child(4) {
			grid-column:7;
			grid-row:1;
		}		
		
		
		
/* 
this is where we set the placement so that the first day sits under the correct weekday 
default is changeover date of sunday
*/

	.availability_calendar_body span:first-child,
	.startday_saturday .availability_calendar_body.monthstart7 span:first-child,
	.startday_friday .availability_calendar_body.monthstart6 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart5 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart4 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart3 span:first-child,
	.startday_monday .availability_calendar_body.monthstart2 span:first-child
	 {
		grid-column:1;
	}
	.availability_calendar_body.monthstart2 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart1 span:first-child,
	.startday_friday .availability_calendar_body.monthstart7 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart6 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart5 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart4 span:first-child,
	.startday_monday .availability_calendar_body.monthstart3 span:first-child
	 {
		grid-column:2;
	}
	.availability_calendar_body.monthstart3 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart2 span:first-child,
	.startday_friday .availability_calendar_body.monthstart1 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart7 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart6 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart5 span:first-child,
	.startday_monday .availability_calendar_body.monthstart4 span:first-child
	 {
		grid-column:3;
	}
	.availability_calendar_body.monthstart4 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart3 span:first-child,
	.startday_friday .availability_calendar_body.monthstart2 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart1 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart7 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart6 span:first-child,
	.startday_monday .availability_calendar_body.monthstart5 span:first-child
	 {
		grid-column:4;
	}
	.availability_calendar_body.monthstart5 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart4 span:first-child,
	.startday_friday .availability_calendar_body.monthstart3 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart2 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart1 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart7 span:first-child,
	.startday_monday .availability_calendar_body.monthstart6 span:first-child {
		grid-column:5;
	}
	.availability_calendar_body.monthstart6 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart5 span:first-child,
	.startday_friday .availability_calendar_body.monthstart4 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart3 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart2 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart1 span:first-child,
	.startday_monday .availability_calendar_body.monthstart7 span:first-child {
		grid-column:6;
	}
	.availability_calendar_body.monthstart7 span:first-child,
	.startday_saturday .availability_calendar_body.monthstart6 span:first-child,
	.startday_friday .availability_calendar_body.monthstart5 span:first-child,
	.startday_thursday .availability_calendar_body.monthstart4 span:first-child,
	.startday_wednesday .availability_calendar_body.monthstart3 span:first-child,
	.startday_tuesday .availability_calendar_body.monthstart2 span:first-child,
	.startday_monday .availability_calendar_body.monthstart1 span:first-child {
		grid-column:7;
	}


	

/* show diagonal backgrounds behind start/end dates */

	.a_c_diagonals .availability_calendar_holder.monthly>div.availability_calendar_body>span {
		background-image: linear-gradient(to bottom right, var(--block_color_1) 50%, var(--block_color_1) 50%);
		color:var(--block_color_1_alt);
	}
	.a_c_diagonals .availability_calendar_holder.monthly>div.availability_calendar_body>span.booked {
		background-image: linear-gradient(to bottom right, var(--block_color_2) 50%, var(--block_color_2) 50%);
		color:var(--block_color_2_alt);
	}
	.a_c_diagonals .availability_calendar_holder.monthly>div.availability_calendar_body>span.booked.startdayab {
		background-image: linear-gradient(to bottom right, var(--block_color_1) 50%, var(--block_color_2) 50%);
		color:var(--block_color_1_alt);
	}	
	.a_c_diagonals .availability_calendar_holder.monthly>div.availability_calendar_body>span.startdayba {
		background-image: linear-gradient(to bottom right, var(--block_color_2) 50%, var(--block_color_1) 50%);
		color:var(--block_color_2_alt);
	}


/* 
=============
EVENTS CALENDAR 
=============
*/

.events_calendar_holder {
	display:grid;	
	grid-gap:2px;
}

.events_calendar_holder .changemonth {
	cursor:pointer;
}

.events_calendar_holder.monthly .calendar_head {
	display:grid;
	grid-template-columns: 1fr 3fr 1fr;
	grid-gap:2px;
}

.events_calendar_holder.monthly .calendar_days {
	display:none;
}
.events_calendar_holder.monthly .calendar_body {
	display:grid;
	grid-template-columns: 1fr;
	grid-gap:2px;	
}

	.events_calendar_holder.monthly>div>span {
		background-color:var(--theme_background_1);
		color:var(--theme_foreground_1);
		text-align:center;
	}
	.events_calendar_holder.monthly>div>div {
		background-color:var(--theme_background_2);
		color:var(--theme_foreground_2);
	}
		.events_calendar_holder.monthly>div>div>span,
		.events_calendar_holder.monthly>div>div>a {
			display:block;
			text-align:center;
			background-color:var(--theme_background_3);
			color:var(--theme_foreground_3);
		}
			.events_calendar_holder.monthly>div>div>span:not(:first-child),
			.events_calendar_holder.monthly>div>div>a:not(:first-child) {
				font-size:0.8em;
			}
	.events_calendar_holder.monthly span.monthname {
		text-align:center;
	}
	.events_calendar_holder.monthly span abbr {
		display:initial;
	}
	.events_calendar_holder.monthly span i {
		display:none;
	}
	.events_calendar_holder .no_events {
		display:none;
	}
	.events_calendar_holder #calendar_today span {
		outline:1px dashed var(--theme_background_1);
		background-color:var(--theme_background_1);
		color:var(--theme_foreground_1);
	}

/* calendar entry classes */
.calendar_body *.bold,
.block.calendar .bold,
.datetext.bold {
	font-weight:bold;
}
.calendar_body *.italic,
.block.calendar .italic,
.datetext.italic {
	font-style:italic;
}
.calendar_body *.strikethrough,
.block.calendar .strikethrough,
.datetext.strikethrough {
	text-decoration: line-through;
}
.e02b50::before {
	content:'\02b50';
}

@media only screen and (min-width: 600px) {
	.events_calendar_holder.monthly span abbr {
		display:none;
	}
}

@media only screen and (min-width: 1024px) {

	.events_calendar_holder.monthly .calendar_head,
	.events_calendar_holder.monthly .calendar_days,
	.events_calendar_holder.monthly .calendar_body {
		display:grid;
		grid-template-columns: repeat(7, 1fr);
		grid-gap:2px;
	}
		
	.cal_satsun .events_calendar_holder.monthly .calendar_head,
	.cal_satsun .events_calendar_holder.monthly .calendar_days,
	.cal_satsun .events_calendar_holder.monthly .calendar_body {
		display:grid;
		grid-template-columns: .6fr repeat(5, 1fr) .6fr;
		grid-gap:2px;
	}
	
		.startday_monday.cal_satsun .events_calendar_holder.monthly .calendar_head,
		.startday_monday.cal_satsun .events_calendar_holder.monthly .calendar_days,
		.startday_monday.cal_satsun .events_calendar_holder.monthly .calendar_body {
			grid-template-columns: repeat(5, 1fr) .6fr .6fr ;
		}	

	.events_calendar_holder.monthly span.monthname {
		grid-column: span 5;
	}

	.events_calendar_holder .no_events {
		display:block;
	}
	
	/* this is where we set the placement so that the first day sits under the correct weekday */

	.events_calendar_holder .monthstart2 div:first-child {
		grid-column:2;
	}
	.events_calendar_holder .monthstart3 div:first-child {
		grid-column:3;
	}
	.events_calendar_holder .monthstart4 div:first-child {
		grid-column:4;
	}
	.events_calendar_holder .monthstart5 div:first-child {
		grid-column:5;
	}
	.events_calendar_holder .monthstart6 div:first-child {
		grid-column:6;
	}
	.events_calendar_holder .monthstart7 div:first-child {
		grid-column:7;
	}

	/* move monday to first column */
	.startday_monday .calendar_days span:nth-child(2) {
		grid-column:1;
		grid-row:1;
	}
		/* move sunday to last column */
		.startday_monday .calendar_days span:nth-child(1) {
			grid-column:7;
			grid-row:1;
		}

		.startday_monday .events_calendar_holder .monthstart2 div:first-child {
			grid-column:1;
		}
		.startday_monday .events_calendar_holder .monthstart3 div:first-child {
			grid-column:2;
		}
		.startday_monday .events_calendar_holder .monthstart4 div:first-child {
			grid-column:3;
		}
		.startday_monday .events_calendar_holder .monthstart5 div:first-child {
			grid-column:4;
		}
		.startday_monday .events_calendar_holder .monthstart6 div:first-child {
			grid-column:5;
		}
		.startday_monday .events_calendar_holder .monthstart7 div:first-child {
			grid-column:6;
		}
		.startday_monday .events_calendar_holder .monthstart1 div:first-child {
			grid-column:7;
		}

}

/* 
=============
 EVENTS TIMELINE
=============
*/

/* The timeline container */
.timeline {
  position: relative;
  margin: 0 auto;
  padding:2rem 0;
}
.timeline::after {
  content: '';
  position: absolute;
  width: 0.4rem;
  background-color: var(--theme_background_1);
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -0.2rem;
}

/* Container around content */
.timeline>li {
  padding: 10px 40px;
  position: relative;
  background-color: inherit;
  width: 50%;
  list-style-type:none;
  margin:0;
}

/* Dates/Times */
.timeline h3 {
	font-size:var(--font-size);
	color: var(--theme_foreground_1);
}

.cal_timeline_date_year_month ul.timeline span.tl_day {
	display:none;
}
.cal_timeline_date_year_only ul.timeline span.tl_day,
.cal_timeline_date_year_only ul.timeline span.tl_month {
	display:none;
}

.tl_times {
	font-size:small;
}

/* The 'view all' button */
.timeline>li.viewall {
	padding: 0;
	position: absolute;
	top: -2px;
	left:50%;
	z-index: 44;
}
	.timeline>li.viewall button {
		display:inline-block;
		background-color:var(--theme_background_1);
		color:var(--theme_foreground_1);
		border:0;
		padding:.5em 1em;
		border-radius:1em;
		cursor:pointer;
		transform: translateX(-50%);
	}
		.timeline>li.viewall button:hover {
			text-decoration:underline;
		}


/* The circles on the timeline */
.timeline>li:not(.viewall)::after {
  content: '';
  position: absolute;
  width: 2rem;
  height: 2rem;
  right: -1rem;
  background-color: var(--theme_background_2);
  border: 0.4rem solid var(--theme_background_1);
  top: 1rem;
  border-radius: 50%;
  z-index: 1;
}

/* Place the odd list items to the left */
.timeline>li:not(.viewall):nth-child(odd) {
  left: 0;
}

/* Place the right list items to the right */
.timeline>li:not(.viewall):nth-child(even) {
  left: 50%;
}

/* Add arrows to the left container (pointing right) */
.timeline>li:not(.viewall):nth-child(odd)::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 1rem;
  width: 0;
  z-index: 1;
  right: 1.8rem;
  border: medium solid var(--theme_background_1);
  border-width: 1rem 0 1rem 1rem;
  border-color: transparent transparent transparent var(--theme_background_1);
}

/* Add arrows to the right container (pointing left) */
.timeline>li:not(.viewall):nth-child(even)::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 1rem;
  width: 0;
  z-index: 1;
  left: 1.8rem;
  border: medium solid var(--theme_background_1);
  border-width: 1rem 1rem 1rem 0;
  border-color: transparent var(--theme_background_1) transparent transparent;
}

/* Fix the circle for containers on the right side */
.timeline li:nth-child(even)::after {
  left: -16px;
}

/* The actual content */
.timeline>li>div {
  padding: 1rem 1.5rem;
  background-color: var(--theme_background_1);
  color: var(--theme_foreground_1);
  position: relative;
  border-radius: 0.5rem;
}



/* Media queries - Responsive timeline on screens less than 600px wide */
@media screen and (max-width: 600px) {

	.timeline,
	.timeline h3 {
		font-size:0.8rem;
	}


	/* Place the timelime to the left */
	.timeline::after {
		left: 1rem;
	}

	/* Full-width containers */
	.timeline>li {
		width: 100%;
		padding-left: 3rem;
		padding-right: 0.5rem;
	}

	/* view all to left of screen */
	.timeline>li.viewall {
		left:0;
	}
		.timeline>li.viewall button {
			transform: translateX(0);
		}

	/* Make sure that all arrows are pointing leftwards */
	.timeline>li:not(.viewall):nth-child(odd)::before,
	.timeline>li:not(.viewall):nth-child(even)::before{
		left: 2rem;
		border: medium solid var(--theme_background_1);
		border-width: 1rem 1rem 1rem 0;
		border-color: transparent var(--theme_background_1) transparent transparent;
	}

	/* Make sure all circles are at the same spot */
	.timeline>li:nth-child(odd)::after,
	.timeline>li:nth-child(even)::after {
		left:0;
	}

	/* Make all right containers behave like the left ones */
	.timeline>li:not(.viewall):nth-child(even) {
		left: 0%;
	}
}


/*	
=============
 MAP
=============
*/

.map>div>div {
	max-height:80vw;
}
.map_remove_padding {
	padding:0 !important;
}
	.map_remove_padding:last-child {
		margin-bottom:2rem;
	}

#map_links {
	text-align:center;
	font-size:.8rem;
}
	#map_links a {
		display:inline-block;
		padding:0 10px;
	}
		
@media only screen and (min-width: 600px) {
	
	.map_links_over_map #map_links {
		position: relative;
		top: -1.3rem;
		z-index: 9999;
		background: rgba(255,255,255,.8);
		width: 50%;
		margin: 0 auto;
		-webkit-border-radius: 5px 5px 0 0;
		border-radius: 5px 5px 0 0;
	}
		
}



.map_to_left_of_text>div>div.inner,
.map_to_right_of_text>div>div.inner,
.map_above_text>div>div.inner {
	display:grid;
	grid-gap:2rem;
	grid-template-rows: auto auto;
}
	.map_to_left_of_text>div>div.inner>div:first-child,
	.map_above_text>div>div.inner>div:first-child {
		grid-row:2;
	}
	.map_to_left_of_text>div>div.inner>div:last-child,
	.map_above_text>div>div.inner>div:last-child {
		grid-row:1;
	}

@media only screen and (min-width: 600px) {
	.map_to_right_of_text>div>div.inner {
		grid-template-columns:1fr 1fr;
	}
		.map_to_right_of_text>div>div.inner>div:first-child {
			grid-column: 1;
			grid-row: 1;
		}
		.map_to_right_of_text>div>div.inner>div:last-child {
			grid-column: 2;
			grid-row: 1;
		}

	.map_to_left_of_text>div>div.inner {
		grid-template-columns:1fr 1fr;
	}
		.map_to_left_of_text>div>div.inner>div:first-child {
			grid-column: 2;
			grid-row: 1;
		}
		.map_to_left_of_text>div>div.inner>div:last-child {
			grid-column: 1;
			grid-row: 1;
		}
}


/*
=============
 FORMS
=============
*/
.rounded5 fieldset,
.rounded5 legend, 
.rounded5 input,
.rounded5 textarea {
	border-radius:5px;
}
.rounded10 fieldset,
.rounded10 legend, 
.rounded10 input,
.rounded10 textarea {
	border-radius:10px;
}
.rounded15 fieldset,
.rounded15 legend, 
.rounded15 input,
.rounded15 textarea {
	border-radius:15px;
}






/*
=============
 FAQ
=============
*/
.faq_first_open dl.faq dd:first-of-type {
	display:block;
}
.faq_style1 dl.faq dd {
	margin:0 0 1em 3em;
	border-radius:0 0 1em 1em;
}

@media only screen and (min-width: 800px) {

	.columns_2 dl.faq,
	.columns_3 dl.faq {
		columns:2;
	}
	
}

@media only screen and (min-width: 1280px) {

	.columns_3 dl.faq {
		columns:3;
	}

}


/*
=============
 BUTTONS
============
*/
section.button {
	text-align:left;
}
	section.button.block_align_center {
		text-align:center;
	}
	section.button.block_align_right {
		text-align:right;
	}	
	section.button>div>div>div>a {
		display:inline-block;
		padding:.5rem 2rem;
		text-decoration:none;
		background:var(--theme_background_1);
		color:var(--theme_foreground_1);
	}
		section.button>div>div>div>a:hover {
			background:var(--theme_background_2);
			color:var(--theme_foreground_2);		
		}
		section.button>div>div>div>a:focus,
		section.button>div>div>div>a:active {
			background:var(--theme_background_3);
			color:var(--theme_foreground_3);		
		}
		
	section.button .rounded5 {
		-webkit-border-radius:5px;
		border-radius:5px;
	}
	section.button .rounded10 {
		-webkit-border-radius:10px;
		border-radius:10px;
	}
	section.button .rounded15 {
		-webkit-border-radius:15px;
		border-radius:15px;
	}
	
	section.button.button_shadow>div>a {
		-webkit-box-shadow: 0 0 3px 0 rgba(0,0,0,.6);
		box-shadow: 0 0 3px 0 rgba(0,0,0,.6);
	}

		section.button.button_shadow>div>a:hover {
			-webkit-box-shadow: 0 0 3px 0 rgba(0,0,0,.6) inset;
			box-shadow: 0 0 3px 0 rgba(0,0,0,.6) inset;
		}
		section.button.button_shadow>div>a:active {
			-webkit-box-shadow: 0 0 1px 0 rgba(0,0,0,.6);
			box-shadow: 0 0 1px 0 rgba(0,0,0,.6);
		}
	
/*
=============
 TABLES (inc Documents)
=============
*/

.table_space_rows table {
	border-spacing:0 4px;
}
.table_space_columns table {
	border-spacing:4px 0;
}
.table_space_both table {
	border-spacing:4px;
}
.table_hover_styles_off table.data tr:hover,
.gallery_item_details table.data tr:hover {
	box-shadow: none;
	transform: none;
}

/* long filenames - switched off for now as being in tables is problematic
.fn {
	display: flex;
	min-width: 0;
}
	.fnl {
		text-overflow: ellipsis;
		white-space: nowrap;
		overflow: hidden;
	}

	.fnr {
		flex-shrink: 0;
	}
	
*/

.documents_hide_extensions .fnr {
	display:none;
}




@media 
only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px)  {

	/* Force table to not be like tables anymore */
	.mobile_table_layout table, .mobile_table_layout thead, .mobile_table_layout tbody, .mobile_table_layout tfoot, .mobile_table_layout th, .mobile_table_layout td, .mobile_table_layout tr { 
		display: block; 
	}
	
	/* Hide table headers (but not display: none;, for accessibility) */
	.mobile_table_layout thead tr { 
		position: absolute;
		top: -9999px;
		left: -9999px;
	}
}



/*
=============
 SOCIAL NETWORK ICONS
=============
*/



.socialnetworks {
	text-align:center;
	/* avoid outline encompassing text-align:left text 
	overflow:hidden;*/
}
.social_network_align_left {
	text-align:left;
}
.social_network_align_right {
	text-align:right;
}
@media only screen and (max-width: 600px) {
	.social_network_align_right {
		text-align:left;
	}
}

	.socialnetworks>div>a {
		display:inline-block;
		width:4em;
		height:4em;
		margin:4px;
		background-size:70%;
		background-position:center center;
		background-repeat:no-repeat;
		text-indent:-500em;
		overflow:hidden;
	}
	a.sn span {
		display:none;
	}

.social_network_greyscale>div>a {
	filter: grayscale(100%);
}
	.social_network_greyscale>div>a:hover {
		filter: grayscale(0);
	}
	
.social_network_round_icons>div>a {
	border-radius:50%;
	background-size:60%;
}

.social_network_shadows>div>a {
	box-shadow:0 0 3px #000 inset;
}
	.social_network_shadows>div>a:hover {
		box-shadow:0 0 3px #fff inset;
	}
	
	.social_network_custom_background>div>a {
		background-color:var(--block_color_1);
		color:var(--block_color_1_alt);
	}
	
/*
===========
 CONTACT DETAILS
===========
*/
section.contact-details span:not(.hidden) {
	display:block;
}
	section.contact-details b {
		padding-right:.5rem;
	}
	section.contact-details address {
		margin-bottom:.5rem;
		line-height:1.4;
	}
		section.contact-details address div {
			padding-top:3px;
		}
	section.contact-details.contact_details_address_inline span {
		display:inline;
	}
	section.contact-details.contact_details_address_inline span::after {
		content:', ';
	}
	section.contact-details.contact_details_address_inline span:last-child::after {
		content:'';
	}
	
	section.contact-details.contact_details_full_labels span.hidden {
		display:inline;
	}

/*
===========
 ANCHORS
===========
*/
section.anchors div {
	text-align:center;
}
	section.anchors>div>a {
		padding:0 5px;
		white-space: nowrap;
	}
	
.links_as_buttons>div>a,
a.button {
	display:inline-block;
	padding:8px !important;
	margin:4px;
	border-radius:2px;
	webkit-border-radius:2px;
	text-decoration:none;
	-webkit-box-shadow:0 0 3px 0 rgba(128,128,128,.5);
	box-shadow:0 0 3px 0 rgba(128,128,128,.5);
	background-color:var(--theme_background_1);
	color:var(--theme_foreground_1);
	transition:all .8s;
}
	.links_as_buttons>div>a:hover,
	a.button:hover {
		-webkit-box-shadow:inset 0 0 3px 0 rgba(128,128,128,.5);
		box-shadow:inset 0 0 3px 0 rgba(128,128,128,.5);
		background-color:var(--theme_background_3);
		color:var(--theme_foreground_3);	
	}
	.links_as_buttons>div>a:active,
	a.button:active {
		-webkit-box-shadow:inset 0 0 3px 0 rgba(128,128,128,.5);
		box-shadow:inset 0 0 3px 0 rgba(128,128,128,.5);
		background-color:var(--theme_background_2);
		color:var(--theme_foreground_2);	
	}

/* to include form buttons use .pform input[type="submit"] but these can't accept ::pseudo elements */

.button_style_1 .links_as_buttons>div>a,
a.button {
	border:2px solid white;
	position:relative;
	/* background-color:transparent; - not sure why this was here but it's flagged as low contrast in WAVE */
	z-index:0;
	transition: width 0.3s;
}
	.button_style_1 .links_as_buttons>div>a:hover,
	a.button:hover {
		color:var(--theme_foreground_1) !important;
	}
	.button_style_1 .links_as_buttons>div>a::after,
	a.button::after {
		content: '';
		background-color:var(--theme_background_1);
		position:absolute;
		top:0;
		left:0;
		bottom:0;
		right:0;
		z-index:-2;
	}
	.button_style_1 .links_as_buttons>div>a::before,
	a.button::before {
		content: '';
		background-color:rgba(0,0,0,.25);
		position:absolute;
		top:0;
		left:0;
		bottom:0;
		width:0%;
		z-index:-1;
		transition: width .5s;
	}
	.button_style_1 .links_as_buttons>div>a:hover::before,
	a.button:hover::before {
		width:100%;
	}



/*
===========
 DIRECTORY
===========
*/	
.single_directory > :nth-child(4) {
	text-align:right;
}

.directory_msg {
	padding:.5rem;
	background:yellow;
	color:black;
	display:inline-block;
	font-size:1rem;
	-webkit-border-radius:5px;
	border-radius:5px;
	margin-left:1rem;
}

.directory span.directory_sn {
	display:block;
	text-align:center;
}
	@media only screen and (min-width: 600px) {
		.directory span.directory_sn {
			float:right;
			text-align:left;
		}
	}

td.first_chars a,
#directory_alpha a {
	background:var(--theme_background_1);
	color:var(--theme_foreground_1);
	padding:3px 5px;
}
	tr:hover td.first_chars a,
	#directory_alpha a {
		text-decoration:none;
	}

#directory_alpha {
	margin-bottom:.5em;
}

/*
===========
 DIRECTORY MAP
===========
*/
.map_key_link {
	position: absolute;
	z-index: 999;
	right: 77px;
	font-family:arial;
	font-size: 11px;
	color: #000;
	display: inline-block;
	background: #fff;
	padding: 5px 5px 5px 20px;
	margin-top: 11px;
	box-shadow: 0 0 3px 0 rgba(0,0,0,.9);
	border-radius: 2px;
	text-decoration: none;
	background-image: url(https://web-cdn.org/img/markers/0.png);
	background-size:10px;
	background-repeat:no-repeat;
	background-position: left 5px center;
}


===========
 NEWS / PROFILE ITEMS
===========
*/	
@media only screen and (max-width: 600px) {
	.item {
		grid-template-columns: 1fr !important;
	}
		.item .no_image {
			min-height:0;
		}
}

.items_reduce_image_size .item {
	grid-template-columns: 1fr 8fr;
}


.items_no_image .item>:first-child {
	display:none;
}

@media only screen and (min-width: 1000px) {

	.items_no_image .item {
		/* 
		Not working well. 2/10/23
		display:block;

		*/
		grid-template-columns: 0 8fr;
		grid-gap:0;
	}
		.items_no_image .item>:first-child {
			/*
			min-height:0;
			*/
		}	

}

.profile_msg {
	padding:.5rem;
	background:yellow;
	color:black;
	display:inline-block;
	font-size:1rem;
	-webkit-border-radius:5px;
	border-radius:5px;
	margin-left:1rem;
}

@media only screen and (min-width: 1000px) {	
	
	.items_grid .profiles,
	.items_grid .news_index {
		display:grid;
		grid-gap:2rem;		
	}
	
	.items_grid_1_1 .profiles,
	.items_grid_1_1 .news_index {
		grid-template-columns:1fr 1fr;
	}
	.items_grid_1_1_1 .profiles,
	.items_grid_1_1_1 .news_index {
		grid-template-columns:1fr 1fr 1fr;
	}
	.items_grid_1_1_1_1 .profiles,
	.items_grid_1_1_1_1 .news_index {
		grid-template-columns:1fr 1fr 1fr 1fr;
	}
	
	.items_grid_1_1 .profiles .item,
	.items_grid_1_1_1 .profiles .item, 
	.items_grid_1_1_1_1 .profiles .item,
	.items_grid_1_1 .news_index .item,
	.items_grid_1_1_1 .news_index .item, 
	.items_grid_1_1_1_1 .news_index .item {
		margin-bottom:0;
	}
	
	/* forms etc to span full width in grids */
	.fullwidth {grid-column: 1 / -1;}
	
	/* rearrange to put image on top for 1-1-1 */
	.items_grid_1_1_1 .item,
	.items_grid_1_1_1_1 .item {
		grid-gap:0;
		grid-template-columns: 1fr;
		grid-template-rows:200px auto auto auto;
	}
		.items_grid_1_1_1.items_no_image .item,
		.items_grid_1_1_1_1.items_no_image .item {
			grid-template-rows:0 auto auto auto;
		}
		.items_grid_1_1_1 .item>:first-child,
		.items_grid_1_1_1_1 .item>:first-child {
			grid-column:1;
			grid-row:1;
		}
		.items_grid_1_1_1 .item>:nth-child(2),
		.items_grid_1_1_1_1 .item>:nth-child(2){
			grid-column:1;
			grid-row:2;	
		}
			.items_grid_1_1_1 .item>:nth-child(2) h4,
			.items_grid_1_1_1_1 .item>:nth-child(2) h4 {
				font-size:1.3rem;
			}
		.items_grid_1_1_1 .item>:nth-child(3),
		.items_grid_1_1_1_1 .item>:nth-child(3) {
			grid-column:1;
			grid-row:3;		
		}
		.items_grid_1_1_1 .item>:nth-child(4),
		.items_grid_1_1_1_1 .item>:nth-child(4){
			grid-column:1;
			grid-row:4;		
		}
}


.news_hide_author .news_author {
	display:none;
}
.news_hide_time .news_time {
	display:none;
}

.news_story_paging {
	display:grid;
	grid-template-columns:1fr 1fr;
	min-height:0;
}
	.news_story_paging .news_next {
		text-align:right;
	}

/*
==========
 NEWS COMMENTS
==========
*/

#comment_form {
	margin:1rem 0;
}

	#comment_form_button {
		display:inline-block;
		padding:.5rem 2rem;
		text-decoration:none;
		background:var(--theme_background_1);
		color:var(--theme_foreground_1);
		cursor:pointer;
		border-radius:5px;
	}

		#comment_form_button:hover {
			background:var(--theme_foreground_2);
			color:var(--theme_background_2);		
		}

		#comment_form_button:focus,
		#comment_form_button:active {
			background:var(--theme_background_3);
			color:var(--theme_foreground_3);		
		}


/*
===========
 SPONSORS
===========
*/
div.sponsors {
	display:grid;
	grid-gap:1rem;
}
	div.sponsors img {
		display:block;
	}


/*
===========
 SUBPAGES
===========
*/

dl.subpages {
	display:grid;
	grid-gap:8px;
	grid-template-columns:100px 1fr;
}
	dl.subpages dt {
		background:var(--theme_background_3);
		color:var(--theme_foreground_3);
		padding:5px;
		line-height:5;
	}
	dl.subpages dd {
		background-size:cover;
		background-position:center center;
		min-height:70px;
	}
@media only screen and (min-width: 600px) {	
	dl.subpages {
		grid-template-columns:100px 1fr 100px 1fr;
	}
}

/*
==========
EMBEDDED MEDIA
==========
*/

div.media_iframe {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;	
}
	div.media_iframe iframe {
	    position: absolute;
	    top: 0;
	    left: 0;
	    width: 100%;
	    height: 100%;	
	}
	
/* 
===========
LOGOS
===========
*/
.logos div.logos_container {
	display:grid;
	grid-gap:1rem;
	grid-template-columns:1fr 1fr;
}
	.logos div.logos_container>* {
		padding-top:50%;
		background-size:contain;
		background-repeat:no-repeat;
		background-position:center center;
		position:relative;
	}
	.logo_title {
		display:none;
	}
	.logos_show_titles_below .logo_title {
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		margin-top: 1rem;
		text-align: center;
		font-size: 0.8rem;
		line-height: 1.2;
		padding:0 5px;
	}
	
	@media only screen and (min-width: 800px) {
		.logos div.logos_container {
			display:flex;
			flex-direction:row;
			flex-wrap:wrap;
			gap:1rem;
			justify-content:center;
		}
			.logos div.logos_container>* {
				width:20%;
				padding-top:15%;
			}
			.logos.logo_size_medium div.logos_container>* {
				width:16%;
				padding-top:12%;
			}
			.logos.logo_size_small div.logos_container>* {
				width:12%;
				padding-top:9%;
			}
			.logos.logo_size_tiny div.logos_container>* {
				width:8%;
				padding-top:6%;
			}
	}




/*
========
COUNTDOWN
========
*/

ul.countdown_clock {
	padding-left:0;
	margin-left:0;
}
ul.countdown_clock li {
	display: inline-block;
}
ul.countdown_clock li span {
	font-size: 40px;
	font-weight: 300;
}
ul.countdown_clock li.seperator {
	font-size: 40px;
	vertical-align: top;
}
ul.countdown_clock li p {
	font-size: 15px;
	margin:0;
}

aside ul.countdown_clock li span {
	font-size: 20px;
	font-weight: bold;
}
aside ul.countdown_clock li.seperator {
	font-size: 20px;
}
aside ul.countdown_clock li p {
	font-size: 14px;
}

@media only screen and (min-width: 600px) {

	ul.countdown_clock li span {
		font-size: 60px;
	}
	ul.countdown_clock li.seperator {
		font-size: 60px;
		vertical-align: top;
	}
	ul.countdown_clock li p {
		font-size: 20px;
	}
	
}

.clock_green_led ul.countdown_clock,
.clock_red_led ul.countdown_clock,
.clock_blue_led ul.countdown_clock {
	display:inline-block;
	background:#000;
	color:#44e261;
	text-shadow: 0 0 5px #44e261;
	-webkit-border-radius: 5px;
	border-radius: 5px;
	padding:0 2rem;
}
.clock_red_led ul.countdown_clock {
	color:red;
	text-shadow: 0 0 5px red;
}
.clock_blue_led ul.countdown_clock {
	color:#6bc3ff;
	text-shadow: 0 0 5px #6bc3ff;
}

/*
===========
MEETINGS
===========
*/
.meetings details {
	background:var(--theme_background_3);
	color:var(--theme_foreground_3);
	-webkit-box-shadow:0 0 0 1px var(--theme_background_1);
	box-shadow:0 0 0 1px var(--theme_background_1);
}
.meetings details[open] {
	margin-bottom:1rem;
}
.meetings summary {
	background:var(--theme_background_1);
	color:var(--theme_foreground_1);
	margin-bottom:1rem;
	padding:.3rem;
	cursor:pointer;
}
.meetings summary>div {
	display:grid;
	grid-template-rows:1fr 1fr 1fr;
}
	.meetings summary>div span {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

@media only screen and (min-width: 780px) {
	.meetings summary>div {
		float:right;
		width:calc( 100% - 30px );
		grid-template-rows: 1fr;
		grid-template-columns:1fr 1fr 1fr;
	}
}
.meetings details table {
	-webkit-box-shadow:0 0 0 1px var(--theme_background_1);
	box-shadow:0 0 0 1px var(--theme_background_1);
}
.meetings details>div {
	padding:1rem;
}
@media only screen and (max-width: 800px) {
	.meetings details>div {
		padding:.5rem;
	}
	
	.meetings details tr>:last-child,
	.meetings details tr>:nth-child(3) {
		display:none;
	}
}


/* 
=============
PROGRESS METER
=============
*/
section.progress-meter div.inner>div:last-child {
	align-self:end;
}


.progress-meter-container {
	display:grid;
	grid-template-columns:var(--progress-percentage) var(--progress-to-go);
	position:relative;
	height:2.6rem;
	padding:.3rem;
	border-radius:2rem;
	background:var(--theme_background_3);
	background:var(--theme_foreground_3);
}
.progress-bar {
	height:2rem;
	grid-column:1;
	
	position:relative;
	padding:.3rem;
	border-radius:1.85rem;
	background:var(--theme_background_1);
	color:var(--theme_foreground_1);
	font-size:12px;
	width:var(--progress-percentage);
	text-align:right;
}

.progress_meter_vertical .progress-meter-container {
	display:grid;
	grid-template-rows:var(--progress-to-go) var(--progress-percentage);
	width:2.6rem;
	height:auto;
	margin:0 auto;
	min-height:15rem;
}
.progress_meter_vertical .progress-bar {
	grid-row:2;
	width:2rem;
	height:auto;
	text-align:center;
}

.progress_meter_thermometer .progress-meter-container {
	display:grid;
	grid-template-rows:var(--progress-to-go) var(--progress-percentage);
	width:2.6rem;
	height:auto;
	margin:0 auto;
	min-height:20rem;
	z-index:1;
}
.progress_meter_thermometer .progress-meter-container::before {
	content: '';
	width: 4rem;
	height: 4rem;
	background-color: inherit;
	position: absolute;
	bottom: -0.1rem;
	border-radius: 2rem;
	left: -.7rem;
}
.progress_meter_thermometer .progress-meter-container::after {
	content: attr(data-block-height);
	color: inherit;
	background: inherit;
	position: absolute;
	top: 0;
	width: 100px;
	left: 3rem;
	text-align: center;
	font-size:small;
	clip-path: polygon(100% 0, 100% 100%, 16% 100%, 12% 96%, 12% 25%, 0 0, 0 0);
	border-radius:3px;
	padding:5px 0 5px 8px;
}
	.progress_meter_thermometer .progress-meter-container:hover::after {
		z-index:2;
	}
.progress_meter_thermometer .progress-bar {
	grid-row:2;
	width:2rem;
	height:auto;
	text-align:center;
	z-index:2;
	border-radius:0 0 1.85rem 1.85rem;
}
	.progress_meter_thermometer .progress-bar.nearly {
		border-radius:1.85rem;
	}
.progress_meter_thermometer .progress-bar::before {
	content: '';
	width: 3rem;
	height: 3rem;
	background-color: inherit;
	position: absolute;
	bottom: 0;
	border-radius: 1.5rem;
	left: -.5rem;
}
.progress_meter_thermometer .progress-bar::after {
	content: attr(data-block-value);
	color: inherit;
	background: inherit;
	position: absolute;
	top: 0;
	width: 100px;
	left: 3rem;
	text-align: center;
	font-size:small;
	clip-path: polygon(100% 0, 100% 100%, 16% 100%, 12% 96%, 12% 25%, 0 0, 0 0);
	border-radius:3px;
	padding:5px 0 5px 8px;
}

/*
===========
GUESTBOOK
===========
*/

.guestbook {
	margin-top:2rem;
}

/* layout_0 plain */

	.guestbook.desktop_layout_0>.guestbook_entry {
		display:grid;
		grid-template-columns:1fr 1fr;
		margin-bottom:1rem;
		border-top:1px dotted #bbb;
		padding-top:1rem;
	}
	.guestbook.desktop_layout_0 .guestbook_title {
		font-weight:bold;
		grid-column:1 / 3;
	}
	.guestbook.desktop_layout_0 .guestbook_date {
		font-style:italic;
	}
	.guestbook.desktop_layout_0 .guestbook_comment {
		grid-column:1 / 3;
	}
	.guestbook.desktop_layout_0 .guestbook_reply {
		display:grid;
		grid-template-columns: 1fr 1fr;
		margin-left:4rem;
		padding-top:1rem;
		border-top:1px dotted #bbb;
	}

	.guestbook.desktop_layout_0 .guestbook_comment_form_link,
	.guestbook.desktop_layout_0 .guestbook_reply_form_link {
		display:inline-block;
		margin:1rem 0;
	}
		.guestbook.desktop_layout_0 .guestbook_reply_form_link {
			margin-left:4rem;
		}
		
/* layout_1 details/summary */

	.guestbook.desktop_layout_1 details {
		background: var(--theme_background_3);
		color: var(--theme_foreground_3);
		margin-bottom:1px;
	}
	.guestbook.desktop_layout_1 summary {
		background: var(--theme_background_1);
		color: var(--theme_foreground_1);
		padding:2px 5px;
		cursor:pointer;
	}
	
		.guestbook.desktop_layout_1 .guestbook_entry {
			padding:1rem;
		}
	
		.guestbook.desktop_layout_1 details>div.guestbook_replies {
			padding-left:5rem;
		}
		.guestbook.desktop_layout_1 .guestbook_replies {
			margin-bottom:1rem;
		}
		.guestbook.desktop_layout_1 .guestbook_replies>div:not(:last-child) {
			margin-bottom:1rem;
		}


	.guestbook.desktop_layout_1 .guestbook_comment_form_link,
	.guestbook.desktop_layout_1 .guestbook_reply_form_link {
		display:inline-block;
		padding:0.5rem;
		margin:1rem 0;
		background-color: var(--theme_background_1);
		color: var(--theme_foreground_1);
	}
		.guestbook.desktop_layout_1 .guestbook_reply_form_link {
			margin-left:4rem;
		}


/*
===========
ICON LIST
===========
*/

.inner .icon-list>ul>li>p {
	display:inline-block;
	margin:0;
}

.inner .icon-list ul {
	list-style-image:none !important;
}

.inner .icon-list li {
	list-style-type:none;
	break-inside: avoid;
}

.inner .icon-list li::before {
	content:'';
	display: inline-block;
	width: 1.4em;
	height: 1.4em;
	margin-right:0.5em;
	--icon-background: currentColor;
	background-color: var(--icon-background);
	-webkit-mask-image: var(--svg);
	mask-image: var(--svg);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	position:relative;
	top:.24em;
}

.inner .icon-list li:first-child {
	margin-top:0;
}

@media only screen and (max-width: 599px) {
	.icon_list_right .inner .icon-list ul {
		margin-left:0;
		padding-left:0;
	}
}

@media only screen and (min-width: 600px) {
	.icon_list_right .inner .icon-list {
		text-align:right;
	}

	.icon_list_right .inner .icon-list li::before {
		display:none;
	}

	.icon_list_right .inner .icon-list li::after {
		content:'';
		display: inline-block;
		width: 1.4em;
		height: 1.4em;
		margin-left:0.5em;
		--icon-background: currentColor;
		background-color: var(--icon-background);
		-webkit-mask-image: var(--svg);
		mask-image: var(--svg);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-size: 100% 100%;
		mask-size: 100% 100%;
		position:relative;
		top:.24em;
	}
}


@media only screen and (min-width: 800px) {

	.icon-list.columns_2 div.icon-list,
	.icon-list.columns_3 div.icon-list {
		columns:2;
	}
	
}

@media only screen and (min-width: 1280px) {

	.icon-list.columns_3 div.icon-list {
		columns:3;
	}

}

/*
===========
LIBRARY
===========
*/

#doclibrary {
	padding:2px;
	clear:both;
}
#doclibrary ul:first-child {
	padding-left:0;
}
#doclibrary ul {
	margin:0;
	padding-left:15px;
}
#doclibrary ul li {
	list-style-type:none;
	margin:1px 0;
	padding:0;
}
#doclibrary ul .folder {
	background: url(https://web-cdn.org/img/icons/folder.png) no-repeat 5px 5px;
	padding:5px 10px 5px 30px;
	font-weight:bold;
	cursor:pointer;
}
#doclibrary ul .folder:hover {
	background-image: url(https://web-cdn.org/img/icons/folder_go.png);
}

#doclibrary ul .open {
	background-image: url(https://web-cdn.org/img/icons/folder_page.png);
}
#doclibrary ul .folder span {
	float:right;
	font-weight:normal;
	font-style:italic;
}
#doclibrary ol {
	padding-left:10px;
}
#doclibrary ol li {
	padding:4px 10px 4px 30px;
	background:url(https://web-cdn.org/img/icons/file.png) no-repeat 3px 5px;
	margin:1px 0;
}
#doclibrary ol li a {
	display:block;
}
#doclibrary ol li a span {
	font-style:italic;
	float:right;
}
#doclibrary_openall {
	float:right;
	background:url(https://web-cdn.org/img/icons/folder_page.png) no-repeat 5px 5px;
	padding:5px 10px 5px 30px;
	display:none;
	-moz-border-radius-topleft: 5px;
	-moz-border-radius-topright: 5px;
	-moz-border-radius-bottomright: 0px;
	-moz-border-radius-bottomleft: 0px;
	-webkit-border-radius: 5px 5px 0px 0px;
	border-radius: 5px 5px 0px 0px;
}
#doclibrary_openall.open {
	background-image: url(https://web-cdn.org/img/icons/folder.png);
}
#doclibrary_openall:hover {
	background-image: url(https://web-cdn.org/img/icons/folder_go.png);
}




/*
===========
OVERLAY
===========
*/

.overlay {
	position:fixed;
	top:0;
	bottom:0;
	left:0;
	right:0;
	z-index:99999;
	text-align:center;
	display:grid;
	justify-content:center;
	align-content:center;
}
	.overlay::after {
		content: 'x';
		display:inline-block;
		position:absolute;
		top:2rem;
		right:2rem;
		color:#fff;
		font-size:2rem;
		font-weight:bold;
		cursor:pointer;
	}
	.overlay::after:hover {
		color:#ff0;
	}




	
	
/*
===========
CONTENT WIDTH
===========
*/
@media only screen and (min-width: 600px) {

	.content_width_90>div {
		padding:0 5%;
	}
	.content_width_80>div {
		padding:0 10%;
	}
	.content_width_75>div {
		padding:0 12.5%;
	}
	.content_width_70>div {
		padding:0 15%;
	}
	.content_width_60>div {
		padding:0 20%;
	}
	.content_width_50>div {
		padding:0 25%;
	}
	.content_width_40>div {
		padding:0 30%;
	}
	.content_width_30>div {
		padding:0 35%;
	}
	.content_width_25>div {
		padding:0 37.5%;
	}
}