@charset "utf-8";

/* ////////////////////////////////////////////
 *                 base & layout
 * //////////////////////////////////////////// */

/* Typography
------------------------------------------*/
html {
	background: var(--bodyBgColor);
	font-size: 16px;
}
body {
	line-height: 1.8;
	color: var(--textColor);
}
a {
	color: var(--textColorSub);
	text-decoration: none;
}
a:hover,
a:focus {
	color: inherit;
	text-decoration: underline;
}

/* use hover animation */
/*
a, a:hover {
	-webkit-transition: 0.3s ease-in-out;
	   -moz-transition: 0.3s ease-in-out;
		 -o-transition: 0.3s ease-in-out;
			transition: 0.3s ease-in-out;
}
*/


.tab-parts{
	display: none;
}

/* Layout
------------------------------------------*/
body {
	text-align: center;
}
body.home {
	word-break: break-all;
}
#container {
	overflow: hidden;
	padding-top: 140px;
}


/* general
------------------------------------------*/
a{
	text-decoration: none;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	&:hover{
		opacity: .7;
		text-decoration: none;
	}
}


.common{
	padding: 50px 0;
	h2{
		margin-bottom: 50px;
		line-height: 1.3;
		span{
			display: block;
			&.en{
				font-size: 20px;
				font-weight: 500;
				color: var(--keyColorSub);
				text-transform: uppercase;
			}
			&.ja{
				font-size: 56px;
				font-weight: 700;
				color: var(--textColor);
			}
		}
	}
	.main{
		margin: 0 auto;
		max-width: 1080px;
		.btns{
			a{
				margin: 20px auto 0;
				padding: 0 4.0em;
				position: relative;
				display: inline-block;
				font-size: 15px;
				font-weight: 400;
				color: var(--bodyBgColor);
				background: var(--keyColorSub);
				min-width: 250px;
				height: 50px;
				line-height: 50px;
				text-align: center;
				-webkit-border-radius: 3px;
				-moz-border-radius: 3px;
				border-radius: 3px;
				&::before{
					position: absolute;
					top: 50%;
					transform: translateY(-50%);
					right: 15px;
					content: '\f105';
					font-weight: bold;
					font-family: 'Font Awesome 5 Free';
					-webkit-font-smoothing: antialiased;
					-moz-osx-font-smoothing: grayscale;
				}
			}
		}
	}
}

img.noimage{
	border: var(--borderColor) 1px solid;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* header
------------------------------------------*/
#header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 9999;
	background: var(--bodyBgColor);
	.upper{
		padding: 0 35px;
		height: 40px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		background: var(--bgColor);
		.description {
			font-size: 11px;
			color: var(--noticeColor);
		}
		.tel{
			display: flex;
			justify-content: flex-end;
			align-items: center;
			gap: 20px;
			a{
				display: block;
				color: var(--bodyBgColor);
				font-size: 21px;
				font-weight: 300;
				letter-spacing: .08em;
				i{
					margin-right: .5em;
				}
			}
			.hours{
				font-size: 11px;
				color: var(--bodyBgColor);
				line-height: 1.3;
				span{
					display: block;
					font-size: 10px;
				}
			}
		}
	}
	.main{
		position: relative;
		margin: 0 auto;
		padding: 0 35px;
		height: 100px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		.logo{
		}
		.gnav{
			display: flex;
			justify-content: flex-end;
			align-items: center;
			height: 70px;
			.gnav-list {
				position: relative;
				text-align: center;
				zoom: 1;
				display: flex;
				justify-content: center;
				align-items: center;
				li{
					display: block;
					position: relative;
					z-index: 20;
					a{
						display: flex;
						flex-direction: column;
						justify-content: center;
						align-items: center;
						text-align: center;
						line-height: 1.4;
						width: calc((15 / 192) * 100vw);
						height: 70px;
						border-left: var(--borderColor) 1px solid;
						span{
							display: block;
							&.ja{
								color: var(--textColor);
								font-size: calc((15 / 1920) * 100vw);
								font-weight: 400;
							}
						}
					}
					ul {
						display: none;
						position: absolute;
						top: calc(100% + 15px);
						left: 0;
						width: 150%;
						background: rgba(255,255,255,.8);
						li{
							a{
								display: block;
								padding: 5px 10px;
								color: inherit;
								font-size: 14px;
								text-align: left;
								zoom: 1;
								height: auto;
								line-height: 1.6;
								&:hover {
									text-decoration: none;
									background: #fff;
								}
							}
							ul {
								top: 0;
								left: 100%;
								width: 100%;
							}
						}
					}
				}
			}
			.hbtn{
				a{
					display: block;
					&.mail{
						width: calc((18 / 192) * 100vw);
						height: calc((7 / 192) * 100vw);
						line-height: calc((7 / 192) * 100vw);
						background: var(--keyColor);
						color: var(--bodyBgColor);
						font-size: calc((16 / 1920) * 100vw);
						font-weight: 300;
						text-align: center;
					}
				}
			}
		}
	}
}





