/*
Theme Name: moralogy reitaku no mori
Theme URI: http://.jp
Author: 
Author URI: 
Description: 
License: 
License URI: 
Tags: 
*/

@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500&display=swap');

@font-face {
	font-family: 'moralogy';
	src:
	url('fonts/moralogy.ttf?lwe249') format('truetype'),
	url('fonts/moralogy.woff?lwe249') format('woff'),
	url('fonts/moralogy.svg?lwe249#moralogy') format('svg');
	font-weight: normal;
	font-style: normal;
	font-display: block;
	}

:root {
	--color1: #2b2b2b;
	--color2: #237230;
	--color3: #185422;
	--color4: #888;
	--color5: #fff;
	--color6: #f7f4ef;
	--color7: #e9eddb;
	--color8: #87ab27;
	--color9: #6b8b15;
	
	--font:  16px;
	--fontxs: .8rem;
	--fonts: .9rem;
	--fontm: 1.1rem;
	--fontl:  1.5rem;
	--fontxl: 2.0rem;
	--fontxxl: 2.6rem;
	--gapxs: 7px;
	--gaps: 14px;
	--gap: 30px;
	--gapl: 60px;
	--gapxl: 90px;
	--sans-serif: "Zen Maru Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	}
@media screen and (max-width: 599px) {
:root {	
	--font:  15px;
	--fontxs: .8rem;
	--fonts: .9rem;
	--fontm: 1.1rem;
	--fontl:  1.3rem;
	--fontxl: 1.6rem;
	--fontxxl: 2rem;
	--gapxs: 5px;
	--gaps: 10px;
	--gap: 5vw;
	--gapl: 8vw;
	--gapxl: 11vw;
	}
}

/* --------------------------------------------------- global */
* {
	margin: 0;
	padding: 0;
	font-style: normal;
	list-style: none;
	}
html{
	width: 100%;
	overflow-x: hidden;
	font-size: var(--font);
	}
body {
	font-family: var(--sans-serif);
	font-size: 1rem;
	line-height: 2;
	color: var(--color1);
	text-align: center;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
	width: 100%;
	/* overflow-x: hidden; */
	background: var(--color6);
	letter-spacing: .05rem;
	}
a {
	color: var(--color3);
	text-decoration: none;
	transition: all .3s;
	}
a:hover {
	color: var(--color2);
	text-decoration: none;
	}
a:active {
	color: var(--color2);
	text-decoration: none;
	}
#page a{
	text-decoration: underline;
	text-underline-offset: 3px;
	}
img {
	border: none;
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
	}
.map{
	width: 100%;
	height: 100%;
	min-height: 300px;
	}
.map iframe{
	width: 100%;
	height: 100%;
	}
iframe{
	max-width: 100%;
	margin-bottom: -8px;
	}
audio{
	display: block;
	}
.pc{ }
.sp{ display: none; }
@media screen and (max-width: 599px) {
	.pc{ display: none; }
	.sp{ display: block; }
}

/* --------------------------------------------------- icon */
[class^="i-"]:before, 
[class*=" i-"]:before,
[class^="i-after-"]:after, 
[class*=" i-after-"]:after,
a[target="_blank"]:after {
	font-family: 'moralogy' !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	}

[class^="i-"]:before, 
[class*=" i-"]:before {
	margin-right: 4px;
	}

[class^="i-after-"]:after,
[class*=" i-after-"]:after {
	margin-left: 4px;
	}

.i-arrow-bottom:before { content: "\21"; }
.i-arrow-left:before { content: "\22"; }
.i-arrow-right:before { content: "\23"; }
.i-arrow-top:before { content: "\24"; }
.i-arrow2-bottom:before { content: "\25"; }
.i-arrow2-left:before { content: "\26"; }
.i-arrow2-right:before { content: "\27"; }
.i-arrow2-top:before { content: "\28"; }
.i-blank:before { content: "\29"; }
.i-close:before { content: "\2a"; }
.i-mail:before { content: "\2b"; }
.i-menu:before { content: "\2c"; }
.i-pin:before { content: "\2d"; }
.i-search:before { content: "\2e"; }
.i-fb:before { content: "\2f"; }
.i-x:before { content: "\30"; }
.i-ig:before { content: "\31"; }
.i-yt:before { content: "\32"; }
.i-pdf:before { content: "\33"; }
.i-movie:before { content: "\34"; }

.i-after-arrowright:after { content: "\23"; }


a[href*="https://goo.gl/maps/"]:after,
a[target="_blank"]:after,
a[href$=".pdf"]:after{
	font-family: 'moralogy' !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	}
a[href*="https://goo.gl/maps/"]:after {
	content: " \2d";
	}
a[target="_blank"]:after{
	content: " \29"; 
	}
a[href$=".pdf"]:after{
	content: " \33";
	}
.wp-block-image a[target="_blank"]:after, 
.wp-block-image a[target="_blank"]:after {
	content: ""; 
	margin-left: 0;
	}

.wrapper .category{
	display: flex;
	flex-wrap: wrap;
	gap: var(--gapxs);
	& a{
		display: inline-block;
		text-align: center;
		font-size: var(--fontxs);
		padding: 0 10px;
		background: var(--color8);
		text-decoration: none;
		color: var(--color5);
		border-radius: 14px;
		white-space: nowrap;
		text-decoration: none !important;
		}
	& a:hover{
		background: var(--color9);
		}
	}
.wrapper .tags{
	display: flex;
	flex-wrap: wrap;
	gap: var(--gapxs);
	& a{
		display: inline-block;
		text-align: center;
		font-size: var(--fontxs);
		padding: 0 10px;
		border: 1px solid var(--color2);
		text-decoration: none;
		color: var(--color2);
		border-radius: 14px;
		white-space: nowrap;
		text-decoration: none !important;
		background: var(--color5);
		}
	& a:hover{
		background: var(--color7);
		}
	}

/* --------------------------------------------------- animation */
/*
#js{
	.scrollitem,
	.wrapper > .wp-block-group,
	.wrapper > .wp-block-cover{
		opacity: 0;
		transition: all 1.5s cubic-bezier(0.23, 1, 0.32, 1);
		}
	.scrollitem.isscroll,
	.wrapper > .wp-block-group.isscroll,
	.wrapper > .wp-block-cover.isscroll{
		opacity: 1;
		}
}
#js .scale.scrollitem{
	opacity : 0.001;
	transform : scale(0);
	transform-origin: center;
	transition: transform cubic-bezier(.075, .82, .165, 1) .8s;
	}
	#js .scale.scrollitem.isscroll{
		transform : scale(1);
		opacity : 1;
		}

#js .fadeinleft.scrollitem{
	opacity : 0.001;
	transform : translate(-200px, 0);
	transition: transform cubic-bezier(.075, .82, .165, 1) .8s;
	}
	#js .fadeinleft.scrollitem.isscroll{
		transform : translate(0, 0);
		opacity : 1;
		}

#js .fadeinright.scrollitem{
	opacity : 0.001;
	transform : translate(200px, 0);
	transition: transform cubic-bezier(.075, .82, .165, 1) .8s;
	}
	#js .fadeinright.scrollitem.isscroll{
		transform : translate(0, 0);
		opacity : 1;
		}
*/
/* --------------------------------------------------- block setting */

.wrapper{
	text-align: center;
	min-height: 50vh;
	}
.wrapper > *{
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	}
.wrapper > * > .is-layout-constrained{
	width: 1320px !important;
	max-width: 90vw !important;
	margin: 0 auto !important;
	padding: var(--gapl) 0;
	text-align: left;
	}
.wrapper > #top_mainvisual,
.wrapper > .post-title,
.wrapper > .wp-block-cover:has(.wp-block-post-title),
.wrapper > .wp-block-group:has(.wp-block-post-title){
	padding-top: 80px;
	}
.wrapper > *:last-child > .is-layout-constrained{
	padding-bottom: var(--gapxl)
	}
@media screen and (max-width: 599px) {
	.wrapper > #top_mainvisual,
	.wrapper > .post-title,
	.wrapper > .wp-block-cover:has(.wp-block-post-title),
	.wrapper > .wp-block-group:has(.wp-block-post-title){
		padding-top: 60px;
		}
}

:where(.is-layout-flex) { gap: var(--gap); }
:where(.is-layout-grid) { gap: var(--gap); }
:where(.wp-block-columns.is-layout-flex) { gap: var(--gapl); }
.is-style-nogap{ gap: 0; }

.has-x-large-font-size{ font-size: var(--fontxxl) !important; line-height: 1.6; }
.has-large-font-size{ font-size: var(--fontl) !important; }
.has-medium-font-size{ font-size: var(--fontm) !important; }
.has-small-font-size{ font-size: var(--fontxs) !important; }


.wp-block-post-title{
	color: var(--color3);
	background: url(images/bg05.png) no-repeat center / contain;
	padding: 40px var(--gapxl);
	text-align: center;
	display: inline-block;
	font-size: var(--fontxl);
	margin: 0;
	}
@media screen and (max-width: 781px) {
	.wp-block-post-title{
		display: block;
		margin-top: var(--gap);
		}
	}
@media screen and (max-width: 599px) {
	.wp-block-post-title{
		padding: var(--gap);
		}
	}
.post-title +.wp-block-cover .wp-block-post-title,
.post-title +.wp-block-group .wp-block-post-title{
	margin-top: var(--gap);
	}
.post-title:has(+.wp-block-cover .wp-block-post-title),
.post-title:has(+.wp-block-group .wp-block-post-title){
	display: none;
	}
.post-title .wp-block-group__inner-container{
	text-align: center;
	padding-bottom: 0;
	}

.wp-block-heading{
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	
	&.is-style-title1{
		color: var(--color3);
		background: url(images/bg05.png) no-repeat center / contain;
		padding: var(--gap) var(--gapxl);
		}
	}

h2{
	color: var(--color2);
	font-size: var(--fontxxl);
	line-height: 1.6;
	margin: var(--gapl) 0;
	letter-spacing: .3rem;
	position: relative;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	&:has(img:nth-child(2)){
		display: flex;
		align-items: center;
		gap: var(--gaps);
		justify-content: center;
		}
	& bdo{
		font-size: var(--fontxxl);
		display: block;
		color: var(--color2);
		}
	&:has(bdo){
		font-size: var(--fontl);
		display: block;
		color: var(--color1);
		}
	}
h3{
	font-size: var(--fontxl);
	line-height: 1.6;
	margin: var(--gap) 0;
	letter-spacing: .1rem;
	color: var(--color3);
	}

h4{
	font-size: var(--fontl);
	margin: var(--gap) 0;
	position: relative;
	color: var(--color3);
	}

h5{
	font-size: var(--fontm);
	margin: var(--gap) 0;
	}

h6{
	font-size: var(--fontm);
	margin: var(--gaps) 0;
	}

.is-style-spacers{ height: var(--gaps) !important; }
.is-style-spacerm{ height: var(--gap) !important; }
.is-style-spacerl{ height: var(--gapl) !important; }
.is-style-spacerxl{ height: var(--gapxl) !important; }


