@charset "UTF-8";
html{overflow:auto;-webkit-text-size-adjust:100%}
*,*:after,*:before{box-sizing:border-box}
*,*:after,*:before,blockquote,body,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,p,pre,td,th{margin:0;padding:0}
table{border-collapse:collapse;border-spacing:0}
fieldset,img{border:0}
img { max-width: 100%; height: auto; }
ul,ol,li{list-style-type: none;}
address,caption,cite,code,dfn,em,var{font-style:normal;font-weight:400}
caption,th{text-align:left}
h1,h2,h3,h4,h5,h6{font-size:100%}
q:after,q:before{content:''}
input[type=checkbox],input[type=radio]{margin:0 2px 0 0;padding:0;vertical-align:-2px}
button,input[type=button],input[type=submit],input[type=text]{box-sizing:border-box;-webkit-appearance:none;border:0;cursor:pointer;border-radius:0;background:transparent}

/* ------------------------
    基本構造
------------------------ */
h1,h2,h3,h4{
  font-family: "Noto Serif JP", sans-serif;
  font-style: normal;
}
.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.zen-kaku-gothic-new-bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}

h1{
	font-size: 3.6rem;
}
h2{
	font-size: 3.2rem;
}
h3{
	font-size: 2.4rem;
}
h4{
	font-size: 2rem;
}
html {
	font-size: 10px;
	overflow-x: hidden;
}
body {
	font-family: "Zen Kaku Gothic New","Jost", sans-serif, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
	font-weight: 500;
	font-size: 1.6rem;
	color: #4E5C5E;
	line-height: 1.7;
	letter-spacing: 5%;
}
.h2-en{
	font-size: 2.4rem;
	color: #58BE89;
}
.content {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}
.min-content {
	width: 100%;
	max-width: 960px;
	padding: 0;
}