/* mainimage
------------------------------------------*/
#mainimage {
	position: relative;
	width: 100%;
	.main{
		width: 100%;
		margin: 0 auto;
		.slideshow {
			width: 100%;
			.slick-slide {
				position: relative;
				backface-visibility: hidden;
				img{
					width: 100%;
				}
			}
		}
	}
	.mv-catch{
		display: none;
		position: absolute;
		top: calc((9 / 192) * 100vw);
		left: 0;
		text-align: left;
		ul{
			display: grid;
			grid-template-columns: repeat(1, 1fr);
			gap: calc((4 / 1920) * 100vw);
			li{
				span{
					display: inline-block;
					padding: calc((.5 / 192) * 100vw) calc((3 / 192) * 100vw) calc((1 / 192) * 100vw) calc((1 / 192) * 100vw);
					background: var(--textColor);
					color: var(--bodyBgColor);
					font-size: max(calc((4 / 192) * 100vw),35px);
					font-weight: 900;
					font-style: italic;
				}
				&:last-child{
					span{
						padding: 0 calc((3 / 192) * 100vw) calc((1 / 192) * 100vw);
						strong{
							margin-right: .3em;
							color: var(--keyColorSub);
							text-shadow: -1px -1px 0 #fff, 0 -1px 0 #fff, 1px -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, -1px 1px 0 #fff, 0 1px 0 #fff, 1px 1px 0 #fff, 3px 3px 0 rgba(255,255,255,.9);
							&:last-child{
								color: var(--keyColor);
								margin-left: .3em;
							}
						}
					}
				}
			}
		}
	}
	.mv-link{
		display: none;
		position: absolute;
		bottom: 3vw;
		right: calc(50vw - 540px);
		a{
			border: var(--bodyBgColor) 1px solid;
			display: block;
			background: var(--keyColor);
			color: var(--bodyBgColor);
			font-size: 20px;
			font-weight: 700;
			padding: 1.0em;
			-webkit-border-radius: 3px;
			-moz-border-radius: 3px;
			border-radius: 3px;
			-webkit-box-shadow: 4px 4px 4px 2px rgba(0,0,0,.3);
			-moz-box-shadow: 4px 4px 4px 2px rgba(0,0,0,.3);
			box-shadow: 4px 4px 4px 2px rgba(0,0,0,.3);
		}
	}
}

/* content main
------------------------------------------*/
#content-inner {
	max-width: 1080px;
	margin: 0 auto;
	padding-bottom: 60px;
}

/*ワンカラム*/
#main {
	max-width: 1080px;
	text-align: left;
}
.home #content-inner{
	padding: 0;
	max-width: 100%;
}
.home #main {
	max-width: 100%;
	text-align: center;
}


