@charset "UTF-8";
/* ----------------------------------------------------------------------
ページ設定
---------------------------------------------------------------------- */
:root {
	--liquid-lpcDesignRatio: calc(1920 / 10);
	--liquid-npcDesignRatio: calc(1440 / 10);
	--liquid-ltbDesignRatio: calc(1024 / 10);
	--liquid-ntbDesignRatio: calc(820 / 10);
	--liquid-nspDesignRatio: calc(390 / 10);
}

html {
	font-size: 62.5%;
}

@media screen and (max-width: 1920px) {
	:root {
		--liquid-htmlroot: calc(100vw / var(--liquid-lpcDesignRatio));
	}
	html {
		font-size: var(--liquid-htmlroot);
	}
}
@media screen and (max-width: 1440px) {
	:root {
		--liquid-htmlroot: calc(100vw / var(--liquid-npcDesignRatio));
	}
}
@media screen and (max-width: 1024px) {
	:root {
		--liquid-htmlroot: calc(100vw / var(--liquid-ltbDesignRatio));
	}
}
@media screen and (max-width: 820px) {
	:root {
		--liquid-htmlroot: calc(100vw / var(--liquid-ntbDesignRatio));
	}
}
@media screen and (max-width: 520px) {
	:root {
		--liquid-htmlroot: calc(100vw / var(--liquid-nspDesignRatio));
	}
}
:root {
	--color-black: #303030;
	--color-gray: #666;
	--color-red: #af1d36;
}