a {
	text-decoration: none;
	transition: .5s ease all;
	color: #444444;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}
.color{
	color: #58BE89;
}
.center{
	text-align: center;
}
.br-40{
	border-radius: 40px;
}
.br-30{
	border-radius: 30px;
}
.br-20{
	border-radius: 20px;
}
::placeholder {
	color: #ccc;
}
.b-gray{
	background-color: #F7F7F7;
}
.herf{
	width: 50%;
}
.only-sp {
	display: none !important;
}
.only-sp{
	display: none;
}
/* ------------------------
    ボタン
------------------------ */
.chevron-white{
	color: white;
}
.chevron-white span{
	display: inline-block;
	vertical-align: middle;
	color: white;
	line-height: 1;
	position: relative;
	width: 20px;
	height: 20px;
	border: 0.075em solid currentColor;
	background: currentColor;
	border-radius: 50%;
	box-sizing: content-box;
	margin-right: 10px;
	margin-top: -2px;
	transition: .5s ease;
	top: -1px;
}
.chevron-white span::before{
	content: '';
	width: 0;
	height: 0;
	border-top: 2px solid #426EB5;
	border-right: 2px solid #426EB5;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	left: 0;
	right: 4px;
	bottom: 0;
	margin: auto;
	width: 8px;
	height: 8px;
	transition: .5s ease;
}
.chevron-white:hover span{
	margin-right: 10px;
	color: #426EB5;
	width: 25px;
	height: 25px;
	margin-right: 10px;
}
.chevron-white:hover span::before {
	border-top: 2px solid white;
	border-right: 2px solid white;
	width: 10px;
	height: 10px;
}
.chevron-green{
	color: #444444;
}
.chevron-green span{
	display: inline-block;
	vertical-align: middle;
	color: #ECF5F1;
	line-height: 1;
	position: relative;
	width: 30px;
	height: 30px;
	border: 0.075em solid currentColor;
	background: currentColor;
	border-radius: 50%;
	box-sizing: content-box;
	margin-right: 15px;
	margin-top: -2px;
	transition: .5s ease;
	top: -1px;
}
.chevron-green span::before{
	content: '';
	width: 0;
	height: 0;
	border-top: 2px solid #58BE89;
	border-right: 2px solid #58BE89;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	left: 0;
	right: 4px;
	bottom: 0;
	margin: auto;
	width: 10px;
	height: 10px;
	transition: .5s ease;
}
.chevron-green:hover span{
	margin-right: 10px;
	margin-left: 5px;
	color: #58BE89;
}
.chevron-green:hover span::before {
	border-top: 2px solid white;
	border-right: 2px solid white;
}
.button-green{
  padding: 20px 40px;
  background-color: white;
  color: #58BE89;
  border-radius: 30px;
  display: inline-block;
  letter-spacing: 0.05em;
  transition: .5s ease all;
  line-height: 1;
  width: 300px;
  text-align: center;
  position: relative;
  border: 1px solid #58BE89;
}
.button-green::before {
  content: '';
  border-top: 1px solid #58BE89;
  border-right: 1px solid #58BE89;
  position: absolute;
  top: 50%;
  transform: rotate(45deg) translateY(-50%);
  right: 30px;
  margin: auto;
  width: 6px;
  height: 6px;
  transition: .5s ease all;
}
.button-green:hover{
	background-color: #58BE89;
	color: white;
}
.button-green:hover::before {
  border-top: 1px solid white;
  border-right: 1px solid white;
  right: 25px;
}
/*ヘッダー*/
#header{
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 999;
}
.header-inner{
	display: flex;
	justify-content: space-between;
	padding: 0 40px;
	/*
	margin: 0 20px;
	border-radius: 0 0 20px 20px;*/
	transition: .5s ease all;
	align-items: center;
}
.header-inner ul{
	display: flex;
	gap: 50px;
	align-items: center;
	font-family: "Noto Serif JP", sans-serif;
	font-weight: bold;
}
.header-inner ul a{
	color: white;
	transition: .5s ease all;
}
.header-inner li{
	padding: 25px 0 ;
}
.header-logo{
	width: 397px;
	background-image: url(./image/logo.svg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	height: 48px;
	transition: .5s ease all;
	margin: 0;
}
.header-inner ul .h-link-contact{
	background-color: white;
	color: #426EB5;
	padding: 15px 30px;
	border-radius: 50px;
	transition: .5s ease all;
}
.scrolled .header-inner{
  background-color: white;
}
.scrolled .header-logo{
	content: url(./image/logo.png);
}
.scrolled .header-inner ul a{
	color: #4E5C5E;
	position: relative;
}
.scrolled .header-inner ul .h-link-contact{
	background-color: #426EB5;
	color: white;
}
.scrolled .header-inner ul a:hover{
	color: #426EB5;
}
.scrolled .header-inner ul .h-link-contact:hover{
	background-color: #1A2489;
	color: white;
}
#menu-toggle, #menu-button, #drawer-menu{
	display: none;
}
/*フッター*/
footer{
	background-color: #58BE89;
	color: white;
	backdrop-filter: blur(1px);
}
.footer-inner{
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 90px 10px 100px;
	justify-content: space-between;
	display: flex;
}
.footer-left p{
	margin-top: 20px;
	font-size: 1.5rem;
}
.footer-sns{
	margin-top: 35px;
	display: flex;
	width: 180px;
	justify-content: space-between;
}
.footer-sns img{
	height: 40px;
}
.copyright{
	text-align: center;
	font-size: 1.5rem;
	padding-bottom: 10px;
}
.footer-right{
	display: flex;
	gap: 70px;
}
.footer-right ul li{
margin-bottom: 25px;
}
.footer-right a{
	color: white;
}
/*テンプレート*/
.text-center{
	text-align: center;
}
.page-content{
  width: 100%;
  margin: 0 auto 0;
  padding: 0 10px;
}
.content-m{
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	margin-bottom: 140px;
}
.content-b{
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	margin-bottom: 120px;
}
.box-solid5{
	border: 5px solid #3AC0CF;
	border-radius: 30px;
	padding: 50px 80px;
}
.b-blue{
	background-color: #F6FBFF;
	border-radius: 30px;
	padding: 50px 0;
}
.page-hero{
	position: relative;
}
.page-hero h1{
	font-size: 3.6rem;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	color: white;
	position: absolute;
}
.page-hero-2{
	background-color: #F6FBFF;
	width: 100%;
	margin-top: 100px;
	margin-bottom: 100px;
}
.page-hero-2-inner{
	padding: 70px 10px;
	max-width: 960px;
	margin: 0 auto;
	width: 100%;
}
.page-hero-img{
	width: 100%;
  	height: auto;
	margin-top: 100px;
	margin-bottom: 80px;
}
.page-hero-img img{
	width: 100%;
}
.page-catch{
	font-size: 1.8rem;
	letter-spacing: 2px;
	margin: 50px 0;
}
.b-img{
	margin-bottom: 40px;
}
.grid-column02-wrap{
	display: grid;
	gap: 50px;
}
.grid-column02{
	display: flex;
	justify-content: space-between;
}
.grid-column02 .under-line{
	margin-bottom: 20px;
}
.column02-img{
	width: 45%;
}
.column02-text{
	width: 45%;
	margin-top: 10px;
}
.column02-text-w{
	width: 50%;
	margin-top: 10px;
}
.column02-text p,.column02-text-w p{
	margin-bottom: 15px;
}
.h3-dot{
	position: relative;
	padding-left: 20px;
	margin-bottom: 20px;
}
.h3-dot::before{
	position: absolute; 
	width: 12px;
	height: 12px;
	background-color: #43D1E1;
	content: '';
	border-radius: 50%;
	top: 52%;
	transform: translateY(-50%);
	left: 0;
}
.history{
	width: 100%;
	background-color: #F6FBFF;
	margin-bottom: 120px;
}
.history-wrap{
	width: 100%;
	max-width: 960px;
	margin: 70px auto;
	padding: 70px 0;
}
.history-wrap h3{
	margin-bottom: 30px;
}
.history-wrap li{
	display: flex;
	padding: 20px;
	justify-content: space-between;
	border-top: 1px solid #3AC0CF;
}
.history-wrap li:last-child{
	border-bottom: 1px solid #3AC0CF;
}
.history-wrap li p{
	width: 730px;
}
.under-line{
	width: 100%;
	border-bottom: 2px solid #3AC0CF;
	padding-bottom: 10px;
	margin-bottom: 30px;
}
.h3-list{
	display: grid;
	gap: 30px;
}
.mt-0 {
	margin-top: 0 !important;
}
.mt-5 {
	margin-top: 5px !important;
}
.mt-10 {
	margin-top: 10px !important;
}
.mt-15 {
	margin-top: 15px !important;
}
.mt-20 {
	margin-top: 20px !important;
}
.mt-25 {
	margin-top: 25px !important;
}
.mt-30 {
	margin-top: 30px !important;
}
.mt-35 {
	margin-top: 35px !important;
}
.mt-40 {
	margin-top: 40px !important;
}
.mt-45 {
	margin-top: 45px !important;
}
.mt-50 {
	margin-top: 50px !important;
}
.mt-55 {
	margin-top: 55px !important;
}
.mt-60 {
	margin-top: 60px !important;
}
.mt-65 {
	margin-top: 65px !important;
}
.mt-70 {
	margin-top: 70px !important;
}
.mt-75 {
	margin-top: 75px !important;
}
.mt-80 {
	margin-top: 80px !important;
}
.mb-0 {
	margin-bottom: 0px !important;
}
.mb-10 {
	margin-bottom: 10px !important;
}
.mt-hero{
	margin-top: 95px;
}
.gap-40{
	display: grid;
	gap: 40px;
}
.w-600{
	max-width: 600px;
	margin: 10px auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: 10px auto;
	gap: 15px;
}
.w-600 li{
	width: 45%;
}
.in-700{
	max-width: 700px;
	margin: 0 auto;
	width: 100%;
}
.w-900{
	max-width: 960px;
	margin: 10px auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: 10px auto;
	gap: 20px;
}
.w-900m{
	max-width: 900px;
	margin: 10px auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: 10px auto;
	gap: 20px;
}
.w-900m li{
	width: 48%;
}
.w-900 li{
	width: 48%;
}
.w-100{
	width: 100% !important;
}
.gap-0{
	gap: 0 !important;
}
.border-b{
	border-bottom: 1px solid #444444;
  	display: inline-block;
}
.col-3{
	width: 30%;
}
.w-900 .col-3{
	width: 43%;
}
.mt-120{
	margin-top: 120px;
}
.content-b h2{
	margin-bottom: 40px;
}
/*メガメニュー*/
.mega-menu{
	position: absolute;
	top: calc(100% + 5px);
	background-color: #F7F7F7;
	width: 95%;
	left: 50%;
	border-radius: 20px;
	top: calc(100% + 2px);
	transform: translateX(-50%);
	opacity: 0;
	transition: .5s ease all;
	visibility: hidden;
}
.mega-menu ul a {
	font-size: 1.5rem;
	color: #4E5C5E;
	display: block;
	border-bottom: 1px solid #58BE89;
	padding-bottom: 5px;
}
.mega-menu .mega-link{
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 30px;
}
.mega-menu-inner{
	padding: 40px 60px;
}
.mega-link li{
	width: 30%;
	padding: 0 10px;
}
.mega-menu ul .m-link-s{
	margin-bottom: 5px;
	font-size: 1.4rem;
	margin-left: 40px;
	border-bottom: none;
}
.mega-menu .chevron-green span{
	width: 20px;
	height: 20px;
}
.mega-menu .chevron-green span::before {
	width: 8px;
	height: 8px;
}
.header-inner .header-m:hover .mega-menu{
  	opacity: 1;
	visibility: unset;
}
.header-inner .mega-b-link a{
	color: #4E5C5E;
	font-size: 2rem;
	font-weight: bold;
}
.mega-b-link{
	margin-bottom: 30px;
	margin-left: 10px;
}