/*cols*/
.main-cols {
	background: var(--bgColorSub);
	.main{
		ul{
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 20px;
			li{
				a{
					span{
						display: block;
						&.texts{
							padding: 20px;
							background: var(--bodyBgColor);
							.header{
								font-size: 20px;
								line-height: 1.3;
								color: var(--keyColorSub);
								margin-bottom: .5em;
								font-weight: 600;
							}
							.header-sub{
								font-size: 17px;
								line-height: 1.3;
								color: var(--textColor);
								margin-bottom: 1em;
								font-weight: 600;
							}
							.text{
								font-size: 14px;
								color: var(--textColor);
								font-weight: 500;
							}
						}
					}
				}
			}
		}
		.btns{
			ul{
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 20px;
				li{
					a{
						line-height: 1.3;
						margin-top: 40px;
						height: auto;
						padding: 1em 4.0em;						
						&::after {
							position: absolute;
							top: 50%;
							transform: translateY(-50%);
							left: 15px;
							font-size: 20px;
							content: '\f0c0';
							font-weight: bold;
							font-family: 'Font Awesome 5 Free';
							-webkit-font-smoothing: antialiased;
							-moz-osx-font-smoothing: grayscale;
						}
					}
					&:last-child{
						a{
							&::after {
								content: '\f4df';
							}
						}
					}
				}
			}
		}
	}
}

/*imagetext*/
.main-imagetext{
	.main{
		display: flex;
		justify-content: space-between;
		align-items: center;
		.texts{
			width: 500px;
			text-align: left;
			h3{
				font-size: 25px;
				font-weight: 700;
				margin-bottom: .5em;
				color: var(--keyColorSub);
				line-height: 1.3;
			}
			.text{
				font-size: 16px;
				font-weight: 500;
				margin-bottom: 2.0em;
			}
		}
	}
}

/*alternate*/
.main-alternate {
	.main{
		ul{
			display: grid;
			grid-template-columns: repeat(1, 1fr);
			li{
				display: flex;
				justify-content: space-between;
				.texts{
					width: 450px;
					text-align: left;
					h3{
						font-size: 25px;
						font-weight: 700;
						margin-bottom: 1em;
						color: var(--keyColor);
						line-height: 1.3;
					}
					.text{
						font-size: 14px;
						font-weight: 500;
						margin-bottom: 2.0em;
					}
				}
				.image{
					margin-left: calc((50vw - 540px) * -1);
					width: calc((50vw - 540px) + 600px);
				}
				&.even{
					flex-flow: row-reverse;
					.image{
						margin: 0 calc((50vw - 540px) * -1) 0 0;
					}
				}
			}
		}
	}
}

.main-banner{
	ul{
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
		li{
			position: relative;
			a{
				height: 230px;
				display: block;
				position: relative;
				span{
					display: block;
					position: absolute;
					&.image{
						top: 0;
						right: 0;
						bottom: 0;
						left: 0;
					}
					&.header{
						bottom: .5em;
						left: 1.0em;
						text-align: left;
						color: var(--keyColorSub);
						font-size: 30px;
						font-weight: 900;
						text-shadow:
						  2px 2px 0 #fff,
						 -2px 2px 0 #fff,
						  2px -2px 0 #fff,
						 -2px -2px 0 #fff,
						  2px 0px 0 #fff,
						 -2px 0px 0 #fff,
						  0px 2px 0 #fff,
						  0px -2px 0 #fff;
					}
				}
			}
		}
	}
}