/* ----------------------------------------------------------------------
フォント
---------------------------------------------------------------------- */
.zen-kaku-gothic-antique-regular {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.zen-kaku-gothic-antique-medium {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-weight: 500;
	font-style: normal;
}

.zen-kaku-gothic-antique-bold {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-weight: 700;
	font-style: normal;
}

.syncopate-regular {
	font-family: "Syncopate", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.syncopate-bold {
	font-family: "Syncopate", sans-serif;
	font-weight: 700;
	font-style: normal;
}

/* ----------------------------------------------------------------------
基本設定
---------------------------------------------------------------------- */
body {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-weight: 700;
	font-style: normal;
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	color: #333;
	line-height: 1.8;
	font-size: 1.6rem;
	letter-spacing: 0.03em;
	color: #333;
	background:#f7f7f7;
}

a {
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

a.button {
	z-index: 1;
	opacity: 1;
	color: #FFF;
	border: solid 1px #52b347;
	display: grid;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	background: #52b347;
	font-weight: bold;
	border-radius: 99999px;
	width: 280px;
	height: 50px;
	position: relative;
	text-align: center;
	font-size: 16px;
	margin-inline: auto;
	overflow:hidden;
}

a.button::before {
	content: "";
	width: 20px;
	height: 20px;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 15px;
	background: #FFF;
	border-radius: 99999px;
	transition: all 0.4s;
	z-index: -1;
}

a.button::after {
	content: "";
	width: 9px;
	height: 6px;
	background: url(../images/arrow.svg);
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 22px;
	z-index: 999;
	background-repeat: no-repeat;
}

a img {
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

img {
	max-width: 100%;
	height: auto;
}

.inner {
	max-width: 1600px;
	width: 90%;
	margin-inline: auto;
}

.inner.wide {
	width: 91%;
	max-width: 1728px;
}

.pc {  display: block;}
.sp {  display: none;}
.pc-tab {  display: block;}
.tab-sp {  display: none;}

.ggmap {
	position: relative;
	overflow: hidden;
	aspect-ratio: 800/400;
}

.ggmap iframe, .ggmap object, .ggmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media (any-hover: hover) {
	a.button:hover {
		color: #52b347;
	}
	a.button:hover::before {
		transform: scale(30);
	}
}
/* ----------------------------------------------------------------------
ヘッダー
---------------------------------------------------------------------- */
header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	-webkit-transition: 0.3s;
	transition: 0.3s;
	background: #FFF;
}

header nav {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

header nav .header_hometop {
	display: none;
}

header nav .logo_wrapper a {
	display: block;
}

header nav .nav-wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	cursor: pointer;
}

header nav .nav-wrapper .nav_btn {
	background: #64b846;
	width: 60px;
	height: 60px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	z-index: 99;
}

header nav .nav-wrapper .nav_btn .nav_toggle {
	display: block;
	position: relative;
	width: 36px;
	height: 26px;
}

header nav .nav-wrapper .nav_btn .nav_toggle .nav_toggle_menu {
	color: #FFF;
	position: absolute;
	top: 8px;
	left: 0; right:0;
	text-align: center;
	font-size: 10px;
	line-height: 1;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: bold;
	font-style: normal;
	letter-spacing: 0.1em;
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

header nav .nav-wrapper .nav_btn .nav_toggle i {
	-webkit-transition: all 0.5s;
	transition: all 0.5s;
	display: block;
	width: 35px;
	height: 1px;
	border-radius: 2px;
	right: 0;
	position: absolute;
	background-color: #FFF;
}

header nav .nav-wrapper .nav_btn .nav_toggle i:nth-child(1) {
	top: 0px;
}

header nav .nav-wrapper .nav_btn .nav_toggle i:nth-child(2) {
	top: 25px;
}

header nav .nav-wrapper .nav_btn.show .nav_toggle i:nth-child(1) {
	-webkit-transform: translateY(12px) translateX(0) rotate(45deg);
	transform: translateY(12px) translateX(0) rotate(45deg);
	background-color: #FFF;
}

header nav .nav-wrapper .nav_btn.show .nav_toggle i:nth-child(2) {
	-webkit-transform: translateY(-13px) translateX(0) rotate(-45deg);
	transform: translateY(-13px) translateX(0) rotate(-45deg);
	background-color: #FFF;
}

header nav .nav-wrapper .nav_btn.show .nav_toggle .nav_toggle_menu {
	opacity: 0;
}

header nav .nav-wrapper #main-nav .navbar-nav li .submenu h2 {
	font-size: 2rem;
}

body.show {
	overflow: hidden;
	height: 100%;
}

@media screen and (min-width: 1025px) {
	header {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		width: 90%;
		margin-inline: auto;
		top: 40px;
		left: 0;
		right: 0;
		background: unset;
	}
	header nav {
		height: 80px;
		width: 86%;
		background: #FFF;
		border-radius: 7px;
		-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);
		box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);
	}
	header nav .logo_wrapper a {
		padding: 10px 10px;
	}
	header nav .logo_wrapper img {
		width: 200px;
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
	header nav .nav-wrapper .nav_btn {
		display: none;
	}
	header nav .nav-wrapper .nav_toggle {
		display: none;
	}
	header nav .nav-wrapper .navbar-brand {
		padding: 16px 30px;
	}
	header nav .nav-wrapper #main-nav {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}
	header nav .nav-wrapper #main-nav .navbar-nav {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-direction: row;
		flex-direction: row;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		font-weight: bold;
		padding-right: 4rem;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li > a, header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu {
		display: block;
		padding: 0 2.2rem;
		position: relative;
		line-height: 80px;
		font-size: 14px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu {
		padding: 0 30px 0 1.2rem;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li a::after, header nav .nav-wrapper #main-nav .navbar-nav li.current::after {
		content: "";
		background: #52b047;
		width: 90%;
		height: 6px;
		display: block;
		border-radius: 0 0 5px 5px;
		position: absolute;
		left: 50%;
		top: 0;
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
		opacity: 0;
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.current::after {
		opacity: 1;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .sub-menu {
		display: none;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li a.current::after {
		opacity: 1;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu::before {
		content: "";
		width: 16px;
		height: 16px;
		display: block;
		background: url(../images/icon_submenu_open.svg) no-repeat center center/16px 16px;
		position: absolute;
		top: 50%;
		right: 7px;
		margin-top: -8px;
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu:hover::before {
		background: url(../images/icon_submenu_close.svg) no-repeat center center/16px 16px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu ul li {
		width: 240px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .submenu {
		position: absolute;
		top: 80px;
		left: 50%;
		-webkit-transform: translateX(-50%);
		transform: translateX(-50%);
		margin-top: 30px;
		background-color: #FFF;
		z-index: 3;
		border-radius: 8px;
		overflow: hidden;
		height: 0;
		-webkit-transition: 0.2s;
		transition: 0.2s;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .submenu h2 {
		font-weight: bold;
		line-height: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		gap: 8px;
		padding: 27px 30px 22px;
		letter-spacing: 0.1em;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .submenu h2 span.sub {
		color: #64ba46;
		font-family: "Syncopate", sans-serif;
		font-style: normal;
		font-size: 12px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu:hover .submenu {
		overflow: visible;
		height: 274px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .submenu::after {
		content: "";
		display: block;
		background: #FFF;
		height: 17px;
		width: 20px;
		clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
		position: absolute;
		top: -17px;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: 10px;
		padding: 0 20px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul li a {
		line-height: 1;
		padding: 0;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul li a h3 {
		padding-right: 16px;
		line-height: 1.5;
		margin-top: 5px;
		color: #3a3a3a;
		font-size: 12px;
		background: url(../images/arrow_submenu.svg) no-repeat right center/14px 14px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul li a::after {
		display: none;
	}
	header .contact_wrapper.pc-tab {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		width:12%;
	}
	header .contact_wrapper.pc-tab a {
		display: flex; flex-direction: column; align-items: center; justify-content: center;
		width:100%;
		background: #64b846;
		color: #FFF;
		text-align: center;
		font-size: 1.6rem;
		border-radius: 7px;
		padding-top: 1rem;
	}
	header .contact_wrapper.pc-tab a::before{
		content:""; display:block; width:27px; height:30px; background-color: #64b846
	}
	header .contact_wrapper.pc-tab a::before{
		background: url(../images/icon_mail_white.svg) no-repeat center center/contain;
	}
	header.fixed{	top:0; width:100%; background:#FFF;
		-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);      box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);}
	headerr.fixed nav .logo_wrapper img{        width: 180px;}
	header.fixed nav{border-radius:0;    -webkit-box-shadow: none;    box-shadow: none; height:70px;}
	header.fixed nav .nav-wrapper #main-nav .navbar-nav li > a, header.fixed nav .nav-wrapper #main-nav .navbar-nav li.has-submenu{height:70px;line-height:70px;}
	header.fixed .contact_wrapper.pc-tab{width: 12%;}
	header.fixed .contact_wrapper.pc-tab a{border-radius:0; width:100%; padding-top:0}
}
@-webkit-keyframes slideIn {
	0% {
		-webkit-transform: translateY(-180px);
		transform: translateY(-180px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	40%, 100% {
		opacity: 1;
	}
}
@keyframes slideIn {
	0% {
		-webkit-transform: translateY(-180px);
		transform: translateY(-180px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	40%, 100% {
		opacity: 1;
	}
}
@media screen and (min-width: 1366px) {
	header nav .logo_wrapper a {
		padding: 10px 30px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li a, header nav .nav-wrapper #main-nav .navbar-nav li.has-submenu {
		font-size: 16px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul {
		gap: 40px;
		padding: 0 30px;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li ul li a h3 {
		font-size: 14px;
		letter-spacing: -0.06em;
	}
}

@media screen and (max-width: 1440px){
	a.button{width: 240px;    height: 46px;}
	header .contact_wrapper.pc-tab a{font-size:1.2rem;}
}

@media screen and (max-width: 1024px) {
	.pc-tab {
		display: none;
	}
	.tab-sp {
		display: block;
	}
	a.button {
		width: 200px;
		height: 40px;
		font-size: 1.4rem;
	}
	header {
		width: 100%;
		left: 0;
	}
	header nav .logo_wrapper a {
		padding: 10px 12px;
	}
	header nav .navbar-brand img {
		width: 150px;
	}
	header nav .nav-wrapper {
		-webkit-box-ordinal-group: 3;
		-ms-flex-order: 2;
		order: 2;
	}
	header nav .nav-wrapper #main-nav {
		overflow-y: scroll;
		top: 0;
		right: -120%;
		-webkit-transition: all 0.5s;
		transition: all 0.5s;
		position: fixed;
		color: #FFF;
		width: 100%;
		max-width: 860px;
		height:100vh;
		z-index: 98;
		padding: 80px;
		line-height: 1.5;
		background-color: #64b846;
	}
	header nav .nav-wrapper #main-nav h2 {
		color: #538c3f;
		font-family: "Syncopate", sans-serif;
		font-weight: 700;
		font-style: normal;
		margin-bottom: 10px;
	}
	header nav .nav-wrapper #main-nav .sp_menu {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		margin-bottom: 6.8rem;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div {
		width: 45.5%;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div h3:last-of-type {
		margin-top: 6rem;
	}
	header nav .nav-wrapper #main-nav .sp_menu h3 {
		font-family: "Syncopate", sans-serif;
		font-weight: 700;
		font-style: normal;
		color: #b4b4b4;
		font-size: 16px;
		line-height: 1;
		color: #64b846;
		background-color: #538c3f;
		border-radius: 7px;
		padding: 12px 20px;
		margin-bottom: 12px;
	}
	header nav .nav-wrapper #main-nav .sp_menu li a {
		display: block;
		margin-left: 15px;
		line-height: 2.4;
		font-weight: 500;
	}
	header nav .nav-wrapper #main-nav .sp_menu li a::before {
		content: "・";
	}
	header nav .nav-wrapper #main-nav .sp_menu ul ul {
		margin-left: 27px;
	}
	header nav .nav-wrapper #main-nav .sp_menu ul ul li a::before {
		content: "-";
	}
	header nav .nav-wrapper #main-nav .contact_wrapper {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: center;
	}
	header nav .nav-wrapper #main-nav .contact_wrapper a {
		display: grid;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		padding-bottom: 15px;
		color: #64b846;
		text-align: center;
		font-size: 1.6rem;
		border-radius: 7px;
		height: 11rem;
		width:22rem;
		background: url(../images/icon_mail_green.svg) no-repeat top 15px center/54px 42px, #FFF;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li .submenu h2 .sub {
		font-family: "Syncopate", sans-serif;
		font-style: normal;
		background-color: #538c3f;
		color: #64b846;
	}
	header nav .nav-wrapper #main-nav.show {
		right: 0;
		top: 0;
	}
}
@media screen and (max-width: 820px){
	header nav .nav-wrapper #main-nav .sp_menu li a {
		font-size:1.4rem;
	}
}
@media screen and (max-width: 520px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	header nav .nav-wrapper #main-nav {
		height: 100vh;
		padding: 50px 40px 100px;
	}
	header nav .nav-wrapper #main-nav .sp_menu {
		display: block;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div {
		width: 100%;
	}
	header nav .nav-wrapper #main-nav .sp_menu h3{
		font-size:12px;
		padding: 8px 16px;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div h3:last-of-type {
		margin-top: 0;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div > ul {
		margin-bottom: 40px;
	}
	header nav .nav-wrapper #main-nav .sp_menu > div > ul li a {
		border-bottom: solid 1px;
		margin-left: 5px;
		line-height: 2.8;
	}
}
@media (any-hover: hover) {
	a:hover img {
		opacity: 0.8;
	}
	header nav .nav-wrapper #main-nav .navbar-nav li a:hover::after {
		opacity: 1;
	}
}
/* ----------------------------------------------------------------------
フッター
---------------------------------------------------------------------- */
footer {
	margin-top: -1px;
	background: url(../images/footer_bg.svg) no-repeat top 29% center/950px 950px, #141a25;
	color: #FFF;
	padding-bottom: 30px;
}
footer hr {
	color: #434851;
}
footer .footer-slider video {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
footer #footer_contact {
	padding-top: 10rem;
	padding-bottom: 4.8rem;
	border-bottom: solid 1px #434851;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}
footer #footer_contact .text h3 {
	color: #52b347;
	font-family: "Syncopate", sans-serif;
	font-weight: bold;
	font-style: normal;
	font-size: 4.8rem;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
footer #footer_contact .contact_wrapper a {
	display: flex;  flex-direction: column; align-items: center; justify-content: center; gap: 13px;
	padding-top: 2rem;
	background: #64b846;
	color: #FFF;
	text-align: center;
	font-size: 2rem;
	width: 40rem;
	border-radius: 7px;
	aspect-ratio: 400/160;
	background-color:#64b846;
}
footer #footer_contact .contact_wrapper a::before{
	content:""; display:block; width:50px; height:50px; background-color: #64b846;
	background: url(../images/icon_mail_white.svg) no-repeat center top -5px/contain;
}
footer #footer_link {
	padding-top: 4.8rem;
	padding-bottom: 8.4rem;
}
footer #footer_link h3 {
	font-size: 2.4rem;
	margin-top: 30px;
	color:#BBBBBB;
}
footer #footer_link p {
	font-size: 16px;
	color: #64b846;
}
footer #footer_link .tel, footer #footer_link .fax {
	font-size: 3.2rem;
	line-height: 1.7;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 6px;
	letter-spacing: 0.05em;
	color:#BBBBBB;
}
footer #footer_link .tel::before, footer #footer_link .fax::before {
	content: "";
	display: block;
	width: 32px;
	height: 32px;
	background-position: left center;
	background-repeat: no-repeat;
	background-size: 32px 32px;
}
footer #footer_link .tel::before {
	background-image: url(../images/icon_tel.svg);
}
footer #footer_link .fax::before {
	background-image: url(../images/icon_fax.svg);
}
footer #footer_link .opentime {
	font-size: 16px;
	margin-bottom: 26px;
	color:#BBBBBB;
}
footer #footer_link ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
footer #footer_link ul li {
	width: 30.75%;
	border: 1px solid #434851;
	border-radius: 7px;
	text-align: center;
}
footer #footer {
	padding-top: 8rem;
}
footer #footer h2 {
	font-family: "Syncopate", sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #b4b4b4;
	font-size: 16px;
	line-height: 1;
	margin-bottom: 14px;
}
footer #footer .flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
footer #footer .flex .text {
	width: 72.5%;
	-webkit-box-ordinal-group: 3;
	-ms-flex-order: 2;
	order: 2;
}
footer #footer .flex .image {
	width: 20%;
	-webkit-box-ordinal-group: 2;
	-ms-flex-order: 1;
	order: 1;
}
footer #footer .footer_menu {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	margin-bottom: 16.5rem;
}
footer #footer .footer_menu > div:nth-of-type(1) {
	width: 27.5%;
}
footer #footer .footer_menu > div:nth-of-type(1) h3:last-of-type {
	margin-top: 6.2rem;
}
footer #footer .footer_menu > div:nth-of-type(2) {
	width: 38%;
}
footer #footer .footer_menu > div:nth-of-type(3) {
	width: 26%;
}
footer #footer .footer_menu h3 {
	font-family: "Syncopate", sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #b4b4b4;
	font-size: 16px;
	line-height: 1;
	background-color: #434851;
	border-radius: 7px;
	padding: 12px 20px;
	margin-bottom: 12px;
}
footer #footer .footer_menu li a {
	display: block;
	margin-left: 15px;
	line-height: 2.4;
	font-weight: 500;
	color:#BBBBBB;
}
footer #footer .footer_menu li a::before {
	content: "・";
}
footer #footer .footer_menu ul ul {
	margin-left: 27px;
}
footer #footer .footer_menu ul ul li a::before {
	content: "-";
}
footer #footer .footer_address h3 {
	letter-spacing: 0.15em;
	margin-bottom: 3px;
	color: #64ba46;
	line-height: 1;
}
footer #footer .footer_address ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	gap: 7rem;
}
footer #footer .footer_address p{font-weight:400;color:#BBBBBB;}
footer #footer .flex .image .kenko-keiei img{
	background: #FFF;
    margin-top: 7rem;
}
footer .pagetop a {
	font-size:1.4rem;
	display: grid;
    justify-content: center;
    align-items: end;
	position: fixed;
	border-radius: 8px;
	bottom: 10px;
	right: 10px;
	z-index: 8;
	width: 50px;
	height: 50px;
	-webkit-transition: all 0.5s ease-out;
	transition: all 0.5s ease-out;
	background: url(../images/arrow-up.svg) no-repeat center top 9px / 14px 17px,#64b846;
}
footer .copyright {
	font-size: 14px;
	border-top: solid 1px #4d525c;
	padding-bottom: 30px;
	text-align: center;
	font-weight: 400;
	margin-top: 7rem;
	padding-top: 30px;
}