.wp-block-paragraph{
	&+.wp-block-paragraph{ margin-top: var(--gaps); }
	}

ul.wp-block-list{
	margin: var(--gaps) 0;
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	
	& li{
		list-style-type: disc;
		margin-bottom: var(--gapxs);
		margin-left: 24px;
		padding-left: var(--gapxs);
		}

	&.is-style-linklist{ /* link list title detail*/
		border-top: 1px solid var(--border-color1);
		& li{
			list-style-type: none;
			margin: 0;
			padding: 0;
			border-bottom: 1px solid var(--border-color1);
			font-size: var(--fonts);
			}
		& a{
			padding: var(--gap) var(--gaps);
			padding-right: 40px;
			position: relative;
			display: flex;
			color: var(--txt-color2);
			}
		& a:hover{
			background: var(--bg-color3);
			}
		& a strong{
			display: block;
			flex: 30% 0 0;
			font-family: var(--lang);
			color: var(--accent-color2);
			font-size: var(--font);
			}
		& a::after{
			font-family: 'Material Symbols Outlined';
		    font-weight: normal;
		    font-style: normal;
		    display: inline-block;
			vertical-align: middle;
		    -webkit-font-feature-settings: 'liga';
		    -webkit-font-smoothing: antialiased;
			font-variation-settings:'FILL' 0,'wght' 200,'GRAD' 0,'opsz' 24;
			content: "arrow_right_alt";
			font-size: 20px;
			line-height: 1;
			color: var(--txt-color3);
			position: absolute;
			right: 10px;
			top: 50%;
			margin-top: -10px;
			transition: all 1.2s cubic-bezier(0.23, 1, 0.32, 1);
			}
		& a:hover::after{
			color: var(--text-color);
			}
		}
	}
@media screen and (max-width: 599px) {
	.wp-block-heading{
		& br{
			display: none;
			}
		}
	ul.wp-block-list{
		&.is-style-linklist{ /* link list title detail*/
			& a{
				display: block;
				}
			& strong{
				margin-bottom: var(--gapxs);
				}
			}
	
		}
}
ol.wp-block-list{
	margin: var(--gaps) 0;
	counter-reset: item;
	
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	
	& li{
		margin-bottom: var(--gapxs);
		padding-left: 40px;
		position: relative;
		}
	& li:before {
		counter-increment: item;
		content: counter(item);
		border: 1px solid var(--accent-color1);
		color: var(--accent-color1);
		font-family: var(--lang);
		display: inline-block;
		position: absolute;
		width: 24px;
		line-height: 24px;
		text-align: center;
		left: 0;
		top: 0;
		}
	}
.wp-block-cover{
	padding: 0;
	}
.wp-block-group{
	&.is-style-narrow{
		&  > .is-layout-constrained{
			width: 900px !important;
			max-width: 90vw !important;
			}
		}
	&.is-style-bgcolor1{
		background: var(--color7) !important;
		position: relative;
		& > .is-layout-constrained{
			padding-bottom: var(--gapxl);
			}
		&::before{
			content: "";
			display: block;
			width: 100vw;
			height: 50px;
			position: absolute;
			top: -49px;
			background: url(images/line02.png) repeat-x center bottom;
			background-size: 50%;
			}
		}
	&.is-style-bgcolor2{
		background: var(--color6) !important;
		position: relative;
		& > .is-layout-constrained{
			padding-bottom: var(--gapxl);
			}
		&::before{
			content: "";
			display: block;
			width: 100vw;
			height: 50px;
			position: absolute;
			top: -49px;
			background: url(images/line01.png) repeat-x center bottom;
			background-size: 50%;
			}
		&:nth-child(4n) > .wp-block-group__inner-container{
			position: relative;
			z-index:0;
			}
		&:nth-child(4n) > .wp-block-group__inner-container::before{
			content: "";
			display: block;
			width: 76px;
			height: 112px;
			background: url(images/ico04.png) no-repeat center / contain;
			position: absolute;
			right: 0;
			z-index: -1;
			}
		}
	&.is-style-bgcolor3{
		background: var(--color3) !important;
		position: relative;
		& > .is-layout-constrained{
			padding-bottom: var(--gapxl);
			}
		&::before{
			content: "";
			display: block;
			width: 100vw;
			height: 50px;
			position: absolute;
			top: -49px;
			background: url(images/line03.png) repeat-x center bottom;
			background-size: 50%;
			}
		& *{
			color: var(--color5);
			}
		}
	&.line1{
		position: relative;
		&::before{
			content: "";
			display: block;
			width: 100vw;
			height: 70px;
			position: absolute;
			top: -50px;
			background: url(images/line04.png) repeat-x center bottom;
			background-size: contain;
			}
		}
	&.line2{
		padding-top: 0 !important;
		}
	}

.wp-block-columns{
	margin: var(--gapl) 0;
	
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }

	.wp-block-column:empty{
		background: none;
		padding: 0;
		margin: 0;
		border: none;
		box-shadow: unset;
		}
	}
@media screen and (max-width: 781px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(3)) >.wp-block-column {
		flex: calc( 50% - var(--gap)*1/2 ) 0 0 !important;
		}
	.wp-block-columns:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(5)) >.wp-block-column {
		flex: calc( 33.333333% - var(--gap)*2/3 ) 0 0 !important;
		}
}
@media screen and (max-width: 599px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(5)) >.wp-block-column {
		flex: calc( 50% - var(--gap)*1/2 ) 0 0 !important;
		}
}

.wp-block-columns.columns-event{
	gap: var(--gap);
	flex-wrap: wrap !important;
	align-items: stretch;
	
	.wp-block-column{
		flex: 0 0 calc(25% - var(--gap) * 3/4);
		background: var(--color5);
		border-radius: var(--gaps);
		padding-bottom: var(--gap);
		overflow: hidden;

		.wp-block-image{
			margin: 0 0 var(--gaps);
			overflow: hidden;
			}
		.wp-block-image a{
			display: block;
			aspect-ratio: 16 / 9;
			}
		.wp-block-image img{
			width: 100%;
			height: 100%;
			object-fit: cover;
			}
		.wp-block-heading{
			font-size: var(--fontm);
			margin: 0 var(--gaps);
			}
		.wp-block-heading a{
			text-decoration: none !important;
			}
		.wp-block-paragraph{
			font-size: var(--fontxs);
			margin: 0 var(--gaps);
			}
		.wp-block-paragraph.date{
			color: var(--color2);
			font-size: var(--fontxs);
			}
		.wp-block-paragraph.tags{
			margin-top: var(--gaps)
			}
		}
	}
@media screen and (max-width: 599px) {
	.wp-block-columns.columns-event:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(3)) >.wp-block-column {
		flex: 100% 0 0 !important;
		}
}
.wp-block-columns.columns-event-list{
	gap: var(--gap);
	flex-wrap: wrap !important;
	align-items: start;
	
	.wp-block-column{
		flex: 1 1 100%;
		padding: 0 0  var(--gap);
		border-bottom: 1px dotted var(--color8);
		overflow: hidden;
		position: relative;
		clear: both;
		/*padding-right: calc( 30% + var(--gaps) );*/
		&.ended{
			display: none;
			}
		.wp-block-image{
			/*
			margin: 0 0 var(--gaps);
			position: absolute;
			top: 0;
			right: 0;
			*/
			width: 30%;
			border-radius: var(--gapxs);
			overflow: hidden;
			float: right;
			margin: 0 0 var(--gaps) var(--gaps);
			}
		.wp-block-image a{
			display: block;
			aspect-ratio: 16 / 9;
			}
		.wp-block-image img{
			width: 100%;
			height: 100%;
			object-fit: cover;
			}
		.wp-block-heading{
			font-size: var(--fontm);
			margin: 0;
			}
		.wp-block-heading a{
			text-decoration: none !important;
			}
		.wp-block-paragraph{
			font-size: var(--fontxs);
			margin: 0;
			}
		.wp-block-paragraph.date{
			color: var(--color2);
			font-size: var(--font);
			.start{
				font-size: var(--fontl);
				font-weight: bold;
				line-height: 1.2;
				}
			}
		.wp-block-paragraph.tags{
			margin-top: var(--gapxs);
			}
		}
	}
nav.list-eventtag{
	margin: var(--gapl) 0;
	&:first-child{ margin-top: 0; }
	& ul{
		display: flex;
		flex-wrap: wrap;
		gap: var(--gaps);
		justify-content: center;
		
		& a{
			display: inline-block;
			text-align: center;
			font-size: var(--font);
			padding: 0 18px;
			border: 1px solid var(--color2);
			text-decoration: none;
			color: var(--color2);
			border-radius: 18px;
			white-space: nowrap;
			text-decoration: none !important;
			font-weight: bold;
			background: var(--color5);
			}
		& a:hover{
			background: var(--color7);
			}
		.current-tag a{
			background: var(--color2);
			color: var(--color5);
			}
		}
	}
@media screen and (max-width: 599px) {
	nav.list-eventtag{
		& ul{
			& a{
				font-size: var(--fonts);
				padding: 0 10px;
				}
			}
		}
	}

.wp-block-columns.columns-eventcategory{
	flex-wrap: wrap !important;
	.wp-block-column{
		flex: 0 0 calc( 25% - var(--gapl) * 3/4);
		text-align: center;
		}
	.wp-block-image{
		max-width: 200px;
		margin: 0 auto var(--gaps);
		}
	.wp-block-heading{
		font-size: var(--fontm);
		margin: 0 0 var(--gaps);
		}
	.wp-block-heading a{
		text-decoration: none !important;
		}
	.wp-block-paragraph{
		font-size: var(--fontxs);
		}
	.wp-block-buttons{
		margin-top: var(--gaps);
		}
	}