.main-contact{
	background: var(--bgColorSub);
	.main{
		max-width: 800px;
		position: relative;
		padding: 0 30px;
		height: 166px;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		.image,.texts{
			position: relative;
			z-index: 10;
		}
		.texts{
			width: 567px;
			display: flex;
			justify-content: flex-end;
			align-items: center;
			padding-bottom: 30px;
			gap: 17px;
			.tel{
				a{
					font-size: 30px;
					font-weight: 700;
					color: #c30000;
					line-height: 1.1;
					i{
						color: var(--textColor);
						font-size: 25px;
						margin-right: .3em;
					}
				}
				.hours{
					line-height: 1.3;
					padding: .2em .5em .2em;
					background: var(--bgColorSub);
					font-size: 14px;
					color: var(--keyColor);
					span{
						font-size: 12px;
						display: block;
					}
				}
			}
			.btns{
				a{
					margin: 0;
					padding: 0 4.0em;
					position: relative;
					display: inline-block;
					font-size: 18px;
					font-weight: 600;
					color: var(--bodyBgColor);
					background: var(--keyColor);
					min-width: 280px;
					height: 64px;
					line-height: 64px;
				}
			}
		}
		&::before{
			content: '';
			position: absolute;
			top: 43px;
			right: 0;
			left: 0;
			background: #fff;
			height: 123px;
		}
	}
	h2{
		max-width: 800px;
		margin: 0 auto;
		height: 53px;
		line-height: 53px;
		font-size: 21px;
		color: var(--bodyBgColor);
		background: var(--keyColorSub);
	}
}

/*blog*/
.main-blog {
	display: none;
	h2{
		position: relative;
		margin-bottom: 100px;
		padding: 100px 0 60px;
		background: var(--keyColor);
		.en,.ja{
			color: var(--bodyBgColor) !important;
		}
		&::before{
			position: absolute;
			content: '';
			top: 50px;
			left: 50%;
			transform: translateX(-50%);
			width: 60px;
			height: 34px;
			background: url(/images/base/loop.png) no-repeat center center / cover;
		}
	}
	.main{
		ul{
			margin-bottom: 30px;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 40px;
			li{
				padding: 20px 0;
				border-top: var(--borderColor) 1px solid;
				border-bottom: var(--borderColor) 1px solid;
				display: flex;
				justify-content: space-between;
				.image{
					width: 200px;
					height: 133px;
					overflow: hidden;
					position: relative;
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
						object-position: center;
						display: block;
					}
				}
				h3{
					width: calc(100% - 220px);
					text-align: left;
					.date{
						margin-bottom: 5px;
						font-size: 12px;
						text-align: center;
						width: 100px;
						height: 26px;
						line-height: 26px;
						display: inline-block;
						color: var(--bodyBgColor);
						font-weight: 400;
						background: var(--keyColor);
					}
					a{
						color: var(--textColor);
						display: -webkit-box;
						-webkit-line-clamp: 1;
						-webkit-box-orient: vertical;
						overflow: hidden;
					}
				}
			}
		}
	}
}



/* footer
------------------------------------------*/
#footer {
	background: var(--bgColor);
	.main{
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: 0 auto;
		padding: 50px 35px;
		.logo{
			text-align: left;
			p{
				margin-top: 1.0em;
				color: var(--bodyBgColor);
				font-size: 15px;
			}
		}
		.fnav{
			ul{
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 1em;
				li{
					a{
						display: block;
						color: var(--bodyBgColor);
						font-size: max(calc((15 / 1920) * 100vw),12px);
						font-weight: 500;
					}
				}
			}
		}
	}
	.copyright{
		border-top: #4c4c4c 1px solid;
		height: 30px;
		line-height: 30px;
		text-align: center;
		font-size: 12px;
		color: var(--bodyBgColor);
		background: var(--bgColor);
	}
}

.pagetop-btn-wrap {
	display: none;
	position: fixed;
	bottom: 30px;
	right: 30px;
	z-index: 9999;
	.pagetop-btn{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
		width: 40px;
		height: 40px;
		font-size: 17px;
		color: var(--textColor);
		background: #f3f3f3;
		-webkit-border-radius: 50%;
		-moz-border-radius: 50%;
		border-radius: 50%;
	}
}



/* Lower
------------------------------------------*/
.entry {
	margin: 0 0 20px;
}
.entry-content {}


