@charset "utf-8";
html{
	font-size:min(0.833333vw,16px);
}
@media (max-width: 767px) {
  html {
		font-size:min(4.266667vw,16px);
	}
}
img{
  height: auto;
  max-width: 100% !important;
}
a{
  transition: 0.3s;
  color: #006CD8;
}
a img{
  transition: 0.3s;
}
a:hover img{
  opacity: 0.8;
}
a:hover{
  text-decoration: none;
}
p{
  word-break: break-all;
}
html,body{
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
body{
	padding-top: 6.25rem;
}

@media screen and (min-width: 768px){
  .sp{
    display: none !important;
  }
}
@media screen and (max-width: 767px){
  .pc{
    display: none !important;
  }  
}
/* =====================================================
  common
===================================================== */
.inner{
	max-width: 63.75rem;
	width: 94%;
	margin: 0 auto;
}
.en{
	font-family: "Oswald", sans-serif;
}
.sans{
	font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
.serif{
	font-family: YakuHanMP, "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}
.slick-arrow{
	background: none;
	border: none;
}
.btn_calendar,.backbtn,.btn_member{
	color: #FFF;
	border-radius: 10px;
	background: #000;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 18.75rem;
	height: 3.125rem;
	font-size: 0.9375rem;
	text-decoration: none !important;
}
.btn_calendar:hover,.backbtn:hover,.btn_member:hover{
	opacity: 0.8;
}
.btn_calendar div,.backbtn div,.btn_member div{
	display: inline-flex;
	align-items: center;
	letter-spacing: 0;
}
.btn_calendar div::before,.backbtn div::before{
	background: url("../img/icon_calendar.svg") no-repeat center center;
	background-size: cover;
	content: "";
	display: block;
	width: 1.875rem;
	height: 1.875rem;
	margin-right: 1rem;
	filter: brightness(0) saturate(100%) invert(100%) sepia(54%) saturate(2%) hue-rotate(227deg) brightness(107%) contrast(101%);
}
.btn_member div::before{
	background: url("../img/icon_signup.svg") no-repeat center center;
  background-size: cover;
	content: "";
	display: block;
	width: 1.5rem;
  height: 1.5rem;
	margin-right: 1rem;
	filter: brightness(0) saturate(100%) invert(100%) sepia(54%) saturate(2%) hue-rotate(227deg) brightness(107%) contrast(101%);
}
.backbtn{
	width: 15rem;
}
.backbtn div::before{
	background: url("../img/icon_prev.png") no-repeat center center;
	background-size: cover;
}
.centerbtn,.center{
	text-align: center;
}
.sidelabel_section{
	position: relative;
	width: 100%;
  overflow: hidden;
}
.contents_enlabel{
	position: absolute;
	top: 0;
	width: 100%;
}
.enlabel{
	color: #FFF;
	font-family: "Oswald", sans-serif;
	font-size: 10rem;
	opacity: .8;
	line-height: 1;
	writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.enlabel_left {
	position: absolute;
  top: -0.3125rem;
  left: 0;
	z-index: 1;
}
.enlabel_right {
	position: absolute;
  top: -0.3125rem;
  right: 0.75rem;
	z-index: 1;
}
.enlabel_left.borderlabel{
	border-left: 1px solid #FFF;
	padding-left: 1.25rem;
}
.enlabel_right.borderlabel{
	border-right: 1px solid #FFF;
	padding-right: .5rem;
}
.pagehead{
	background: url("../img/pageheader_bg.webp") no-repeat;
	background-size: cover;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 10rem;
	width: 100%;
}
.pagehead h2{
	color: #FFF;
	font-size: 3.125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: center;
}
.pagehead h2 span{
	display: block;
	text-align: center;
	font-size: 1.25rem;
	letter-spacing: 0;
	margin-top: 0.5rem;
}
.sectionhead {
	text-align: center;
	margin-bottom: 2.8125rem;
}
.sectionhead h3{
	color: #FFF;
	font-size: 2.25rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 0.8;
	text-align: center;
	margin-bottom: 2.125rem;
}
.sectionhead h3 span{
	font-size: 1.125rem;
	letter-spacing: 0.05em;
}
.sectionhead p{
	font-size: 0.9375rem;
}

@media screen and (min-width: 1021px) and (max-width: 1600px){
	.inner{
		max-width: 80rem;
	}
	.btn_calendar, .backbtn, .btn_member{
		font-size:13px;
	}
	.btn_calendar, .backbtn, .btn_member{
		width: 20rem;
	}
}

@media screen and (min-width: 768px) and (max-width: 1020px){
	.inner{
		max-width: 80rem;
	}
	.btn_calendar, .backbtn, .btn_member{
		font-size:13px;
	}
	.btn_calendar, .backbtn, .btn_member{
		width: 210px;
		height: 36px;
	}
}

@media screen and (max-width: 767px){
	.btn_calendar,.backbtn,.btn_member{
		width: 100%;
		height: 3.125rem;
	}
	.btn_calendar div::before,.backbtn div::before,.btn_member div::before{
		width: 1.25rem;
		height: 1.25rem;
		margin-right: 0.5rem;
	}
	.enlabel{
		font-size: 3rem;
	}
	.enlabel_left {
		position: absolute;
		top: -0.135rem;
		left: 0;
		z-index: 1;
	}
	.enlabel_right {
		position: absolute;
		top: -0.135rem;
		right: 0.325rem;
		z-index: 1;
	}
	.enlabel_left.borderlabel{
		border-left: 1px solid #FFF;
		padding-left: 0.675rem;
	}
	.enlabel_right.borderlabel{
		border-right: 1px solid #FFF;
		padding-right: .25rem;
	}
	.sectionhead {
		margin-bottom: 1.25rem;
	}
	.sectionhead h3 {
		font-size: 1.75rem;
		line-height: 1.25;
		margin-bottom: 1.125rem;
	}
	.pagehead {
		height: 10rem;
	}
	.pagehead h2 {
		font-size: 1.5rem;
	}
}

/* =====================================================
  header
===================================================== */
header{
	position: fixed;
	top:0;
	background: #8a0606;
	width: 100%;
	z-index: 100000;
}
.headerinner{
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 6.25rem;
	padding:0.3125rem 1.875rem;
}
.headerlogo{
	width: 28rem;
}
.headernavi{
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.headernavi nav ul{
	display: inline-flex;
}
.headernavi nav ul li{
	position: relative;
	font-size: 15px;
}
.headernavi nav ul li::before{
	position: absolute;
	left: 0;
	color: #FFF;
	content: "/";
	display: block;
}
.headernavi nav ul li:first-child::before{
	display: none;
}
.headernavi nav ul li a{
	color: #FFF;
	font-size: 16px;
	text-decoration: none;
	padding: 0 1rem;
}
.headernavi nav ul li a:hover{
	text-decoration: underline;
}
.headernavi .headerlinks{
	display: inline-flex;
	margin-left: 2.125rem;
	margin-right: 0.25rem;
}
.headernavi .headerlinks a.headerbtn{
	color: #FFF;
	font-size: 0.9375rem;
	text-decoration: none;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 3.75rem;
}
.headernavi .headerlinks a.headerbtn:hover{
	opacity: 0.7;
}
.headernavi .headerlinks a.btncontact{
	background: #000;
	margin-right: 1.25rem;
	width: 11.875rem;
}
.headernavi .headerlinks a.btncontact div,.headernavi .headerlinks a.btnsignup div{
	position: relative;
	display: inline-block;
	padding-left: 2.25rem;
}
.headernavi .headerlinks a.btncontact div::before,.headernavi .headerlinks a.btnsignup div::before{
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	filter: brightness(0) saturate(100%) invert(100%) sepia(54%) saturate(2%) hue-rotate(227deg) brightness(107%) contrast(101%);
	content: "";
	display: block;
	margin: auto 0;
}
.headernavi .headerlinks a.btncontact div::before{
	background: url("../img/icon_contact.svg") no-repeat center center;
	background-size: cover;
	width: 1.6875rem;
	height: 1.6875rem;	
}
.headernavi .headerlinks a.btnsignup{
	background: #000;
	width: 18.75rem;
}
.headernavi .headerlinks a.btnsignup div::before{
	background: url("../img/icon_signup.svg") no-repeat center center;
	background-size: cover;
	width: 1.5rem;
	height: 1.5rem;
}

@media screen and (min-width: 1021px) and (max-width: 1600px){
	.headernavi nav ul li a{
		font-size: 15px;
	}
}

@media screen and (min-width: 768px) and (max-width: 1020px){
	.headernavi nav ul li a{
		font-size: 1.6rem;
	}
}

@media screen and (max-width: 767px){
	body{
		padding-top: 3.75rem;
	}
	/* header */
  header {
    padding: 0;
    height: 3.75rem;
  }
	.headerinner{
		height: 3.75rem;
		padding: 0.625rem;
		justify-content: center;
	}
	.headerlogo{
		width: auto;
	}
	.headerlogo img{
		height: 2.5rem;
		width: auto;
	}
	.headernavi{
		display: none;
	}
	.spmenu{
    width: 3.125rem;
    height: 3.125rem;
    cursor: pointer;
    position: absolute;
    top: 0.625rem;
    right: 10px;
  }
  .spmenu span{
    display: block;
    margin: 0;
    border: none;
    width: 50%;
    height: 1px;
    background: #fff;
    transform-origin:0% 50%;
    position: absolute;
    top: 0.75rem;
    left: 25%;
    transition: .3s;
  }
  .spmenu span:nth-of-type(2){
    top: 1.3125rem;
  }
  .spmenu span:nth-of-type(3){
    top: 1.875rem;
  }
  .spmenu.spclose span{
    left: 30%;        
  }   
  .spmenu.spclose span:nth-of-type(1){
    transform: rotate(45deg);
    width: 52%;
  }
  .spmenu.spclose span:nth-of-type(2){
    opacity: 0;
  }
  .spmenu.spclose span:nth-of-type(3){
    top: 1.875rem;
    transform: rotate(-45deg);
    width: 52%;
  }
	
	/* spnav */
	.spnav{
		position: fixed;
		top: 3.75rem;
		width: 100%;
		background: #F7F7F7;
		display: none;
		z-index: 100000;
	}
	.spnav ul li{
    width: 100%;
    max-width: 100%;
    border-top: 1px solid #666;
    border-left: none;
    border-right: none;
  }
	.spnav ul li a{
		color: #333;
		display: block;
		width: 100%;
		font-size: 0.9375rem;
    padding: 0.625rem;
    text-align: left;
		text-decoration: none;
	}
}

/* =====================================================
  footer
===================================================== */

footer{
	font-family: YakuHanMP, "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}
.footer_group{
	background: #f7f7f7;
	padding: 3.75rem 0;
}
.groupflex{
	display: flex;
	justify-content: center;
	column-gap: 3.125rem;
}
.groupsite{
	text-align: center;
}
.groupsite a{
	color: #333;
	text-decoration: none;
}
.grouplogo{
	display: flex;
	justify-content: center;
	align-items: center;
	height: 6.875rem;
}
.sitetitle{
	margin-top: 0.5rem;
}
.grouplogo.logo_sc img{
	height: 5.875rem;
	width: auto;
}
.grouplogo.logo_cm img{
	height: 5.3125rem;
	width: auto;
}
.grouplogo.logo_ec img{
	height: 6.875rem;
	width: auto;
}
.grouplogo.logo_lc img{
	height: 6.25rem;
	width: auto;
}
.footer_bottom{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
    align-items: center;
    padding: 5em 0 4.5em;
    text-align: center;
}
.footer_bottom .company{
	font-size: 0.8125rem;
}
.footer_bottom .company a{
	color: #000;
	text-decoration: none;
}
.footer_bottom .company a:hover{
	text-decoration: underline;
}
.footer_bottom .copy{
	font-size: 0.875rem;
	margin-top: 3.2em;
}

@media screen and (min-width: 1021px) and (max-width: 1600px){
	.sitetitle{
		font-size: 13px;
	}
	.footer_bottom .company {
		font-size: 13px;
	}
	.footer_bottom .copy{
		font-size: 13px;
	}
}

@media screen and (min-width: 768px) and (max-width: 1020px){
	.sitetitle{
		font-size: 13px;
	}
	.footer_bottom .company {
		font-size: 13px;
	}
	.footer_bottom .copy{
		font-size: 13px;
	}	
}

@media screen and (max-width: 767px){
	.footer_group {
		padding: 2rem 1.25rem 0.5rem;
	}
	.groupflex {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		column-gap: 4%;
	}
	.groupsite{
		margin-bottom: 1rem;
		width: 48%;
	}
	.grouplogo {
		height: 3.125rem;
	}
	.grouplogo.logo_sc img{
		height: 2.375rem;
	}
	.grouplogo.logo_cm img{
		height: 2.625rem;
	}
	.grouplogo.logo_ec img{
		height: 2.8125rem;
	}
	.grouplogo.logo_lc img{
		height: 3.125rem;
	}
	.sitetitle{
		font-size: 0.8125rem;
	}
	.footer_bottom {
		display: block;
		padding: 1.25rem;
	}
	.footer_bottom .company {
		text-align: center;
	}
	.footer_bottom .copy {
		font-size: 0.625rem;
		margin-top: 0.625rem;
	}
}

/* =====================================================
  page
===================================================== */

#pagehead{
	background: url("../img/pagehead_bg.webp") no-repeat center center;
	background-size: cover;
	font-family: YakuHanMP, "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 22.5rem;
}
#pagehead h2{
	color: #000068;
	font-size: 3.75rem;
	letter-spacing: 0.1em;
	text-align: center;
}
.page_contents{
	background: #e2e2e2;
	padding: 6.25rem 0;
}
.contentswrap{
	padding: 5rem;
}
.contentswrap.bgb{
	background: #dfedf7;
}
.sectionhead {
	text-align: center;
}
.sectionhead h2{
	color: #FFF;
	font-size: 2.25rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 0.8;
	text-align: center;
	margin-bottom: 2.125rem;
}
.sectionhead h2 span{
	color: #EEE;
	font-size: 1.125rem;
	letter-spacing: 0.05em;
}
.sectionhead p.leadtext{
	font-size: 0.9375rem;
	line-height: 1.8;
	letter-spacing: 0.05em;
}

@media screen and (max-width: 767px){
	#pagehead {
		height: 11.25rem;
	}
	#pagehead h2{
		font-size: 1.875rem;
	}
	.page_contents{
		padding: 3.125rem 0;
	}
	.contentswrap {
		padding: 2rem 1rem;
	}
	.sectionhead h2 {
		font-size: 1.75rem;
		line-height: 1.25;
		margin-bottom: 1.125rem;
	}
}
.pager{
  margin-top: 2rem;
  text-align: center;
}
.pager span,.pager a:hover{
  background: #000;
  border: 1px solid #000;
  color: #FFF;
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  margin: 0 3px;
}
.pager a{
  color: #000;
  background: #FFF;
  border: 1px solid #000;
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  margin: 0 3px;
}

@media screen and (min-width: 1021px) and (max-width: 1600px){
	.pager span,.pager a:hover,.pager a{
		width: 26px;
		height: 26px;
		font-size:13px;
	}
	.sectionhead h2{
		font-size:28px;
	}
	.sectionhead h2 span{
		font-size:14px;
	}
	.sectionhead p.leadtext{
		font-size:16px;
	}
	.sectionhead h3{
		font-size:24px;
	}
	.sectionhead h3 span{
		font-size:14px;
	}
	.sectionhead p{
		font-size:16px;
	}
}

@media screen and (min-width: 768px) and (max-width: 1020px){
	.pager span,.pager a:hover,.pager a{
		width: 26px;
		height: 26px;
		font-size:13px;
	}
	.sectionhead h2{
		font-size:24px;
	}
	.sectionhead h2 span{
		font-size:14px;
	}
	.sectionhead p.leadtext{
		font-size:14px;
	}
	.sectionhead h3{
		font-size:20px;
	}
	.sectionhead h3 span{
		font-size:12px;
	}
	.sectionhead p{
		font-size:15px;
	}
}