.wp-block-columns.columns-infoimg{
	flex-wrap: wrap !important;
	gap: var(--gap);
	align-items: start;
	
	.wp-block-column{
		flex: 0 0 calc( 50% - var(--gap) / 2);
		display: flex;
		gap: var(--gap);
		
		.wp-block-image{
			flex: 0 0 100px;
			margin: 0;
			border-radius: var(--gapxs);
			overflow: hidden;
			}
		.wp-block-image a{
			display: block;
			aspect-ratio: 1 / 1;
			}
		.wp-block-image img{
			width: 100%;
			height: 100%;
			object-fit: cover;
			}
		.wp-block-group{
			flex: 1 1 100%;
			}
		.wp-block-group__inner-container{
			display: flex;
			flex-wrap: wrap;
			}
		.wp-block-heading{
			font-size: var(--fontm);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-heading a{
			text-decoration: none !important;
			}
		.wp-block-paragraph{
			font-size: var(--fontxs);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-paragraph.date{
			color: var(--color2);
			font-size: var(--fontxs);
			flex: 0 0 6em;
			}
		.wp-block-paragraph.category{
			gap: var(--gapxs);
			flex: 1 1 calc( 100% - 7em );
			}
		}
	}
@media screen and (max-width: 781px) {
	.wp-block-columns.columns-infoimg{
		.wp-block-column{
			flex: 1 1 100%;
			}
		}
}

.wp-block-columns.columns-infoimgl{
	.wp-block-column{
		flex: 0 0 calc( 25% - var(--gap) * 3/4);
		display: block;
		
		.wp-block-image{
			margin: 0 0 var(--gaps);
			border-radius: var(--gapxs);
			overflow: hidden;
			}
		.wp-block-image a{
			display: block;
			aspect-ratio: 3 / 2;
			}
		.wp-block-image img{
			width: 100%;
			height: 100%;
			object-fit: cover;
			}
		.wp-block-group{
			}
		.wp-block-group__inner-container{
			display: flex;
			flex-wrap: wrap;
			}
		.wp-block-heading{
			font-size: var(--fontm);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-paragraph{
			font-size: var(--fontxs);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-paragraph.date{
			color: var(--color2);
			font-size: var(--fontxs);
			flex: 0 0 6em;
			}
		.wp-block-paragraph.category{
			gap: var(--gapxs);
			flex: 1 1 calc( 100% - 7em );
			}
		}
	}
@media screen and (max-width: 781px) {
	.wp-block-columns.columns-infoimgl{
		.wp-block-column{
			flex: 0 0 calc( 50% - var(--gap) * 1/2);
			}
		}
}

.wp-block-columns.columns-infoimgtop{
	
	& > .wp-block-column:first-child{
		.wp-block-image{
			margin: 0 0 var(--gaps);
			border-radius: var(--gapxs);
			overflow: hidden;
			}
		.wp-block-image a{
			display: block;
			aspect-ratio: 16 / 9;
			}
		.wp-block-image img{
			width: 100%;
			height: 100%;
			object-fit: cover;
			}
		.wp-block-group{
			}
		.wp-block-group__inner-container{
			display: flex;
			flex-wrap: wrap;
			}
		.wp-block-heading{
			font-size: var(--fontm);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-paragraph{
			font-size: var(--fontxs);
			margin: 0;
			flex: 1 1 100%;
			}
		.wp-block-paragraph.date{
			color: var(--color2);
			font-size: var(--fontxs);
			flex: 0 0 6em;
			}
		.wp-block-paragraph.category{
			gap: var(--gapxs);
			flex: 1 1 calc( 100% - 7em );
			}
		}
	}
@media screen and (max-width: 781px) {
	.wp-block-columns.columns-infoimgtop{
		
		& > .wp-block-column:first-child{
			display: flex;
			gap: var(--gap);
			.wp-block-image{
				flex-basis: 50%;
				}
			.wp-block-group{
				flex-basis: 50%;
				}
			}
		}
	}
@media screen and (max-width: 599px) {
	.wp-block-columns.columns-infoimgtop{
		
		& > .wp-block-column:first-child{
			display: block;
			}
		}
	}

.wp-block-columns.columns-blob{
	align-items: start;
	.wp-block-column{
		position: relative;
		}
	.wp-block-column::before{
		content: "";
		display: block;
		width: 180px;
		height: 180px;
		background: url(images/bg04.png) no-repeat center;
		background-size: contain;
		position: absolute;
		z-index: 0;
		right: calc( var(--gapl) * -1 );
		top: 0;
		}
	.wp-block-column:nth-child(2n)::before{
		background: url(images/bg03.png) no-repeat center;
		background-size: contain;
		top: 10%;
		}
	.wp-block-image{
		mask-image: url("images/blob01.svg");
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: auto;
		overflow: hidden;
		}
	.wp-block-image a{
		display: block;
		aspect-ratio: 1 / 1;
		}
	.wp-block-image img{
		width: 100%;
		height: 100%;
		object-fit: cover;
		}
	.wp-block-column:nth-child(2n) .wp-block-image{
		mask-image: url("images/blob02.svg");
		}
	.wp-block-column > *{
		position: relative;
		z-index: 1;
		justify-content: center;
		}
	}

.wp-block-columns.columns-back{
	align-items: start;
	.wp-block-column{
		position: relative;
		}
	.wp-block-column::before{
		content: "";
		display: block;
		width: 180px;
		height: 180px;
		background: url(images/bg04.png) no-repeat center;
		background-size: contain;
		position: absolute;
		z-index: 0;
		right: calc( var(--gapl) * -1 );
		top: 0;
		}
	.wp-block-column:nth-child(2n)::before{
		background: url(images/bg03.png) no-repeat center;
		background-size: contain;
		top: 10%;
		}
	.wp-block-column > *{
		position: relative;
		z-index: 1;
		justify-content: center;
		}
	& h4{
		margin: var(--gaps) 0;
		}
	}

.wp-block-columns.columns-step{
	align-items: start;
	.wp-block-column{
		position: relative;
		background: #fff;
		padding: var(--gap) var(--gaps);
		border-radius: var(--gaps);
		}
	.wp-block-column:not(:last-child)::after{
        font-family: 'moralogy' !important;
        speak: never;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "\27";
        display: block;
        border-radius: 17px;
        position: absolute;
        right: -50px;
        top: 50%;
		color: var(--color8);
		font-size: var(--fontxxl);
		margin-top: -1em;
		}
	& h4{
		font-size: var(--fontm);
		line-height: 1.6;
		text-align: center;
		}
	& h4 em{
		display: block;
		font-size: var(--font);
		font-weight: bold;
		background: url(images/ico02.png) no-repeat center;
		background-size: contain;
		height:70px;
		line-height: 70px;
		margin-bottom: var(--gaps);
		}
	& h4 strong{
		font-size: var(--fontxl);
		line-height: 1.2;
		}
	}
@media screen and (max-width: 781px) {
	.wp-block-columns.columns-step{
		.wp-block-column:not(:last-child)::after{
	        display: none;
			}
		}
	}

.wp-block-image{
	margin: var(--gap) 0;

	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }

	&.is-style-multiply{
		mix-blend-mode: multiply;
		}
	&.is-style-darken{
		mix-blend-mode: darken;
		}
	}

.wp-block-image.is-style-blob1{
	display: block;
	aspect-ratio: 1 / 1;
	mask-image: url("images/blob01.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: auto;
	& img{
		width: 100%;
		height: 100%;
		object-fit: cover;
		}
	}
.wp-block-image.is-style-blob2{
	display: block;
	aspect-ratio: 1 / 1;
	mask-image: url("images/blob02.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: auto;
	& img{
		width: 100%;
		height: 100%;
		object-fit: cover;
		}
	}

.wp-block-media-text{
	margin: val(--gap) 0;

	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	}

	.wp-block-media-text .wp-block-media-text__content{
		padding-right: 0;
		}
	.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{
		padding-left: 0;
		padding-right: 8%;
		}

.wp-block-image figcaption {
	color: var(--color1);
	font-size: var(--fonts);
	}

.wp-block-separator{
	margin: val(--gap) 0;
	display: block;
	width: 100%;
	height: 2px;
	border: none;
	background: var(--color8);
	}

.wp-block-embed.wp-block-embed-youtube.wp-embed-aspect-16-9{
	}
	.wp-block-embed.wp-block-embed-youtube.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
		width: 100%;
		aspect-ratio: 16 / 9;
		}
	.wp-block-embed.wp-block-embed-youtube.wp-embed-aspect-16-9 iframe {
		width: 100%;
		height: 100%;
		}

.wp-block-buttons {
	margin: var(--gap) 0;
	gap: var(--gap) !important;
	
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	
	.wp-block-button__link{
		display: block;
		text-align: center;
		text-decoration: none;
		outline: none;
		padding: var(--gaps) 50px var(--gaps) var(--gap);
		line-height: 1.6;
		font-weight: normal;
		font-size: var(--font);
		vertical-align: middle;
		min-width: 300px;
		max-width: 100%;
		position: relative;
		border-radius: var(--gap);
		transition: all .3s;
		text-decoration: none !important;
		}
	.wp-block-button__link::after {
		font-family: 'moralogy' !important;
		speak: never;
		font-style: normal;
		font-weight: normal;
		font-variant: normal;
		text-transform: none;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		content: "\27";
		width: 34px;
		height: 34px;
		display: block;
		line-height: 34px;
		border-radius: 17px;
		position: absolute;
		right: var(--gaps);
		top: calc( 50% - 17px);
		}
	.wp-block-button__link[target="_blank"]::after {
		content: "\29";
		}
	.wp-block-button__link {
		color: var(--color5);
		border: 2px solid var(--color2);
		background-color: var(--color2);
		}
	.wp-block-button__link::after {
		background-color: var(--color3);
		}
	.wp-block-button__link:visited{
		color: var(--color5);
		}
	.wp-block-button__link:hover {
		color: var(--color3);
		border: 2px solid var(--color3);
		background-color: var(--color5);
		}
	.wp-block-button__link:hover::after{
		color: var(--color5);
		}
	.disabled.wp-block-button{
		cursor: not-allowed;
		}
	.disabled .wp-block-button__link {
		color: var(--color5) !important;
		border: 1px solid #d6d6d6;
		background-color: #d6d6d6;
		pointer-events: none;
		}
	}
.wp-block-buttons .wp-block-button.is-style-outline{
	.wp-block-button__link {
		color: var(--color3);
		border: 2px solid var(--color2);
		background-color: var(--color5);
		}
	.wp-block-button__link::after {
		background-color: var(--color5);
		border: 1px solid var(--color2);
		}
	.wp-block-button__link:visited{
		color: var(--color2);
		}
	.wp-block-button__link:hover {
		color: var(--color3);
		border: 2px solid var(--color2);
		background-color: var(--color6);
		}
	.wp-block-button__link:hover::after{
		color: var(--color5);
		background-color: var(--color2);
		}
	}
.wp-block-buttons .wp-block-button.is-style-simplebutton {
	.wp-block-button__link{
		padding: var(--gapxs) var(--gap) var(--gapxs) var(--gaps);
		font-size: var(--fonts);
		min-width: 160px;
		border-radius: var(--gap);
		transition: all .3s;
		}
	.wp-block-button__link::after {
		width: auto;
		height: auto;
		border-radius: 17px;
		right: var(--gaps);
		}
	.wp-block-button__link {
		color: var(--color5);
		border: 2px solid var(--color8);
		background-color: var(--color8);
		}
	.wp-block-button__link::after {
		background-color: transparent;
		}
	.wp-block-button__link:visited{
		color: var(--color5);
		}
	.wp-block-button__link:hover {
		color: var(--color9);
		border: 2px solid var(--color9);
		background-color: var(--color5);
		}
	.wp-block-button__link:hover::after{
		color: var(--color9);
		}
	}


.spacer1{ height: var(--gapl) !important; }
.spacer2{ height: var(--gap) !important; }


	
@media screen and (max-width: 781px) {
	:where(.wp-block-columns.is-layout-flex) {
		gap: var(--gap);
	}
	.wp-block-columns{
		margin: var(--gap) 0;
		}
}
@media screen and (max-width: 599px) {
	.wp-block-image .alignright, .wp-block-image .alignleft{
		float: none;
		margin: 0 auto;
		}
	.wp-block-buttons{
		text-align: center;
		}
	.wp-block-buttons .wp-block-button{
		margin: 0;
		}
	.wp-block-button__link {
		font-size: 1rem;
		}
	.wp-block-columns{
		margin-bottom: 0;
		}
	.wp-block-columns .wp-block-column:empty{
		margin-bottom: 0;
		}
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content{
		padding: 0;
		margin-top: var(--gap);
		}
}

.wp-block-table{
	margin: var(--gap) 0;
	&:first-child{ margin-top: 0; }
	&:last-child{ margin-bottom: 0; }
	& figcaption{
		}
	& table{
		width: 100%;
		border: 0;
		border-spacing: 0;
		height: auto !important;
		border-top: 1px solid var(--color1);
		}
	& thead{
		border: unset;
		}
	& th,
	& td{
		padding: var(--gaps);
		border: none;
		border-bottom: 1px solid var(--color1);
		width: auto;
		vertical-align: top;
		}
	& th{
		border-bottom: 1px solid var(--color1);
		background: var(--color6);
		}
	&.is-style-stripes{

		}
	&.is-style-leftth{
		& table{
			border-top: unset;
			}
		& td{
			border-bottom: 1px solid var(--color8);
			}
		& td:first-child{
			width: 30%;
			text-align: center;
			font-weight: bold;
			border-bottom: 2px solid var(--color8);
			color: var(--color2);
			}
		}

	}
@media screen and (max-width: 599px) {
.wp-block-table{
	&.is-style-leftth{
		& td{
			display: block;
			padding: var(--gap) 0;
			}
		& td:first-child{
			display: block;
			width: auto;
			border-bottom: none;
			padding-bottom: 0;
			text-align: left;
			& br{ display: none; }
			}
		}
	}
}



/* --------------------------------------------------- form */
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
input.input-text {
	border: 1px solid #ccc;
	background: var(--color5)fff;
	padding: 5px !important;
	height: 30px;
	line-height: 30px;
	transition: all 0.2s ease-in-out 0s;
	border-radius: 4px;
	font-size: 1rem;
	max-width: 90%;
	font-family: inherit;
}
input[type="search"]{
	padding: 5px;
	height: 46px;
	line-height: 46px;
	}
input[type="radio"]{
	margin: 0 10px;
	}
input[type="checkbox"]{
	margin: 0 10px;
	}
input[type="submit"],
input[type="button"]{
	transition: all .3s;
	cursor: pointer;
	-webkit-appearance: none;
	display: inline-block;
	text-align: center;
	text-decoration: none;
	outline: none;
	padding: 14px 40px;
	line-height: 1.6;
	font-family: inherit;
	font-weight: 900;
	font-size: 1.1rem;
	z-index: 2;
	overflow: hidden;
	white-space: nowrap;
	vertical-align: middle;
	max-width: 98%;
	position: relative;
	border: none;
	border: 1px solid var(--color2);
	background-color: var(--color2);
	color: var(--color5);
	border-radius: 30px;
	}
	input[type="button"]{
		border: 1px solid #666;
		background-color: #666;
		color: var(--color5);
		}
	input[type="submit"]:hover{
		background-color: var(--color5);
		color: var(--color2);
		}
	input[type="button"]:hover{
		background-color: var(--color5);
		color: #666;
		}

textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
input.input-text:focus {
	border-color: #000;
	outline: 0;
}
textarea.line-disabled,
input[type="text"].line-disabled,
input[type="password"].line-disabled,
input[type="datetime"].line-disabled,
input[type="datetime-local"].line-disabled,
input[type="date"].line-disabled,
input[type="month"].line-disabled,
input[type="time"].line-disabled,
input[type="week"].line-disabled,
input[type="number"].line-disabled,
input[type="email"].line-disabled,
input[type="url"].line-disabled,
input[type="search"].line-disabled,
input[type="tel"].line-disabled,
input[type="color"].line-disabled,
input.input-text.line-disabled,
textarea:disabled,
input[type="text"]:disabled,
input[type="password"]:disabled,
input[type="datetime"]:disabled,
input[type="datetime-local"]:disabled,
input[type="date"]:disabled,
input[type="month"]:disabled,
input[type="time"]:disabled,
input[type="week"]:disabled,
input[type="number"]:disabled,
input[type="email"]:disabled,
input[type="url"]:disabled,
input[type="search"]:disabled,
input[type="tel"]:disabled,
input[type="color"]:disabled,
input.input-text:disabled {
	background: #f2f2f2;
	cursor: no-drop;
}
textarea {
	height: auto;
	line-height: 1.8em;
	width: 98%;
}
select {
	border: 1px solid #ccc;
	height: 46px;
	color: #000;
	font-size: 14px;
	padding: 13px;
	background-color: var(--color5)fff;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	-ms-border-radius: 6px;
	-o-border-radius: 6px;
	border-radius: 6px;
	background-position: 93% center;
	background-repeat: no-repeat;
	position: relative;
	-webkit-appearance: none;
	-moz-appearance: none;
	text-indent: 0.01px;
	text-overflow: '';
	cursor: pointer;
}
select:focus {
	border-color: #000;
}
.inputs{
	width: 100px;
	}
.inputm{
	width: 320px;
	max-width: 90%;
	}
.inputl{
	width: 450px;
	}
.caution{
	color: #666;
	}


/* --------------------------------------------------- header */

header{
	position: absolute;
	z-index: 1000;
	width: 100%;
	top: 0;
	left: 0;
	height: auto !important;
	position: fixed;
	transition: background .3s;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	background: transparent;
	}
	.home header{
		backdrop-filter:unset;
		background: transparent;
		}
	.fixed header{
		position: fixed;
		background: var(--color6);
		backdrop-filter: blur(10px);
	    background: transparent;
		}
#header{
	.contents{
		margin: 0 3vw;
		}
	.contenttop{
		display: none;
		}
	h1{
		display: none;
		}
	.contentbtm{
		display: flex;
		gap: var(--gap);
		justify-content: space-between;
		align-items: center;
		}
	.logowrap{
		text-align: left;
		}
		.logowrap .logo{
			background: url(images/logo01.png) no-repeat left center;
			background-size: contain;
			display: inline-block;
			vertical-align: middle;
			width: 290px;
			height: 67px;
			text-indent: -9999px;
			transition: .3s;
			}
	}
	@media screen and (max-width: 781px) {
	}
	@media screen and (max-width: 599px) {
		#header{
			.logowrap .logo{
				width: 220px;
				height: 50px;
				}
			}
	}
#gnav{
	margin-left: auto;
	
	#menu-gnav{
		display: flex;
		gap: var(--gap);
		align-items: center;
		justify-content: end;
		font-size: var(--fonts);
		
		& a{
			color: var(--color1);
			position: relative;
			display: block;
			padding: 29px 0 28px;
			}
		& a::hover{
			color: var(--color1);
			}
		& > li > a:before{
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 3px;
			background: var(--color8);
			transform: scale(0, 1);
			transition: 0.4s;
			}
		& > li > a:hover:before {
			transform: scale(1);
			}
		& > li.current-menu-item > a:before,
		& > li.current-menu-parent > a:before,
		& > li.current-page-ancestor > a:before{
			transform: scale(1);
			background: var(--color8);
			}
		}
	}
#snav{
	display: flex;
	align-items: center;
	justify-content: end;
	.wp-block-buttons{
		margin: 0;
		}
	.controlnav{
		display: none;
		}
	.menu-trigger{
		cursor: pointer;
		color: var(--color5);
		text-decoration: none;
		display: block;
		width: 80px;
		height: 80px;
		display: flex;
		align-items: center;
		justify-content: center;
		&:hover{
			}
		.icon,
		.icon span {
			display: block;
			transition: all .6s;
			box-sizing: border-box;
			}
		.icon{
			display: inline-block;
			vertical-align: middle;
			position: relative;
			width: 34px;
			height: 22px;
			cursor: pointer;
			}
		& i{
			display: none !important;
			}
		.icon span {
			position: absolute;
			left: 0;
			width: 100%;
			height: 2px;
			background-color: var(--color2);
			}
		.icon span:nth-of-type(1) { top: 0; }
		.icon span:nth-of-type(2) { top: 10px; }
		.icon span:nth-of-type(3) { bottom: 0; }
		}
	}
	#allpagewrapper{
		width: 100vw;
		transition: transform .6s cubic-bezier(0.215, 0.61, 0.355, 1);
		transition: transform .6s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform .6s cubic-bezier(0.215, 0.61, 0.355, 1);
		overflow: hidden;
		}
	.single-event #allpagewrapper{
		/* overflow: unset; */
		}
	.menuopen{
		#allpagewrapper{
			transform: translateX(-80vw);
			overflow: visible;
			}
		#allpagewrapperoverlay {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: #f8f4f063;
			z-index: 999;
			}
		header {
			z-index: 1000;
			}
		.menu-trigger{
			.icon span:nth-of-type(1) { transform: translateY(10px) rotate(-45deg); }
			.icon span:nth-of-type(2) { opacity: 0; }
			.icon span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg); }
			}
		}
	#snav .snavcont{
		display: block;
		position: absolute;
		top: 0;
		width: 80vw;
		height: 100vh;
		background: var(--color6);
		padding: 0;
		right: -80vw;
		overflow-x: hidden;
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
		
		& h2{
			display: none;
			}
		.snavcontinner{
			margin: var(--gapl);
			text-align: left;
			display: flex;
			align-items: start;
			justify-content: space-between;
			position: relative;
			
			&::after{
				display: block;
				content: "";
				width: 1px;
				height: 100%;
				background: var(--color7);
				position: absolute;
				left: 50%;
				}
			}
		.header_sitemap1,
		.header_sitemap2{
			flex-basis: 50%;
			
			li a{
				display: block;
				padding: var(--gaps) var(--gap);
				position: relative;
				}
			li a::before{
				content: "";
		        position: absolute;
		        left: 0;
		        top: 0;
		        width: 3px;
		        height: 100%;
		        background: var(--color8);
		        transform: scale(1, 0);
		        transition: 0.4s;
				}
			li:hover a::before{
				transform: scale(1);
				}
			li.current-menu-item a:before,
			li.current-menu-parent a:before,
			li.current-page-ancestor a:before{
				transform: scale(1);
				background: var(--color9);
				}
			}
		}