/* heading */
.page-title-area{
	background: url(/images/base/page-title-bg.png) repeat-x center 0;
	.main{
		margin: 0 auto;
		max-width: 1000px;
		height: 240px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
		.page-title {
			color: var(--keyColor);
			font-size: 56px;
			font-weight: bold;
			text-shadow: 2px 2px 0 #fff, -2px 2px 0 #fff, 2px -2px 0 #fff, -2px -2px 0 #fff, 2px 0px 0 #fff, -2px 0px 0 #fff, 0px 2px 0 #fff, 0px -2px 0 #fff;
			span{
				color: #000;
				display: block;
				font-size: 16px;
				text-transform: uppercase;
				text-shadow: none;
			}
		}
	}
}
.template-type-blog .page-title {
	font-size: 50px !important;
	color: var(--keyColor) !important;
	font-weight: bold !important;
}
.entry-title, .entry-content h2:not([class]) {
	position: relative;
	margin: 0 0 50px;
	padding-bottom: 20px;
	color: #00582e;
	font-size: 32px;
	font-weight: bold;
	text-align: center;
	&::after{
		display: block;
		content: "";
		position: absolute;
		bottom: -26px;
		right: 482px;
		left: 482px;
		border-bottom: #00582e 6px solid;
	}
}
.entry-content h2{
	margin: 0 0 50px;
}
.entry-title a, .entry-content h2:not([class]) a {
	color: #00582e;
}
.h3, .entry-content h3:not([class]) {
	position: relative;
	margin: 0 0 20px;
	padding: 8px 0 7px 15px;
	color: #00582e;
	font-size: 21px;
	font-weight: bold;
	background: #eaeaea url(/images/base/entry-h3-bg.png) no-repeat right 0;
	-webkit-background-size: auto 100%;
	background-size: auto 100%;
}
.h4, .entry-content h4:not([class]) {
	padding: 0 0 0 28px;
	color: #00582e;
	font-size: 19px;
	background: url(/images/base/entry-h4-bg.png) no-repeat 0 50%;
}
.h5, .entry-content h5:not([class]) {
	margin-bottom: 25px;
	padding: 5px;
	border-bottom: 1px dashed var(--keyColor);
	font-weight: bold;
}

.table-bordered{
	tr{
		th,td{
			padding: 1.0em .5em;
		}
	}
}

/* Breadcrumb
------------------------------------------*/
.breadcrumb-wrap {}
.breadcrumb {
	justify-content: flex-start;
	margin: 10px 0 10px;
	padding: 0;
	background: none;
	font-size: 12px;
}
.breadcrumb-item + .breadcrumb-item:before {
	content: '>';
	color: inherit;
}
.breadcrumb-item.home:before {
	content: '\f015';
	padding: 0 5px 0 0;
	font-size: 11px;
	font-weight: bold;
	font-family: 'Font Awesome 5 Free';
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}




/* common-nav
------------------------------------------*/
.common-nav-list li {
	display: block;
	padding: 5px;
	border-bottom: 1px dashed rgba(186,186,186,0.5);
}
.common-nav-list li a {
	padding: 5px;
	font-size: 13px;
}

/* blog-nav
------------------------------------------*/
.blog-nav-group {
	display: flex;
	justify-content: space-between;
	margin-top: 30px;
}
.blog-nav {width: 23%;}
.blog-nav-title{text-align: center;}