.home .grecaptcha-badge {
	visibility: hidden;
}

@media screen and (max-width: 1440px) {
	footer #footer_link h3 {    font-size: 2.0rem;}
	footer #footer_link p {    font-size: 1.4rem;}
	footer #footer_link .tel, footer #footer_link .fax {    font-size: 2.8rem;}
	footer #footer_link .opentime {    font-size: 1.4rem;}
	footer #footer h2 {    font-size: 1.4rem;}
	footer #footer .footer_menu h3 {    font-size: 1.4rem;}
	footer #footer .footer_menu li a {    font-size: 1.4rem;}
	footer #footer .footer_address h3 {    font-size: 1.4rem;}
	footer #footer .footer_address p {    font-size: 1.4rem;}
	footer #footer .footer_menu{margin-bottom:8rem;}
	footer .copyright{margin-top:6rem;}
}


@media screen and (max-width: 1024px) {
	footer #footer_contact {
		padding-top: 8rem;
		border: none;
		padding-bottom:0;
	}
	footer #footer_contact .text {
		width: 54%;
	}
	footer #footer_contact .text h3 {
		font-size: 4.0rem;
	}
	footer #footer_contact .text p {
		font-size: 1.4rem;
	}

	footer #footer_contact .contact_wrapper a {
		padding-bottom: 12px;
		width:30rem;
	}
	footer #footer_contact .contact_wrapper a::before {
		width:36px; height:36px;
		background-position:top center;		
	}
	footer #footer_link {
		padding-top: 6rem;
		padding-bottom: 2.6rem;
	}
	footer #footer_link ul{
		gap:2rem
	}
	footer #footer_link ul li {
		width: calc((100% - 4rem) / 3);
	}
	footer #footer_link h3 {
		font-size: 1.8rem;
		margin-top: 17px;
	}
	footer #footer_link p {
		font-size: 	1.2rem; letter-spacing:0;
	}
	footer #footer_link .tel, footer #footer_link .fax {
		font-size: 2.4rem;
		line-height: 1.5;
	}
	footer #footer_link .opentime {
		margin-top: 5px;
		font-size: 1.2rem;
	}
	footer #footer {
		padding-top: 6rem;
	}
	footer #footer h2 {
		text-align: center;
	}
	footer #footer .flex {
		display: block;
	}
	footer #footer .flex .text {
		width: 100%;
	}
	footer #footer .flex .image {
		width: 100%;
		text-align: center;
		margin-top: 6rem;
	}
	footer #footer .flex .image img {
		width: 180px;
	}
	footer #footer .flex .footer_menu {
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		margin-bottom: 6rem;
	}
	footer #footer .flex .footer_menu > div {
		width: 48%;
	}
	footer #footer .footer_menu > div:nth-of-type(1) h3:last-of-type {
		margin-top: 0;
	}
	footer #footer .flex .footer_menu div > ul {
		margin-bottom: 20px;
	}
	footer #footer .footer_address ul {
		gap: 3rem; justify-content:center
	}
	footer .copyright {
		font-size: 12px;
		border: none;
		margin-top: 2rem;
	}
}
@media screen and (max-width: 820px) {
	footer {
		padding-bottom: 0;
		background-image: none;
	}
	footer .loop_wrap{height: 160px;}
	footer #footer_contact {
		display: block;
	}
	footer #footer_contact .text {
		width: 100%;
	}
	footer #footer_contact .text h3 {
		font-size: 3.2rem;
		margin-bottom: 10px;
	}
	footer #footer_contact .text p {
		font-size: 1.4rem;
		line-height: 2;
	}
	footer #footer_contact .contact_wrapper {
		width: 100%;
		margin-top: 3rem;
		gap:2rem;
	}
	footer #footer_link {
		padding-top: 4rem;
	}
	footer #footer_link ul {
		gap:2rem;
	}
	footer #footer_link ul li {
		width: calc((100% - 2rem) / 2);
	}
	footer #footer_link p {
		font-size: 1.4rem;
		margin-bottom: 1rem;
		letter-spacing: 0;
	}
	footer #footer {
		padding-top: 5.7rem;
		margin-top: 0;
	}
	footer #footer h2 {
		margin-bottom: 16px;
	}
	footer #footer .flex .footer_menu {
		margin-bottom: 2.5rem;
	}
	footer #footer .flex .footer_menu h3 {
		margin-bottom: 0.6rem;
	}
	footer #footer .flex .footer_menu{
		gap:2rem;
	}
	footer #footer .flex .footer_menu > div {
		width: calc((100% - 2rem) / 2);
	}
	footer #footer .flex .footer_menu div > ul {
		margin-bottom: 6rem;
	}
	footer #footer .flex .footer_menu ul ul {
		margin-left: 14px;
	}
	footer #footer .flex .footer_menu > div ul li a {
		border-bottom: 1px solid #434851;
		margin-left: 5px;
		line-height: 2.1;
		background: url(../images/footer_arrow.svg) no-repeat right 5px center/14px 14px;
	}
	footer #footer .footer_address h3 {
		margin-bottom: 7px;
	}
	footer #footer .footer_address ul p {
		font-size: 1.4rem;
	}
	footer .copyright {
		padding-top: 25px;
	}
	footer #footer .flex .footer_info {
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 1.6rem;
	}
	footer #footer .flex .footer_info p {
		width: 100%;
		text-align: center;
	}	

}
@media screen and (max-width: 520px) {
	footer #footer_contact .contact_wrapper {
		margin-top: 3.5rem;
		gap:unset;
	}
	footer #footer_contact .contact_wrapper a {
		font-size: 1.6rem;
		margin: 0 auto;
        width: 100%;
        gap: 3px;
        aspect-ratio: 35 / 10;
	}
    footer #footer_link ul li {
        width: 100%;
		margin-bottom:3.5rem
    }
	footer #footer_link ul {
		display: block;
	}
	footer #footer_link h2 {
		font-size: 2.4rem;
	}

	footer #footer_link ul.link li {
		width: 100%;
	}
	footer #footer_link ul.sns li {
		width: 100%;
		text-align: center;
	}
	footer #footer .flex .footer_menu > div {
		width: 100%;
	}
	footer #footer .flex .footer_menu > div ul li a{
		line-height:3
	}
}
@media (any-hover: hover) {
	footer .pagetop a:hover {
		bottom: 13px;
	}
}
/* ----------------------------------------------------------------------
404
---------------------------------------------------------------------- */
.error404 .main_page ol{
	list-style: auto;
    padding-left: 2em;
    font-size: 1.8rem;
}
.error404 .main_page #content-right a {
    color: #29abe2;
    text-decoration: underline;
}