@media screen and (max-width: 1240px) {
	#gnav{
		display: none;
		}
	#snav{
		.controlnav{
			display: block;
			}
		.snavcont{
			width: 85vw;
			right: -85vw;
			}
		}
	.menuopen #allpagewrapper{
		transform: translateX(-85vw);
		}
}
@media screen and (max-width: 781px) {
}

@media screen and (max-width: 599px) {
	#snav{
		.wp-block-buttons{
			display: none;
			}
		.menu-trigger{
			margin-left: 0;
			width: 60px;
	        height: 60px;
			}
		.snavcont .snavcontinner{
			margin: var(--gapl) 0;
			flex-wrap: wrap;
			
			&::after{
				display: none;
				}
			
			.header_sitemap1,
			.header_sitemap2{
				flex-basis: 100%;
				}
			.header_sitemap1{
				order: 2;
				border-top: 1px solid var(--color7);
				margin-top: var(--gap);
				padding-top: var(--gap);
				}
			.header_sitemap2{
				order: 1;
				}
			}
		.snavcont{
			width: 80vw;
			right: -80vw;
			}
		}
	.menuopen #allpagewrapper{
		transform: translateX(-80vw);
		}
}

/* --------------------------------------------------- footer */
#gotop{
	position: fixed;
	z-index: 10;
	bottom: 10px;
	right: 10px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	overflow: hidden;
	&:before{
		display: block;
		margin: 0;
		font-size: 1rem;
		text-align: center;
		line-height: 50px;
		color: var(--color5);
		background: var(--color2);
		}
	& span{
		display: none;
		}
	}
	@media screen and (max-width: 599px) {
		#gotop{
			z-index: 1000;
			bottom: 0;
			right: 0;
			border-radius: 10px 0 0 0;
			height: 38px;
			&:before{
				line-height: 38px;
				}
			}
	}
