@charset "utf-8";
/* CSS Document */
  :root {
    --color-base: #0F5DA5;
    --color-gray: #F7F7F7;
	--color-gray2: #dbdbdb;
	--color-red: #dc143c;
}


body,a{
	color: #222;
}

body{
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	letter-spacing: 0.01em;
	font-weight: 400;
	line-height: 1.8;
}
@media screen and (max-width: 789px) {
	body{
	font-size: 1.3rem;
}
}/*@media screen and (max-width: 789px) {*/

@media screen and (max-width: 500px) {
	body{
	font-size: 1.2rem;
}
}/*@media screen and (max-width: 500px) {*/



/*英字*/
.ein{font-family: "Poppins", sans-serif;}
/*ゴシック*/
.gosi{ font-family: "Noto Sans JP", sans-serif;}
/*明長*/
.min{font-family: "Noto Serif JP", serif;}



/*==================================================
　
横幅&背景色

===================================*/
.gray_bk{background: var(--color-gray);}


/*詳細ページの横幅サイズ*/
.main_frame,.in_frame,.wrapper,.sabu_frame{
	padding-left: 3rem;
	padding-right: 3rem;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.full_frame{
	max-width: 2000px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.main_frame{
	max-width: 1786px;

}
.in_frame{
	max-width: 1446px;
}

.sabu_frame{
	max-width: 1250px;
}



.mt100{margin-top: 10rem;}
.mb100{margin-bottom: 10rem;}
.pt100{padding-top: 10rem;}
.pb100{padding-bottom: 10rem;}


.mt50{margin-top: 5rem;}
.mb50{margin-bottom: 5rem;}


.mt25{margin-top: 2.5rem;}
.mb25{margin-bottom: 2.5rem;}



.pt50{padding-top: 5rem;}
.pb50{padding-bottom: 5rem;}


.pt25{padding-top: 2.5rem;}
.pb25{padding-bottom: 2.5rem;}



/*==================================================
　
title回り

===================================*/


.midasi{
	letter-spacing: 0.03em;
	color:  var(--color-base);
	margin-bottom: 2.4rem;
	font-weight: 400;
	font-size: 2rem;
	font-family: "Poppins", "Noto Sans JP",sans-serif;
}

.midasi .ttl{
	margin-top: 1.6rem;
	letter-spacing: -0.04em;
	font-size: 3rem;
	line-height: 1.7;
	color: #222;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
}

.midasi_sabu{
	line-height: 1.3;
	font-size: 3rem;
	margin-bottom: 2rem;
	font-weight: 600;
}
.midasi_sabu span{color:  var(--color-base);}

/*==================================================
　
共通メニュー
よせなし。テキストあろんぐ

===================================*/
.btn_text{
	display: inline-block;
	box-sizing: border-box;
	align-items: center;
	line-height: 1.4;
	margin-top: 3rem;
	font-size: 1.6rem;
	font-weight: 600;
	padding: 2rem 5.5rem 2rem 0;
	position: relative;
	transition: color 0.3s;
	letter-spacing: 1.1px;
	transition: all .3s ease;
}


.btn_text:after{
	position: absolute;
	right:-1rem;
	top: 50%;
	transform: translateY(-50%);
	content: "";
	width: 42px;
	height: 42px;
	display: inline-block;
	background-image: url("../images/rink.png");
	background-position: center;
	background-size: cover;
}
.btn_text:hover{
	color: var(--color-base);
}


.btn_text.white{
	background: #fff;
	box-sizing: border-box;
	border-radius: 50px;
	padding: 2rem 10rem 2rem 4rem;
}

.btn_text.white:hover{
	background: var(--color-gray);
}


.btn_text.white{
	background: #fff;
	box-sizing: border-box;
	border-radius: 50px;
	padding: 2rem 10rem 2rem 4rem;
}

.btn_text.white:after{
	right:3.7rem;}

@media screen and (max-width: 789px) {
.btn_text{
	margin-top: 2rem;
	font-size: 1.8rem;
	padding: 1rem 2rem 1.5rem 0;
}


.btn_text:after{
	right:-10px;
	top: 49%;
	width: 20px;
	height: 20px;
	background-size: contain;
}

.btn_text.white{
	background: #fff;
	box-sizing: border-box;
	border-radius: 50px;
	padding: 1rem 5rem 1rem 2rem;
}
.btn_text.white:after{
	right:2rem;}

}




/*==================================================
　
スマホメニューここから
MENUが☓に

===================================*/

/*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
.openbtn{
  position: absolute;
	top:50%;
	right:2rem;
	transform: translateY(-50%);
	z-index: 999;
  background:var(--color-base);
  cursor: pointer;
    width: 50px;
    height:50px;
  border-radius: 5px;
}

/*ボタン内側*/
.openbtn span{
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
  }

.openbtn span:nth-of-type(1),
.openbtn span:nth-of-type(3) {
    height: 2px;
  background: #fff;
    width: 62%;
    left: 10px;
 }

.openbtn span:nth-of-type(1) {
  top:13px; 
}

.openbtn span:nth-of-type(2) {
	position:absolute;
	top: 50%;
	left: 50%;
  transform: translate(-50%,-50%);
  font-size:0.6rem;
  text-transform: uppercase;
  color: #fff;
}

.openbtn span:nth-of-type(3) {
  top:36px;
}

/*activeクラスが付与されると線が回転して×になり、Menu表記をしている2つ目の要素が透過して消える*/
.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}



/*----------------------------
* メニュー本体
*----------------------------*/

.header_nav_sp{
  position: fixed;
  top: 0;
  right: 0;
  z-index: 20;
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
   background-color: rgba(20,46,70,0.85)
}
.header_nav_sp li{
  width: 100%;
  height: auto;
  text-align: center;
  color: #fff;
  box-sizing: border-box;
}
.header_nav_sp li a{
	width: 100%;
	display: block;
	padding: 0.8rem 0;
	color: #fff;
	box-sizing: border-box;
	letter-spacing: 0.08em;
	
}





/*----------------------------
* アニメーション部分
*----------------------------*/

/* アニメーション前のメニューの状態 */
.header_nav_sp{
  pointer-events: none;
  opacity: 0;
  transform-origin: center;
  transform: scale(.5);
  transition: all .3s ease;
}
/* アニメーション後のメニューの状態 */
.header_nav_sp.is-active{
  pointer-events: auto;
  opacity: 1;
  transform: scale(1.0);
}




/*==================================================
　
ヘッダー

===================================*/
header{
	width: 100%;
	/*padding: 1.8rem 0;*/
	box-sizing: border-box;
	background: #fff;
	position: fixed;
	z-index: 99;
	top: 0;
	left: 0;
}

.header{	
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-right: auto;
	margin-left: auto;
	padding-left: 2rem;
	padding-right: 2rem;
	/*padding-left: 2rem;
	padding-right: 2rem;*/
	box-sizing: border-box;
	max-width:calc(1400px + 4rem);
}



.logo_link{
	padding-top: 2rem;
	padding-bottom: 2rem;
	display: inline-block;
	width: 224px;
}

.header_nav_pc{
	float: right;
	display: flex;
	justify-content: flex-end;
  flex-wrap: wrap;
	margin-top: 0.2rem;
	font-size: 1.2rem;
}

.header_nav_pc a{
	padding: 1rem 0.2rem;
	margin-left: 1.4rem;
	position: relative;
	letter-spacing: 0.08em;
}

.header_nav_pc a:after{
	content: "";
	transition: all 0.5s 0.1s ease-in-out;
	width: 0;
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	border-bottom: 2px solid var(--color-base);
}



.header_nav_pc .current a:after{
	content: "";
	width: 100%;
	border-bottom: 2px solid var(--color-base);
}

.header_nav_pc a:hover:after{
	width: 100%;
}

.header_nav_pc li+li{
	margin-left: 1rem;
}


/* ドロップダウンメニュー */

.header_nav_list{
	padding-right: 1EM;
  position: relative;
}

.header_nav_list ul li{
	margin-left: 0;
}

.header_nav_pc .current li a:after {
	opacity: 0;
}



.header_nav_pc .header_nav_list::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0.4em;
  width: 0.5em;
  height: 0.5em;
  border-top: 2px solid #999;
  border-right: 2px solid #999;
  transform: rotate(135deg);
}