/* ----------------------------------------------------------------------
アニメーション
---------------------------------------------------------------------- */
/* フェードイン */
.fadein {
	opacity: 0;
	-webkit-transition: all 2s cubic-bezier(0.16, 1, 0.3, 1);
	transition: all 2s cubic-bezier(0.16, 1, 0.3, 1);
}
.fadein.top {
	-webkit-transform: translate3d(0, -100px, 0);
	transform: translate3d(0, -100px, 0);
}
.fadein.bottom {
	-webkit-transform: translate3d(0, 100px, 0);
	transform: translate3d(0, 100px, 0);
}
.fadein.zoom {
	transform:scale(1.2);
}
.fadein.scrollin {
	opacity: 1;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	transform:scale(1);
}

/* タイプライター */
.typewriter span,.typewriter2 span {
	display: inline-block;
	-webkit-transform: translateY(30%);
	transform: translateY(30%);
	opacity: 0;
	-webkit-transition-timing-function: cubic-bezier(0.23, 0.61, 0.355, 1);
	transition-timing-function: cubic-bezier(0.23, 0.61, 0.355, 1);
	-webkit-transition-duration: 690ms;
	transition-duration: 690ms;
}

@-webkit-keyframes typewriter {
	0% {
		-webkit-transform: translateY(3%);
		transform: translateY(3%);
	}
	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
}