#firstvisit{
	position: fixed;
	z-index: 1000;
	bottom: 10px;
	right: 40px;
	background: url(images/moran.gif) no-repeat right bottom / contain;
	width: 120px;
	height: 150px;
	& span{
		display: block;
		font-size: var(--fontxs);
		color: var(--color3);
		font-weight: bold;
		white-space: nowrap;
		position: relative;
		width: fit-content;
		padding: var(--gapxs);
		border: 1px solid var(--color3);
		background: var(--color5);
		border-radius: var(--gapxs);
		position: absolute;
		top: 0;
		right: 0;
		&::before {
			content: "";
			position: absolute;
			bottom: -5px;
			left: 50%;
			width: 13px;
			height: 13px;
			box-sizing: border-box;
			background-color: var(--color5);
			rotate: 135deg;
			translate: -50% 0;
			}
		&::after {
			content: "";
			position: absolute;
			bottom: -7px;
			left: 50%;
			width: 13px;
			height: 13px;
			box-sizing: border-box;
			border: 1px solid;
			border-color: var(--color3) var(--color3) transparent transparent;
			rotate: 135deg;
			translate: -50% 0;
			}
		}
	}
	@media screen and (max-width: 599px) {
		#firstvisit{
			z-index: 1000;
			bottom: 0;
			right: unset;
			left: 5vw;
			width: 110px;
			height: 140px;
			background-position: right bottom;
			background-size: contain;
			& span{
				right: unset;
				left: 0;
				}
			}
	}


footer{
	}
#footer{
	background: var(--color3);
	position: relative;
	padding: var(--gapxl) 0;
	&::before{
		content: "";
		display: block;
		width: 100vw;
		height: 50px;
		position: absolute;
		top: -49px;
		background: url(images/line03.png) repeat-x center bottom;
		background-size: 50%;
		}
	.contents{
		max-width: 90vw;
		margin: 0 auto;
		text-align: center;
		display: flex;
		flex-wrap: wrap;
		align-items: start;
		gap: var(--gapl) var(--gap);
		}
	.companyinfo{
		flex: 1 1 calc( 60% - var(--gap) /2 );
		display: flex;
		gap: var(--gap);
		align-items: start;
		.logowrap .logo {
			background: url(images/logo02.png) no-repeat left center;
			background-size: contain;
			display: inline-block;
			vertical-align: middle;
	        width: 290px;
	        height: 67px;
			text-indent: -9999px;
			}
		.logowrap2 .logo {
			background: url(images/logo03.png) no-repeat left center;
			background-size: contain;
			display: inline-block;
			vertical-align: middle;
		    width: 242px;
		    height: 33px;
			text-indent: -9999px;
			margin-bottom: var(--gaps);
			}
		.logowrap h1{
			display: none;
			}
		.logowrap2 p{
			color: var(--color5);
			font-size: var(--fontxs);
			text-align: left;
			}
		}
	.sitemap{
		flex: 1 1 calc( 40% - var(--gap) /2 );
		display: flex;
		gap: var(--gap);
		
		.footer_sitemap1{
			flex: 1 1 50%;
			}
		.footer_sitemap2{
			flex: 1 1 50%;
			}
		.globalnav{
			}
		.globalnav > li{
			margin-bottom: 14px;
			text-align: left;
			}
		.globalnav > li > a{
			display: block;
			position: relative;
			font-size: var(--font);
			color: var(--color5);
			}
		.subnav{
			}
		.subnav > li{
			margin-bottom: 14px;
			text-align: left;
			}
		.subnav > li > a{
			display: block;
			position: relative;
			font-size: var(--font);
			color: var(--color5);
			}
		}
	
	#copyright{
		flex-basis: 100%;
		text-align: center;
		font-size: var(--fontxs);
		color: var(--color5);
		a{
			color: var(--color5);
			text-decoration: none;
			}
		p{
			margin-bottom: 0;
			text-align: center;
			}
		}
	}
@media screen and (max-width: 781px) {
	#footer{
		.companyinfo,
		.sitemap{
			flex-basis: 100%;
			}
		}
	}
@media screen and (max-width: 599px) {
	#footer{
		.companyinfo{
			flex-wrap: wrap;
			gap: var(--gap);
			
			.logowrap,
			.logowrap2{
				flex-basis: 100%;
				text-align: left;
				}
			}
		}
	}


.breadcrumb{
	position: absolute;
	top: 100px;
	left: 5vw;
	& ol{
		max-width: 94vw;
		margin: 0 auto;
		display: flex;
		justify-content: start;
		font-size: var(--fonts);
		font-family: var(--serif);
		flex-wrap: wrap;
		& li{
			display: flex;
			}
		& li:has(a)::after{
			content: "/";
			color: var(--border-color1);
			display: inline-block;
			margin: 0 var(--gapxs);
			}
		& li a,
		& li span{
			display: block;
			text-overflow: ellipsis;
			max-width: 30em;
			overflow: hidden;
			white-space: nowrap;
			}
		}
	}
@media screen and (max-width: 599px) {
	.breadcrumb{
		top: 70px;
		}
	}


/* --------------------------------------------------- submenu */

#topmenu{
	margin: var(--gap) 0;
	.contents{
		width: 1320px;
		max-width: 90vw;
		margin: 0 auto;
		}
	& h2{
		display: none;
		}
	& ul{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		& li{
			display: flex;
			justify-content: center;
			align-items: center;
			text-align: left;
			position: relative;
			margin: 0 1vw;
			}
		& li a{
			display: block;
			white-space: nowrap;
			text-align: center;
			font-weight: normal;
			text-decoration: none;
			padding: 20px 0;
			position: relative;
			}
		& li a:before{
			content: "";
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 3px;
			background: var(--color2);
			transform: scale(0, 1);
			transition: 0.3s;
			}
		& li:hover > a{
			}
		& li:hover > a:before{
			transform: scale(1);
			background: var(--color2);
			}
		& li:hover > a:after{
			transform: scale(1);
			}
		& li.current-cat > a:before,
		& li.current_page_item > a:before{
			transform: scale(1);
			}
		}
	}		
	@media screen and (max-width: 599px) {
	}


.submenucontents{
	width: 1320px;
	max-width: 94vw;
	margin: 0 auto;
	}
	.submenucontents > .contents{
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		}
	.submenucontents #submenu{
		width: 24%;
		min-width: 200px;
		}
	.submenucontents #page{
		width: 74%;
		}
	.submenucontents .pagecontents > .wp-block-group{
		background: var(--color5);
		padding-top: 0;
		}
	.submenucontents .pagecontents > .wp-block-group > .wp-block-group__inner-container {
		width: 100%;
		max-width: 100%;
		}

	@media screen and (max-width: 781px) {
		.submenucontents > .contents{
			display: block;
			}
		.submenucontents #submenu,
		.submenucontents #page{
			width: auto;
			}
	}
	@media screen and (max-width: 599px) {
	}

#submenu{
	position: relative;
	z-index: 1;
	margin-top: 60px;
	margin-bottom: 60px;
	}
	#submenu.submenubanner{
		margin-top: -60px;
		}
	#submenulist{
		margin-right: 3vw;
		background: var(--color5);
		border-radius: 15px;
		box-shadow: 0 0 10px rgb(0 0 0 / 20%);
		padding: 0 0;
		text-align: left;
		overflow: hidden;
		}
	#submenulist h2{
		display: none;
		}
	#submenulist > ul > li > a{
		display: block;
		padding: 15px 30px 15px 20px;
		position: relative;
		z-index: 1;
		overflow: hidden;
		border-top: 1px solid #c6def4;
		}
	#submenulist .children{
		margin: -5px 0 5px;
		}
	#submenulist .children > li > a{
		display: block;
		padding: 8px 30px 8px 40px;
		position: relative;
		z-index: 1;
		overflow: hidden;
		font-size: .9rem;
		}
	#submenulist > ul > li > a::before{
		font-size: 12px;
		font-family: 'moralogy' !important;
		font-style: normal;
		font-weight: normal;
		font-variant: normal;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		content: "\27";
		position: absolute;
		top: 14px;
		right: 10px;
		color: var(--color2);
		}
	#submenulist ul > li > a::after {
		position: absolute;
		z-index: -1;
		display: block;
		content: '';
		left: -100%;
		top: 0;
		width: 100%;
		height: 100%;
		}
	#submenulist ul > li > a,
	#submenulist ul > li > a::after {
		transition: all .3s cubic-bezier(.075, .82, .165, 1);
		}
	#submenulist ul > li > a:hover::after {
		left: 0;
		background-color: rgb(0 112 223 / 7%);
		}
	#submenulist ul > li.current_page_item > a{
		background: rgb(0 112 223 / 5%);
		}
	

	@media screen and (max-width: 781px) {
		#submenu{
			position: relative;
			z-index: 1;
			}
		#submenu.submenubanner{
			margin-top: 20px;
			}
		#submenulist{
			margin-right: 0;
			}
		#submenulist > ul{
			border-top: 1px solid #f9f9f9;
			display: none;
			}

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


/* --------------------------------------------------- pagination */
.post-navigation{
	margin: 80px 0 0;
	}
	.post-navigation h2{ display: none; }
	.post-navigation .nav-links{
		display: flex;
		justify-content: center;
		gap: var(--gap);
		}
		.post-navigation .nav-links a{
			display: block;
			text-align: left;
			text-decoration: none;
			outline: none;
			padding: 12px 50px 12px 25px;
			line-height: 1.6;
			font-weight: normal;
			font-size: 1rem;
			z-index: 2;
			vertical-align: middle;
			max-width: 100%;
			position: relative;
			border-radius: 25px;
			transition: all .3s;
			}
		.post-navigation .nav-links a{	
			color: var(--color5);
			border: 1px solid var(--color2);
			background-color: var(--color2);
			text-decoration: none !important;
			}
		.post-navigation .nav-links .nav-previous a{	
			padding: 12px 25px 12px 50px;
			}
		.post-navigation .nav-links a::before {
			font-family: 'moralogy' !important;
			speak: never;
			font-style: normal;
			font-weight: normal;
			font-variant: normal;
			text-transform: none;
			-webkit-font-smoothing: antialiased;
			-moz-osx-font-smoothing: grayscale;
			content: "\27";
			position: absolute;
			right: 25px;
			transition: all .3s;
			}
		.post-navigation .nav-links .nav-previous a::before {
			content: "\26";
			right: unset;
			left: 25px;
			}
		.post-navigation .nav-links a:visited{
			color: var(--color5);
			}
		.post-navigation .nav-links a:hover {
			color: var(--color2);
			background-color: var(--color5);
			}
		.post-navigation .nav-links .post-title{ display: none; }
		.post-navigation .nav-links .nav-previous,
		.post-navigation .nav-links .nav-next {
			display: inline-block;
			margin: 0 20px;
			}
	@media screen and (max-width: 781px) {

	}
	@media screen and (max-width: 599px) {
		.post-navigation .nav-links .nav-previous,
		.post-navigation .nav-links .nav-next{
			margin: 0 0 20px;
			}
	}