/* ２・３階層目 共通設定 */
.header_nav_list ul{
  /* 位置指定 */
  position: absolute;
  left: 1em;
  top: 2em;
  z-index: 4;
  background-color: #F7F7F7;
  /* 最初は非表示にする */
  visibility: hidden;
   opacity: 0;
  /* アニメーション */
  transition: all 0.3s;
}

.header_nav_list li a{
	display: block;
	width: 240px;
	padding: 0.2em 0.5em;
	margin-left: 0;
	transition: all 0.3s;
}

.header_nav_list li a:hover{
background-color: var(--color-base);
color: #fff;
}

/* hoverしたら表示する */
.header_nav_list:hover > ul,
.header_nav_list ul li:hover > ul,
.header_nav_list:active > ul,
.header_nav_list ul li:active > ul {
  visibility: visible;
  opacity: 1;
}

/*==================================================
　
フッダー

===================================*/
.footer_contact {
	position: relative;
	z-index: 10;
	padding-top: 5rem;
	padding-bottom: 5rem
}

.footer_contact .in_frame{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	
}

.footer_contact .contact_box,.footer_contact .carrers_box{
	width: calc( 50% - 1rem);
	padding: 2rem;
	border-radius: 2.5rem;
	box-sizing: border-box;
	background: #fff;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}


.footer_contact .text span{
	letter-spacing: 0.03em;
	color:  var(--color-base);
	margin-bottom: 4.1rem;
	font-weight: 600;
	font-family: "Poppins", sans-serif
}
	.footer_contact .btn_text{
		margin: 0;
	}


footer{
	background: #fff;
	position: relative;
	z-index: 10;
	padding-top:5rem;
	padding-bottom: 2rem;
}

.footer_link{
	display: block;
	max-width: 100%;
	width: 288px;
}
.footer-nav_ul{
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	font-size: 1.4rem;
}

.footer-nav_ul li{
	/*width: calc(( 100% - 3rem) /3 );*/
	margin-right: 1rem;
}

.footer-nav_ul li a{
	display: block;
	padding: 1rem;
	box-sizing: border-box;
	transition: all 0.3s;
}

.footer-nav_ul li a:hover{
	background: var(--color-gray);
	color: var(--color-base);
	font-weight: 600;
}

#C{
	font-size: 1rem;
	padding-top: 1rem;
	padding-bottom: 5rem;
	background-color: #fff;
	letter-spacing: 0.1rem;
	font-family: "Poppins", sans-serif;
}