@keyframes typewriter {
	0% {
		-webkit-transform: translateY(3%);
		transform: translateY(3%);
	}
	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
}
.typewriter.active span,.typewriter2.active span {
	-webkit-transform: translateY(0);
	transform: translateY(0);
	opacity: 1;
}

/* 流れるテキスト */
.loop_wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	width: 100%;
	overflow: hidden;
}

.loop_wrap img {
	max-width: unset;
}

.loop_wrap img:first-child, .loop_wrap img.first {
	-webkit-animation: loop 150s -75s linear infinite;
	animation: loop 150s -75s linear infinite;
}

.loop_wrap img:last-child, .loop_wrap img.second {
	-webkit-animation: loop2 150s linear infinite;
	animation: loop2 150s linear infinite;
}

.loop_wrap_child img:first-child {
	-webkit-animation: loop 170s -85s linear infinite;
	animation: loop 170s -85s linear infinite;
}

.loop_wrap_child img:last-child {
	-webkit-animation: loop2 170s linear infinite;
	animation: loop2 170s linear infinite;
}

@-webkit-keyframes loop {
	0% {
		-webkit-transform: translateX(100%);
		transform: translateX(100%);
	}
	to {
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
	}
}

@keyframes loop {
	0% {
		-webkit-transform: translateX(100%);
		transform: translateX(100%);
	}
	to {
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
	}
}
@-webkit-keyframes loop2 {
	0% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	to {
		-webkit-transform: translateX(-200%);
		transform: translateX(-200%);
	}
}
@keyframes loop2 {
	0% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	to {
		-webkit-transform: translateX(-200%);
		transform: translateX(-200%);
	}
}
.rotate {
	-webkit-animation: rotate-anime 120s linear infinite;
	animation: rotate-anime 120s linear infinite;
}

@-webkit-keyframes rotate-anime {
	0% {
		-webkit-transform: rotate(0);
		transform: rotate(0);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes rotate-anime {
	0% {
		-webkit-transform: rotate(0);
		transform: rotate(0);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
} 