.pagination {
	
	.line-paginator {
		display: flex;
		margin-top: var(--gap);
		justify-content: center;
		align-items: center;
		gap: var(--gaps);
		}
	.page-numbers{
		width: 50px;
		height: 50px;
		line-height: 50px;
		border-radius: 25px;
		text-decoration: none !important;
		display: flex;
		justify-content: center;
		font-size: var(--fontm);
		background: var(--color5);
		border-color: var(--color2);
		}
	.page-numbers:hover{
		border-color: var(--color2);
		background: var(--color2);
		color: var(--color5);
		}
	.page-numbers.dots{
		background: none;
		width: auto;
		color: var(--color1);
		}
	.page-numbers.next,
	.page-numbers.prev {
		overflow: hidden;
		position: relative;
		}
	.page-numbers.next .page-next,
	.page-numbers.prev .page-prev{
		display: flex;
		align-items: center;
		}
	.page-numbers.next .page-next:before,
	.page-numbers.prev .page-prev:before {
		content: "";
		display: block;
		width: 10px;
		height: 10px;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
		}
	.page-numbers.next .page-next::before {
		border-top: 1px solid var(--color2);
		border-right: 1px solid var(--color2);
		margin-left: -5px;
		}
	.page-numbers.prev .page-prev:before {
		border-bottom: 1px solid var(--color2);
		border-left: 1px solid var(--color2);
		margin-left: 5px;
		}
	.page-numbers:hover .page-next:before,
	.page-numbers:hover .page-prev:before {
		color: var(--color2);
		border-color: var(--color5);
		}
	.current {
		background: var(--color3);
		color: var(--color5) !important;
		border-color: var(--color3) !important;
		}
	}

/* --------------------------------------------------- frequently used items */
.pagelinklist{
	padding: 0 !important;
	background: transparent !important;
	}
	.pagelinklist ul{
		display: flex;
		justify-content: center;
		position: relative;
		flex-wrap: wrap;
		margin: 0;
		padding: 0;
		}
	.pagelinklist li{
		text-align: center;
		cursor: pointer;
		position: relative;
		list-style: none !important;
		margin: 5px 1vw !important;
		}
	.pagelinklist li a{
		display: block;
		padding: 10px 20px;
		font-size: 1rem;
		background: var(--color5);
		text-decoration: none;
		border: 1px solid var(--color2);
		border-radius: 25px;
		}
	.pagelinklist li:hover > a{
		background: var(--color2);
		color: var(--color5);
		}
	@media screen and (max-width: 599px) {
		.pagelinklist{
			justify-content: space-evenly;
			}
		.pagelinklist li em{
			display: none;
			}
	}

.pagelink{
	display: flex;
	justify-content: space-between;
	align-items: center;
	overflow: hidden;
	margin: 0 !important;
	}
	.pagelink li{
		flex-basis: 50%;
		border-left: 1px solid #ddd;
		text-align: center;
		list-style-type: none !important;
		margin: 0 !important;
		}
	.pagelink li:first-child{
		border-left: none;
		}
	.pagelink li a{
		display: block;
		padding: 12px 0;
		font-weight: bold;
		background: var(--color2);
		color: var(--color5);
		text-decoration: none;
		}
	.pagelink li a:hover{
		background: var(--color5);
		color: var(--color2);
		}



.pagemenu{
	padding: 80px 0 80px;
	}
	.pagecontents > .pagemenu:nth-child(2n+1){
		background: rgb(0 112 223 / 5%);
		}
	.pagemenu div{
		max-width: 90vw;
		margin: 0 auto;
		}
	.pagemenu ul{
		display: flex;
		flex-wrap: wrap;
		justify-content: start;
		position: relative;
		margin: 0 !important;
		gap: 20px 30px;
		}
	.pagemenu ul:has(> :nth-child(-n+4):last-child){
		justify-content: center;
		}	
	.pagemenu li{
		flex: 0 0 calc( 25% - 22.5px );
		margin: 0 !important;
		list-style-type: none !important;
		}				
	.pagemenu li a{
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 6px 10px;
		background: var(--color5);
		text-decoration: none;
		border: 1px solid var(--color2);
		text-align: center;
		height: calc( 100% - 12px );
		border-radius: 15px;
		line-height: 1.4;
		overflow: hidden;
		}
	.pagemenu li.current_page_item a{
		background: #f2f8fd;
		}
	.pagemenu li a:hover{
		background: var(--color2);
		color: var(--color5);
		}
	.pagemenu h3{
		font-size: 1.1rem;
		font-weight:normal;
		}
	.pagemenu .excerpt{
		display: none;
		}
	.page-id-581 .pagemenu{
		display: none;
		}
	@media screen and (max-width: 781px) {
		.pagemenu li{
			flex: 0 0 calc( 33.33333% - 20px );
			}
		.pagemenu ul{
			justify-content: start;
			}
		.pagemenu h3{
			font-size: 1rem;
			}
	}
	@media screen and (max-width: 599px) {
		.pagemenu div{
			max-width: 80vw;
			}
		.pagemenu ul{
			gap: 20px;
			}
		.pagemenu li{
			flex: 0 0 calc( 50% - 10px );
			}
	}


/* site original -------------------------------------------------------------------------------- */


/* top_mainvisual ---------------- */
#top_mainvisual{
    width: 100vw;
    height: 100vh;
    min-height: 900px;
	overflow: visible;
	
	.wp-block-group__inner-container{
		height: 100%;
		padding: 0;
	    position: relative;
		
		&::before{
			content: "";
			display: block;
			width: 20%;
			height: 52%;
			background: url(images/mv03.png) no-repeat ;
			background-size: contain;
			position: absolute;
			right: -5vw;
			z-index: 0;
			}
		&::after{
			content: "";
			display: block;
			width: 30%;
			height: 34%;
			background: url(images/mv04.png) no-repeat ;
			background-size: contain;
			position: absolute;
			left: 0;
			bottom: -5%;
			z-index: 0;
			}
		}
	.wp-block-columns{
		align-items: center !important;
		position: relative;
		z-index: 996;
		padding-top: 10vh;
		.wp-block-column:last-child{
			position: relative;
			&::before{
				content: "";
				display: block;
				width: 100vw;
				height: 160px;
				background: url(images/mv01.png) repeat-x right top;
				background-size: auto 160px;
				background-size: contain;
				position: absolute;
				z-index: 999;
				right: 0;
				right: -5vw;
				top: 90%;
				margin-left: 0;
				}
			&::after{
				content: "";
				display: block;
				width: 120%;
				height: 482px;
				background: url(images/mv02.png) no-repeat center top;
				background-size: contain;
				position: absolute;
				z-index: 998;
				left: -10%;
				top: 85%;
				}
			}
		}
	.wp-block-snow-monkey-blocks-spider-slider{
		mask-image: url("images/mv06.svg");
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: auto;
		margin: 0 auto;
		}
	.wp-block-buttons{
		position: absolute;
		z-index: 997;
		top: 5vh;
		right: 0;
		margin: 0;

		.wp-block-button{
			background: var(--color5);
			border: 2px solid var(--color8);
			width: 200px;
			height: 200px;
			padding: var(--gaps);
			border-radius: 50%;
			display: flex;
			align-items: center;
			}
		.wp-block-button__link{
			background: transparent;
			color: var(--color1);
			border: unset;
			width: auto;
			height: auto;
			padding: 0;
			min-width: unset;
			font-size: var(--fontxs);
			text-align: center;
			}
		.wp-block-button__link strong{
			font-size: var(--fontm);
			display: block;
			margin-bottom: 5px;
			color: var(--color2);
			}
		.wp-block-button__link strong::before{
			content: "";
			display: block;
			width: 100%;
			height: 40px;
			background: url(images/ico01.png) no-repeat center / contain;
			}
		.wp-block-button__link br{
			display: none;
			}
		.wp-block-button__link::after{
			right: 50%;
			margin-right: -15px;
			bottom: 20px;
			content: "\23";
			background: none;
			position: static;
			width: auto;
			height: auto;
			}
		.wp-block-button__link:hover::after{
			color: var(--color2);
			}
		}
	.copy{
		margin-bottom: var(--gap);
		position: relative;
		}
	.copy::before{
		content: "";
		display: block;
		width: 0;
		height: 100%;
		background: var(--color6);
		position: absolute;
		z-index: 1;
		right: 0;
		top: 0;
		}
	}
#top_mainvisual{
	& > .wp-block-group__inner-container{
		opacity: 1; transform: unset;		
		&::before{
			opacity: 0; animation: disp 1s ease 2s 1 forwards;
			}
		&::after{
			opacity: 0; animation: disp 1s ease 2s 1 forwards;
			}
		}
	.wp-block-snow-monkey-blocks-spider-slider{
		opacity: 0; animation: disp 1s ease 0s 1 forwards;
		}
	.wp-block-columns{
		gap: var(--gap);
		margin: 0;
		.wp-block-column:last-child{
			&::before{
				opacity: 0; animation: disp 1s ease 1s 1 forwards;
				}
			&::after{
				opacity: 0; animation: disp 1s ease 1s 1 forwards;
				}
			}
		.wp-block-paragraph{
			text-align: center;
			opacity: 0; animation: disp 1s ease 2s 1 forwards;
			}
		}
	.wp-block-buttons{
		opacity: 0; animation: disp 1s ease 2s 1 forwards;
		}
	.copy{
		margin-bottom: 45px;
		margin-bottom: var(--gap);
		margin-bottom: var(--gaps);
		opacity: 0; animation: disp 1s ease 0s 1 forwards;
		}
	.copy::before{
		width: 100%; animation: dispside 1s ease-in-out 0s 1 forwards;
		}
	}