@media only screen and (max-width: 1240px) {
	.header-inner {
		padding: 15px 20px;
	}
	.header-inner ul {
		display: none;
	}
	#menu-button {
		display: block;
		position: relative;
		width: 48px;
		height: 48px;
		border-radius: 50%;
		cursor: pointer;
		z-index: 999;
		background-color: #426EB5;
	}
	#menu-button span {
		background-color: white;
		width: 20px;
		height: 1px;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateY(-50%) translateX(-50%);
		transition: .3s;
	}
	#menu-button span::before, #menu-button span::after {
		content: '';
		background-color: white;
		width: 20px;
		height: 1px;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		transition: .5s ease all;
		top: -5px;
	}
	#menu-button span::before {
		top: 5px;
	}
	.scrolled #menu-button {
		background-color: #426EB5;
	}
	#drawer-menu {
		display: block;
		width: 100%;
		position: absolute;
		background-color: white;
		height: 100%;
		transform: translateX(100%);
		position: fixed;
		display: inline-block;
		align-items: center;
		justify-content: center;
		position: fixed;
		top: 0;
		left: 0;
		transition: .5s ease all;
	}
	#menu-toggle:checked ~ #drawer-menu {
		visibility: visible;
		transform: translateX(0);
	}
	.header-inner .menu-list{
		display: block;
	}
	.d-menu ul{
		display: grid;
		gap: 20px;
	}
	.header-inner .d-menu a {
		color: #0061B0;
		font-size: 1.6rem;
		font-family: "Zen Kaku Gothic New";
		width: 80%;
		display: inline-block;
		margin: 0 auto;
		padding: 10px 0;
	}
	.scrolled .header-inner .d-menu a {
  		color: #0061B0;
	}
	#menu-toggle:checked #menu-button{
		background-color: #426EB5;
	}
	  #menu-toggle:checked ~ #menu-button span {
		width: 0px;
	}
	#menu-toggle:checked ~ #menu-button span::before {
		top: 50%;
		transform: translateX(-50%) rotate(45deg);
		left: 50%;
  	}
	#menu-toggle:checked ~ #menu-button span::after {
		top: 50%;
		transform: translateX(-50%) rotate(-45deg);
		left: 50%;
  	}
	.d-menu{
		margin-top: 80px;
	}
	.d-menu li{
		width: 100%;
		padding: 0 10%;
	}
	.header-sns{
		display: flex;
		bottom: 0;
		background-color: #0061B0;
		padding: 20px 15%;
		position: absolute;
    	justify-content: space-between;
		width: 100%;
		align-items: center;
	}
	.header-sns a{
		width: 37px;
		
	}
	.menu-wrap{
		display: flex;
		justify-content: space-between;
		pointer-events: auto;
	}
	.left-link{
		width: calc(100% - 120px);
		display: block;
		padding: 60px 10px 0;
		overflow-y: auto;
		box-sizing: border-box;
		overflow-y: scroll;
		overscroll-behavior-y: contain;
		height: 100vh;
	}
	.left-link ul{
		display: block;
	}
	.tub{
		width: 15%;
		display: block;
		width: 120px;
		background-color: #ECF5F1;
		padding: 60px 15px 0;
		height: 100vh;
	}
	.tub ul{
		display: block;
	}
	.header-inner .tub-u{
		padding: 10px 0;
  		text-align: center;
	}
	.left-link ul a,.tub ul a{
		color: #444444;
		display: block;
		font-family: "Zen Kaku Gothic New";
		font-size: 1.3rem;
		font-weight: normal;
	}
	.left-link ul .under-line{
		font-size: 1.4rem;
		font-weight: bold;
	}
	.left-link li {
		padding: 10px 0;
	}
	.menu-panel {
		display: none;
	}
	.menu-panel.active {
		display: block;
	}
	.menu-tab{
		display: block;
		font-family: "Zen Kaku Gothic New";
		background-color: white;
		padding: 10px 15px;
		border-radius: 10px;
		width: 100%;
		margin-bottom: 10px;
		color: black;
	}
}
@media only screen and (max-width: 768px) {
	.only-pc {
		display: none !important;
	}
	.only-sp {
		display: inline !important;
	}
	.br-40{
	border-radius: 20px;
	}
	.br-30{
		border-radius: 20px;
	}
	.br-20{
		border-radius: 10px;
	}
	.grid-column02-wrap{
		display: grid;
		gap: 50px;
	}
	.grid-column02 {
		display: grid;
		gap: 30px;
	}
	.column02-text {
		width: 100%;
		margin-top: 0px;
	}
	.column02-img {
	width: 100%;
	}
	.history-wrap {
		padding: 40px 5px;
	}
	.history-wrap li {
		display: grid;
		gap: 10px;
	}
	.page-catch {
		font-size: 1.6rem;
		margin: 30px 0;
	}
	.history-wrap ul{
		padding: 0 10px;
	}
	.history-wrap li p {
		width: 100%;
	}
	.h3-list {
		gap: 30px;
		margin-top: 20px;
	}
	.h3-dot {
  		margin-bottom: 10px;
	}
	.content-m {
		margin-bottom: 100px;
	}
	.grid-column02:nth-child(even) .column02-img{
		order: 2;
	}
	.page-hero h1 {
		font-size: 2.4rem;
		width: 90%;
	}
	.page-hero-img {
		margin: 60px 0;
	}
	.under-line{
		margin-bottom: 20px;
	}
	.num span {
		top: 50%;
	}
	.num span::before {
		width: 25px;
		height: 25px;
		left: 4px;
	}
	.num {
  		margin-bottom: 15px;
	}
	.w-600,.w-900{
		display: grid;
	}
	.w-600 li,.w-900 li {
  		width: 100%;
	}
	.col-3{
	width: 100%;
	}
	.box-solid5 {
		padding: 40px 20px;
	}
	.mt-hero{
		margin-top: 60px;
	}
	.w-900m li{
		width: 100%;
	}
	.mt-120{
		margin-top: 80px;
	}
	.header-inner .logo img{
		width: 140px;
	}
	.header-inner {
		margin: 0;
	}
	.header-logo{
		width: 232px;
		height: 28px;
	}
	h1{
		font-size: 2.4rem;
	}
	h2 {
		font-size: 2rem;
	}
	.h2-en{
		font-size: 1.6rem;
	}
	h3 {
		font-size: 1.8rem;
	}
	.footer-inner {
		display: grid;
	}
	.footer-right {
		display: grid;
		gap: 10px;
		margin-top: 40px;
	}
	.footer-right ul li {
		margin-bottom: 15px;
	}
	.footer-inner {
		padding: 50px 10px;
	}
	  #menu-button {
		width: 30px;
		height: 30px;
	}
	#menu-button span,#menu-button span::before,#menu-button span::after {
		width: 15px;
	}
	.only-pc{
		display: none;
	}
	.only-sp{
		display: block;
	}
}