.blog-nav {
	margin: 0 0 20px 0;
	text-align: left;
}
.blog-nav-title {
	padding-bottom: 5px;
	border-bottom: 1px solid rgba(186,186,186,0.5);
	font-size: 15px;
	font-weight: bold;
}
.blog-nav-list li a {
	position: relative;
	display: block;
	padding: 0.8rem 0.8rem 0.8rem 2.5rem;
	border-bottom: 1px solid rgba(186,186,186,0.5);
	font-size: 0.8rem;
	color: inherit;
}
.blog-nav-list li a::after {
	position: absolute;
	top: 1rem;
	left: 0.75rem;
	width: 1rem;
	height: 1rem;
	text-align: center;
	content: '\f105';
	font-size: 12px;
	font-weight: bold;
	font-family: 'Font Awesome 5 Free';
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.blog-nav-list li li a {
	padding-left: 3.5rem;
}
.blog-nav-list li li a::after {
	left: 2.25rem;
}
.blog-nav-list li li li a {
	padding-left: 4rem;
}

.blog-nav .scroll-area{
	max-height: 200px;
}


/* Gallery
------------------------------------------*/
/* archive */
.gallery-list {
}
.gallery-list-item {
	padding: 0 15px 15px;
}
.gallery-list-img {
	margin-bottom: 3px;
	a{
		display: block;
		position: relative;
		overflow: hidden;
		aspect-ratio: 4 / 3;
	}
}
.gallery-list-title {
	font-size: 13px;
}
.gallery-list-more {
	text-align: right;
}

/* single */
.gallery-detail {
	margin-bottom: 20px;
	text-align: center;
}
.gallery-detail-row {
}
.gallery-detail-col {
}
.gallery-detail-main {
}
.gallery-detail-sub {
}
.gallery-detail-sub li {
	padding: 0 5px 10px;
}

/* before-after */
.ba-detail {
	padding: 0 0px 20px;
}
.ba-detail-once {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 20px;
}
.ba-detail-before,
.ba-detail-after {
	position: relative;
	width: 45%;
}
.ba-detail-arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 10%;
}
.ba-detail-arrow i {
	font-size: 30px;
}
.ba-detail-sub li {
	padding: 0 15px 15px;
}


/* Colors
------------------------------------------*/
/* arrows */
.slick-next::before,
.slick-prev::before {
	color: #fff;
}

/* dots */
.slick-dots li button::before {
	color: #ccc;
}
.slick-dots li button:hover::before,
.slick-dots li button:focus::before,
.slick-dots li.slick-active button::before {
	color: #666;
}

/* SimpleBar */
.scroll-area{
	overflow: auto;
}
.simplebar-track.simplebar-vertical{
	width: 11px;
}
.simplebar-track.simplebar-horizontal {
	height: 11px;
}
.scroll-area .simplebar-scrollbar::before {
	background: #aaa;
}

/* btns */
.btn-primary.disabled:hover,
.btn-primary:disabled:hover,
.btn-primary.active:focus,
.btn-primary:active:focus,
.btn-primary.active:hover,
.btn-primary:active:hover,
.btn-primary.active,
.btn-primary:active,
.btn-primary:focus,
.btn-primary:hover,
.btn-primary {
	border-color: var(--keyColor);
	background-color: var(--keyColor);
	color: #fff;
}

.btn-secondary.disabled:hover,
.btn-secondary:disabled:hover,
.btn-secondary.active:focus,
.btn-secondary:active:focus,
.btn-secondary.active:hover,
.btn-secondary:active:hover,
.btn-secondary.active,
.btn-secondary:active,
.btn-secondary:focus,
.btn-secondary:hover,
.btn-secondary {
	border-color: #ccc;
	background-color: #fff;
	color: #333;
}

.btn-outline-primary.disabled:hover,
.btn-outline-primary:disabled:hover,
.btn-outline-primary.active:focus,
.btn-outline-primary:active:focus,
.btn-outline-primary.active:hover,
.btn-outline-primary:active:hover,
.btn-outline-primary.active,
.btn-outline-primary:active,
.btn-outline-primary:focus,
.btn-outline-primary:hover,
.btn-outline-primary {
	border-color: var(--keyColor);
	background-color: #fff;
	color: var(--keyColor);
}

/* pagination */
.page-link {
	border-color: #9e9e9e;
	color: #333;
}
.page-item.active .page-link,
.page-item.active .page-link:focus,
.page-item.active .page-link:hover,
.page-link:focus,
.page-link:hover {
	border-color: #999999;
	background-color: #9e9e9e;
	color: #fff;
}