@keyframes disp{
	0%   { opacity: 0; }
	100% { opacity: 1; }
}
@keyframes dispside{
	0%   { width: 100%; }
	100% { width: 0; }
}
@media screen and (max-width: 1000px) {
	#top_mainvisual{
		.wp-block-columns{
			padding-top: var(--gapl);
			align-items: start !important;
			position: relative;
			&::before{
				background-size: auto 100px;
				}
			&::after{
				right: -2%;
				}
			.wp-block-column:first-child{
				flex-basis: 30%;
				}
			.wp-block-column:last-child{
				flex-basis: 70%;
				&::before{
					background-size: auto 100px;
					}
				}
			.wp-block-paragraph{
				text-align: left;
				}
			}
		.wp-block-buttons{
			top: calc(100vw * 0.2);
			}
		.copy.sp{
			display: block;
			position: relative;
			z-index: 996;
			width: 82vw;
			max-width: 600px;
			margin: var(--gapl) 0 0;
			}
		.copy.pc{
			display: none;
			}
		}
}
@media screen and (max-width: 781px) {
	#top_mainvisual{
		height: auto;
		.wp-block-columns{
			padding-top: var(--gap);
			flex-wrap: wrap !important;
			&::before{
				background-size: auto 100px;
				}
			&::after{
				right: -2%;
				}
			.wp-block-column:first-child{
				flex-basis: 100%;
				order: 2;
				padding-top: calc( 100vw * 0.4);
				}
			.wp-block-column:last-child{
				flex-basis: 100%;
				order: 1;
				}
			.wp-block-paragraph{
				text-align: center;
				}
			}
		.wp-block-snow-monkey-blocks-spider-slider{
			max-width: 500px;
			}
		.wp-block-buttons{
			top: calc(100vw * 0.28);
			}
		.copy.sp{
			width: 90vw;
			}
		}
}
@media screen and (max-width: 599px) {
	#top_mainvisual{
		.wp-block-buttons{
			/* top: 15vh; */
			.wp-block-button{
				width: 170px;
				height: 170px;
				}
			}
		}

}
@media screen and (max-width: 599px) {
	.titleimg1 img{ max-width: 300px;}
	.titleimg2 img{ max-width: 140px;}
	.titleimg3 img{ max-width: 170px;}
}
#top_concept{
	.is-layout-constrained{
		padding-bottom: var(--gapxl);
		}
	.wp-block-columns{
		& h3{
			font-size: var(--fontl);
			margin: var(--gaps) 0;	
		}
		.wp-block-column:nth-child(2n-1){
			background: url(images/bg01.png) no-repeat center 80% / contain;
			}
		.wp-block-column:nth-child(2n){
			background: url(images/bg02.png) no-repeat center 80% / contain;
			}
		}
	
	}

#top_info{
	& > .wp-block-group__inner-container{
		position: relative;
		}
	& > .wp-block-group__inner-container::before{
		content: "";
		display: block;
		width: 76px;
		height: 112px;
		background: url(images/ico04.png) no-repeat center / contain;
		position: absolute;
		right: 0;
		}
	}

#top_other{
	.is-layout-constrained{
		padding-top: 0;
		padding-bottom: var(--gapxl);
		}
	& h3{
		font-size: var(--fontl);
		margin: var(--gaps) 0;	
		}
	}

#top_support{
	& h3{
		font-size: var(--fontl);
		margin: 0 0 var(--gaps);	
		}
	}
@media screen and (max-width: 781px) {
	#top_support .wp-block-columns .wp-block-column{
		flex: 100% 1 1 !important;
		}
}

#page_about{
	.wp-block-group .wp-block-group__inner-container{
		background: #f8f4f0d9;
		padding: var(--gapxl) var(--gapl);
		border-radius: var(--gap);
		margin: 100vh auto 50vh;
		}
	}
body:not(.home) #top_concept{
	.wp-block-columns{
		flex-wrap: wrap !important;
		justify-content: center;
		.wp-block-column{
			flex: 0 0 calc( 33% - var(--gapl)* 2/3 );
			}
		.wp-block-column:nth-child(2n-1),
		.wp-block-column:nth-child(2n){
			background-size: 220px;
			background-position: center bottom;
			}
		}
	}
@media screen and (max-width: 781px) {
	#page_about_vm{
		.wp-block-image{
			max-width: 500px;
			margin-left: auto;
			margin-right: auto;
			}
		.wp-block-columns:nth-child(2n){
			.wp-block-column:first-child{
				order: 2;
				}
			.wp-block-column:last-child{
				order: 1;
				}
			
			}
		}
}
.pageinfosingle{
	.entry-meta{
		display: flex;
		justify-content: end;
		gap: var(--gaps);
		.date{
			color: var(--color2);
			font-size: var(--font);
			}
		}
	.post_thumbnail{
		text-align: center;
		.aligncenter{
			margin-left: auto;
			margin-right: auto;
			}
		}
	}


.pageeventsingle{
	.postimg{
		margin-top: var(--gapxl);
		.wp-block-image{
			max-width: 800px;
			margin: 0 auto;
			position: relative;
			z-index: 2;
			aspect-ratio: 16 / 9;
			overflow: hidden;
			}
		.wp-block-image img {
			width: 100%;
			height: 100%;
			aspect-ratio: 16 / 9;
			object-fit: cover;
			object-position: center;
			padding: 0;
			}
		.wp-block-group__inner-container{
			position: relative;
			padding-bottom: 0;
			}
		.wp-block-group__inner-container::after {
			content: "";
			display: block;
			width: 100%;
			height: 50%;
			background: #fff;
			position: absolute;
			z-index: 1;
			bottom: 0;
			left: 0;
			border-radius: var(--gap) var(--gap) 0 0 ;
			}
		}
	.postcontent{
		margin-bottom: var(--gapxl);
		.wp-block-group__inner-container{
			display: flex;
			align-items: top;
			gap: var(--gap) var(--gapl);
			flex-wrap: wrap;
			background: var(--color5);
			padding: var(--gap) var(--gapl);
			border-radius: 0 0 var(--gap) var(--gap);
			}
		.em-event-name{
			flex: 1 1 100%;
			margin: 0;
			color: var(--color1);
			display: flex;
			justify-content: start;
			align-items: start;
			line-height: 1.3;
			border-bottom: 1px solid var(--color7);
			padding-bottom: var(--gaps);
			font-size: var(--fontxl);
			.em-item-date {
				display: block;
				font-weight: bold;
				text-align: center;
				line-height: 1;
				color: var(--color2);
				letter-spacing: 0;
				margin-top: 10px;
				margin-right: 30px;
				}
			.em-item-date .month{
				font-size: var(--font);
				display: block;
				margin-bottom: 4px;
				}
			.em-item-date .day {
				font-size: var(--fontxxl);
				}
			.detail{
				color: var(--color4);
				font-size: var(--font);
				font-weight: normal;
				display: block;
				margin-top: 8px;
				line-height: 1.6;
				letter-spacing: .02em;
				}
			.detail > span{
				margin-right: 5px;
				display: inline-block;
				}
			.detail > .location a{
				text-decoration: none;
				color: #828799 !important;
				}
			}
		.em-event-content {
			flex: 1 1 calc( 60% - var(--gapl)/2);
			min-width: 500px;
			order: 1;
			& h2.wp-block-heading{
				font-size: var(--fontl);
				}
			& h3.wp-block-heading{
				font-size: var(--fontl);
				}
			& h4.wp-block-heading{
				font-size: var(--fontm);
				}
			.wp-block-table th{
				width: 35%;
				}
			}
		.em-item-meta {
			flex: 1 1 calc( 40% - var(--gapl)/2);
			min-width: 300px;
			order: 2;
			display: flex;
			flex-wrap: wrap;
			gap: var(--gap);
			.em-item-meta-column > *{
				 margin: 0 0 var(--gap);
				}
			h3 {
			    font-size: var(--fontl);
			    margin: 0 0 var(--gaps);
				}
			}
		.em-event-offer{
		    margin: 30px -60px 0;
		    order: 3;
		    flex: 1 1 100%;
		    position: sticky;
			z-index: 1001;
		    bottom: 0;
		    background: var(--color5);
		    border-top: 1px solid var(--color7);
		    padding: var(--gaps) var(--gapl);
			.wp-block-buttons{
				display: flex;
				justify-content: center;
				}
			}
		}
	}
@media screen and (max-width: 599px) {
.pageeventsingle{
	.postimg{
		margin-top: 120px;
		.wp-block-image{
			max-width: unset;
			}
		.wp-block-image img {
			}
		.wp-block-group__inner-container{
			max-width: 100vw !important;
			padding: 0 5vw;
			}
		.wp-block-group__inner-container::after{
			border-radius: 0;
			}
		}
	.postcontent{
		.wp-block-group__inner-container{
			max-width: 100vw !important;
			padding: var(--gap) 5vw;
			border-radius: 0;
			}
		.em-event-content {
			min-width: unset;
			flex: 1 1 100%;
			.wp-block-table table,
			.wp-block-table tbody,
			.wp-block-table tr,
			.wp-block-table td,
			.wp-block-table th{
				display: block;
				width: 100%;
				overflow: hidden;
				}
			}
		.em-item-meta{
			flex: 1 1 100%;
			}
		}
	}

}


/* side nav ---- */
#sidenav{
	position: fixed;
	top: 50%;
	right: 0;
	width: 50px;
	z-index: 1000;
	border-radius: 25px 0 0 25px;
	overflow: hidden;
	margin-top: -200px;
	.sidenav li{
		margin-bottom: 1px;
		}
	.sidenav li:last-child{
		margin-bottom: 0;
		}
	.sidenav li a{
		display: block;
		padding: 20px 10px;
		line-height: 1.2;
		background: var(--color5);
		}
	.sidenav li a:after{
		display: none;
		}
	.sidenav li a:hover{
		background: var(--color7);
		}
	}
	@media screen and (max-width: 599px) {
		#sidenav{
			position: fixed;
			top: unset;
			right: unset;
			bottom: 0;
			left: 5vw;
			width: 90vw;
			margin-top: 0px;
			.sidenav{
				display: flex;
				justify-content: center;
				}
			.sidenav li{
				flex: 0 0 30%;
				margin-bottom: 0;
				margin-right: 1px;
				}
			.sidenav li:last-child{
				margin-right: 0;
				}
			.sidenav li a{
				writing-mode:lr;
				padding: 10px 10px;
				border-radius: 10px 10px 0 0;
				white-space: nowrap;
				}
			}
	}



ul.listlink{
	margin: 25px 0;
	display: flex;
	align-items: center;
	justify-content: start;
	flex-wrap: wrap;
	}
	ul.listlink li{
		list-style-type: none;
		margin-bottom: 0;
		margin: 5px 20px 5px 0;
		}
	ul.listlink li:last-child{
		margin-bottom: 0;
		margin-right: 0;
		}
	ul.listlink:first-child{
		margin-top: 0;
		}
	ul.listlink:last-child{
		margin-bottom: 0;
		}
	ul.listlink a{
		display: block;
		padding: 4px 20px;
		text-decoration: none;
		border: 1px solid var(--color2);
		background: var(--color5);
		border-radius: 20px;
		}
	ul.listlink a:hover{
		background: var(--color2);
		color: var(--color5);
		}

.morelink{
	background: #b3d9ff;
	padding: 4px 20px;
	margin: 5px 0;
	color: #000;
	font-size: 1rem;
	font-weight: normal;
	cursor: pointer;
	}
	.morelink strong{
		font-size: 1.2rem;
		}
	.morelink + .morewrap{
		display: none;
		}


/* --------------------------------------------------- contact form */