/*==================================================
　
title

===================================*/

.page-title{
	margin-top: 10rem;
	font-weight: 100;
	margin-bottom: 10rem;
}


.page-title h1{
	letter-spacing: 0.03em;
	font-size: 2rem;
	font-weight: 400;
}


@media screen and (min-width: 1000px) {
.openbtn{
	display: none;
}
.footer_contact .contact_box,.footer_contact .carrers_box{
	width: calc( 50% - 2rem);
	padding: 4.2rem 3.8rem;
}
footer .in_frame{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.footer-nav_ul{
	max-width: 900px;
}
.page-title{
	margin-top: 14rem;
}
.footer_contact .btn_text{
		width: 180px;
		display: flex;
		align-items: center;
		justify-content: flex-end;
	}
}/*@media screen and (min-width: 1000px) { */

@media screen and (max-width: 999px) {
.header_nav_pc{
	display: none;
}
	
	
.midasi{
	line-height: 1.4;
	font-weight: 400;
	font-size: 1.5rem;
	margin-bottom: 1rem;
}
.midasi .ttl{
	margin-top: 0.4rem;
	font-size: 2rem;
}
	
.midasi_sabu{
	font-size: 2rem;
	margin-bottom: 1rem;
}

	

	
.page-title{
	margin-top: 8rem;
	font-weight: 400;
	margin-bottom: 5rem;
}

.footer_contact .contact_box, .footer_contact .carrers_box{
	display: inline;
	}
	
}/*@media screen and (max-width: 999px) { */



@media screen and (max-width: 789px) {
.btn_text{
	margin-top: 1.5rem;
	font-size: 1.4rem;
	margin-bottom: 1.5rem;
}
	
.footer_contact .contact_box,.footer_contact .carrers_box{
	width: 100%;
}

.footer_contact .carrers_box{
		margin-top: 2.5rem;
	}
	
.footer-nav_ul li{
	width: calc(( 100% - 2rem) /2 );
	margin-right: 1rem;
}
.footer-nav_ul li a{
	padding: 0.5rem;
}
	
.mt100{margin-top: 5rem;}
.mb100{margin-bottom: 5rem;}
.pt100{padding-top: 5rem;}
.pb100{padding-bottom: 5rem;}	
	
.mt50{margin-top: 2.5rem;}
.mb50{margin-bottom: 2.5rem;}
	
.mt25{margin-top: 1.5rem;}
.mb25{margin-bottom: 1.5rem;}
	
	
	
}/*@media screen and (max-width: 789px) {*/



/*ハブスポットショートコード用CSS*/
.hubspot{
	margin-top: 5rem;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}
.hubspot .inputs-list{
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
}
.hubspot .inputs-list li{
	margin-right: 2em;
}
.hubspot .input ul{
	list-style-type: none;
}

.hubspot .form-columns-1{
	max-width: 100%;
}

.hubspot .input{
	margin-top: 0.5em;
}
.hs-form-required{
	color: red;
}
.hs-form-field label:first-child{
	font-weight: 600;
	font-size: 1.6rem;
}

.hubspot input[type=text],
.hubspot input[type=email],
.hubspot input[type=tel]{
	display: inline-block;
	width: 100%!important;
	height: 40px!important;
	line-height: 40px!important;
	border: 1px solid #AAA!important;
	font-size: 16px!important;
	padding-left: 15px!important;
}

.hubspot textarea{
	display: inline-block;
	width: 100%!important;
	line-height: 2;
	border: 1px solid var(--color-gray2);
	font-size: 16px;
	padding-left: 15px;
	resize: none;
	font-family: sans-serif;
}


.hubspot input[type=submit],
.hubspot input[type=button] {
	margin: 2rem auto 5rem;
	display: block;
	box-sizing: border-box;
	padding: 10px 20px;
	text-align: center;
	font-size: 22px;
	color: #FFF;
	background-color: var(--color-base);
	border: 1px solid var(--color-base);
	transition: .2s;
}

.hubspot input[type=submit]:hover,
.hubspot input[type=button]:hover {
	cursor: pointer;
	background-color: transparent;
	color: #000;
}



/*フレームレイアウト*/
.layout-flex{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.layout-flex .img,.layout-flex .text{
	width: calc(50% - 2rem);
}
@media screen and (max-width: 789px) {
.layout-flex .img,.layout-flex .text{
	width: 100%;
}
.layout-flex .img+.layout-flex .text,
.layout-flex .text+.layout-flex .img{
	margin-top: 1rem;
}

}