#pagecontact{
	ol.smf-progress-tracker{
		margin: 60px 0 30px;
		}
	ol .smf-progress-tracker__item:after,
	ol .smf-progress-tracker__item:before {
		background-color: #cddda3;
		content: "";
		display: block;
		height: 1px;
		position: absolute;
		top: 25px;
		border: none;
		width: auto;
		}
	ol .smf-progress-tracker__item{
		margin-bottom: 0;
		padding-left: 0;
		}
	.smf-progress-tracker__item__number{
		align-items: center;
		background-color: var(--color8);
		background-color: #cddda3;
		border-radius: 100%;
		color: var(--color5);
		display: flex;
		width: 50px;
		height: 50px;
		}
	.smf-progress-tracker__item__text {
		color: var(--color4);
		}
	.snow-monkey-form[data-screen=input] .smf-progress-tracker__item--input .smf-progress-tracker__item__number,
	.snow-monkey-form[data-screen=confirm] .smf-progress-tracker__item--confirm .smf-progress-tracker__item__number,
	.snow-monkey-form[data-screen=complete] .smf-progress-tracker__item--complete .smf-progress-tracker__item__number{
		background: var(--color2);		
		}
	.snow-monkey-form[data-screen=input] .smf-progress-tracker__item--input .smf-progress-tracker__item__text,
	.snow-monkey-form[data-screen=confirm] .smf-progress-tracker__item--confirm .smf-progress-tracker__item__text,
	.snow-monkey-form[data-screen=complete] .smf-progress-tracker__item--complete .smf-progress-tracker__item__text{
		color: var(--color1);
		}
	}

.contactform{
	margin: 0;
	}
	.contactform .smf-item{
		background: #f6f7f1;
		display: flex;
		padding: 0;
		}
	.contactform .smf-item:nth-child(2n-1){
		background: var(--color7);
		}
	.contactform .smf-item__col--label {
		border: none;
		background: none;
		font-weight: bold;
		padding: var(--gaps);
		flex: 0 0 30%;
		max-width: 30%;
		}
	.contactform .smf-item .smf-text-control__control,
	.contactform .smf-item .smf-textarea-control__control{
		max-width: 90% !important;
		box-sizing: unset;
		padding: 5px;
		}
	.contactform .smf-item__col--label strong{
		display: inline-block;
		color: var(--color5);
		text-align: center;
		font-size: .8rem;
		font-weight: normal;
		padding: 0;
		background: var(--color2);
		text-decoration: none;
		line-height: 20px;
		padding: 0 10px;
		border-radius: 10px;
		}
	.contactform .smf-item__col--controls{
		padding: 10px;
		flex: 1 1 70%;
		}
	.contactform .smf-item__controls{
		}
		.contactform .smf-item__controls .smf-placeholder{
			margin: 5px;
			}
		.contactform .inputhorizontal .smf-item__controls .smf-placeholder{
			margin: 5px;
			display: inline-block;
			vertical-align: top;
			}
		.contactform .smf-item__controls .smf-placeholder > *{
			position: relative;
			}
		.contactform .smf-item__controls .smf-placeholder .smf-checkbox-control,
		.contactform .smf-item__controls .smf-placeholder .smf-radio-buttons-control--vertical .smf-radio-button-control{
			padding-right: 10px;
			}
		.contactform .formErrorContent{
			min-width: 100px;
			}
	.contactform .smf-item label{
		padding: 0 !important;
		margin-right: 0;
		}
	.contactform .smf-item.txt,
	.contactform .smf-item.privacycheck {
		display: block;
		}
	.contactform .smf-item.txt .smf-item__col--label,
	.contactform .smf-item.privacycheck .smf-item__col--label {
		display: none;
		}
	.contactform .smf-item.txt .smf-item__controls,
	.contactform .smf-item.privacycheck .smf-item__controls {
		display: block;
		}
	.contactform .smf-item.txt .smf-item__col--controls,
	.contactform .smf-item.privacycheck .smf-item__col--controls {
		display: block;
		text-align: center;
		max-width: unset;
		}
	.smf-action{
		text-align: center;
		margin: 30px 0 0;
		}
	.smf-action button[type="submit"],
	.smf-action button[type="button"]{
		transition: all .3s;
		cursor: pointer;
		-webkit-appearance: none;
		display: inline-block;
		text-align: center;
		text-decoration: none;
		outline: none;
		padding: 14px 40px;
		line-height: 1.6;
		font-family: inherit;
		font-weight: 900;
		font-size: 1.1rem;
		z-index: 2;
		overflow: hidden;
		white-space: nowrap;
		vertical-align: middle;
		max-width: 98%;
		position: relative;
		border: none;
		border: 1px solid var(--color2);
		background-color: var(--color2);
		color: var(--color5);
		border-radius: 30px;
		background-image: none;
		}
	.smf-action button[data-action="back"]{
		border: 1px solid #666;
		background-color: #666;
		color: var(--color5);
		}
	.smf-action button[type="submit"]:hover{
		background-color: var(--color5);
		color: var(--color2);
		border: 1px solid var(--color2);
		}
	.smf-action button[data-action="back"]:hover{
		background-color: var(--color5);
		color: #666;
		border: 1px solid #666;
		}
	@media screen and (max-width: 599px) {
		.contactform .smf-item{
			display: block;
			}
		.contactform .smf-item__col--label {
			max-width: unset;
			padding-bottom: 0;
			}

	}

.event-calendar-layout{
	display: flex;
	gap: var(--gapl);
	align-items: start;
	margin: var(--gapl) 0;
	.event-calendar {
		flex: 0 0 50%;
		}
	.event-calendar-list{
		flex: 1 1 40%;
		}
	}
.event-calendar-list{
	& h2{
		margin: 0;
		font-size: var(--fontl);
		letter-spacing: .2rem;
		}
	.columns-event-list{
		margin: var(--gap) 0;
		}
	}
.event-calendar {
	width: 100%;
	background: var(--color6);
	padding: var(--gap) var(--gaps);
	border-radius: var(--gaps);
	.event-calendar-header {
	    display: flex;
	    align-items: center;
	    justify-content: space-between;
	    margin-bottom: var(--gaps);
		}
	.event-calendar-header h2 {
	    margin: 0;
		font-size: var(--fontl);
		letter-spacing: .2rem;
		}
	.event-calendar-prev,
	.event-calendar-next {
	    display: flex;
	    align-items: center;
	    justify-content: center;
	    width: 40px;
	    height: 40px;
	    text-decoration: none;
	    font-size: var(--fontxl);
		text-decoration: none !important;
		}
	.event-calendar-weekdays,
	.event-calendar-days {
	    display: grid;
	    grid-template-columns: repeat(7, 1fr);
		}
	.event-calendar-weekday {
	    padding: 10px;
	    text-align: center;
	    font-weight: bold;
	    border-bottom: 1px solid #ddd;
		}
	.event-calendar-day {
	    min-height: 100px;
	    padding: var(--gapxs);
	    border-right: none;
	    border-bottom: 1px solid #ddd;
		}
	.event-calendar-day.is-empty {
	    background: transparent;
		}
	.event-calendar-date {
	    width: 30px;
		display: inline-block;
		line-height: 30px;
		border-radius: 15px;
		text-align: center;
		}
	.event-calendar-date:has(+.event-calendar-events){
		background: var(--color8);
		color: var(--color5);
		}
	.event-calendar-day.is-today .event-calendar-date {
		background: var(--color2);
		color: var(--color5);
		}
	.event-calendar-event {
	    display: block;
	    margin-top: var(--gapxs);
	    padding: 0;
	    text-decoration: none !important;
	    font-size: var(--fontxs);
	    line-height: 1.4;
		}
	.event-calendar-event-title {
	    display: block;
		}
	.event-calendar-event-time {
	    display: none;
		}
	}
@media screen and (max-width: 781px) {
	.event-calendar-layout{
		flex-wrap: wrap;
		.event-calendar{
			flex: 100% 1 1;
			}
		.event-calendar-list{
			flex: 100% 1 1;
			.columns-event-list.wp-block-columns > .wp-block-column{
				flex: 100% 1 1 !important;
				}
			}
		}
	}
@media screen and (max-width: 599px) {
	.event-calendar {
		padding: var(--gap) 5vw;
		margin: 0 -5vw;
		border-radius: 0;
		.event-calendar-event {
		    font-size: .7rem;;
		    line-height: 1.2;
			letter-spacing: 0;
			max-height: 2.4em;
			overflow: hidden;
			text-overflow: ellipsis;
			}
		.event-calendar-day {
		    min-height: 60px;
			}
		}
	}


.groupcount{
	background: var(--color7);
	border-radius: var(--gap);
	padding: var(--gap);
	.wp-block-table{
		& table{
			border: none;
			width: auto;
			margin: 0 auto;
			}
		& th,
		& td{
			border: none;
			padding: 0 10px;
			vertical-align: bottom;
			}
		}
	.tblmain{
		& td:first-child{
			font-size: 4rem;
			line-height: 1.2;
			font-weight: bold;
			color: var(--color2);
			}
		& td:last-child{
			font-size: var(--fontxl);
			font-weight: bold;
			color: var(--color2);
			}
		}
	.tblsub{
		& td:first-child{
			font-size: var(--fontm);
			font-weight: bold;
			padding-right: 50px;
			
			& img{
				padding-right: 10px;
				}
			}
		& td:nth-child(2){
			font-size: var(--fontl);
			font-weight: bold;
			line-height: 1.6;
			}
		}
	
	}
.wp-block-group.is-style-bgcolor1 .groupcount{
	background: var(--color6);
	}

.column-balloon{
	.wp-block-group{
		position: relative;
		width: fit-content;
		padding: var(--gaps);
		border: 2px solid var(--color8);
		background: var(--color5);
		border-radius: var(--gaps);
		&::before {
			content: "";
			position: absolute;
			bottom: -5px;
			left: 50%;
			width: 15px;
			height: 15px;
			box-sizing: border-box;
			background-color: var(--color5);
			rotate: 135deg;
			translate: -50% 0;
			}
		&::after {
			content: "";
			position: absolute;
			bottom: -8px;
			left: 50%;
			width: 15px;
			height: 15px;
			box-sizing: border-box;
			border: 2px solid;
			border-color: var(--color8) var(--color8) transparent transparent;
			rotate: 135deg;
			translate: -50% 0;
			}
		}
	.wp-block-image{
		margin: var(--gaps) 0;
		}
	}
.column-support1{
	.wp-block-column{
		background: var(--color6);
		border-radius: var(--gaps);
		padding: var(--gaps) var(--gap);
		& h4{
			color: var(--color2);
			margin: 0;
			}
		& h4 strong{
			color: var(--color2);
			font-size: var(--fontxxl);
			margin: 0 2px;
			}
		& p{
			color: var(--color1);
			}
		}
	}
.column-support2{
	.wp-block-column{
		& h4{
			color: var(--color1);
			margin: 0;
			font-size: var(--font);
			}
		& p {
			color: var(--color3);
			font-size: var(--fontxxl) !important;
			font-weight: bold;
			}
		& em {
			font-size: var(--fontl);
			}
		}
	}
