@charset "UTF-8";

/*--------------------------------------------------
  body
--------------------------------------------------*/
html {
  font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
}
body {
  color: #11294C;
  font-size: 15px;
  font-weight: 400;
  font-family: "BIZ UDPGothic", sans-serif;
	-webkit-text-size-adjust: none;
	word-break: break-word;
	word-wrap: break-word;
	overflow-wrap: break-word;
	overflow-x: hidden;
  letter-spacing: 0.2em;
  line-height: 1.5;
}
a {
	display: block;
  text-decoration: none;
	color: #11294C;
	transition: all 0.3s;
}
a:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
  -ms-filter: "alpha(opacity=60)";
}
img {
	width: 100%;
}
body, html {
	/* important */
	height: 100%;
}

.cf:after {
  content: "";
  clear: both;
  display: block;
}

.pc_only {
	display: block;
}
.sp_only {
  display: none;
}

.pc_br {
	display: block;
}
.sp_br {
  display: none;
}

@media screen and (max-width: 768px){
	body {
		font-size: 14px;
	}
	.pc_only {
		display: none;
	}
	.sp_only {
		display: block;
	}
	
	.pc_br {
		display: none;
	}
	.sp_br {
		display: block;
	}
}



/*--------------------------------------
　共通
---------------------------------------*/
.ta-c {
  text-align: center;
}

h2,
h3,
h4,
h5,
h6,
.cc {
	line-height: 1.8;
}
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
	display: block;
}
h2 br,
h3 br,
h4 br,
h5 br,
h6 br,
.cc br {
	line-height: 0;
}

.txt {
  font-size: 16px;
	text-align: justify;
  line-height: 2;
}
.lead {
  font-size: 16px;
  line-height: 2;
}

.br24 {
  border-radius: 24px;
}

.bd01 {
  border: 1px solid #95E5E5;
}

/*----- margin -----*/
.mb_10 {
	margin: 0 0 10px;
}
.mb_20 {
	margin: 0 0 20px;
}
.mb_30 {
	margin: 0 0 30px;
}
.mb_40 {
	margin: 0 0 40px;
}
.mb_50 {
	margin: 0 0 50px;
}
.mb_60 {
	margin: 0 0 60px;
}
.mb_70 {
	margin: 0 0 70px;
}
.mb_80 {
	margin: 0 0 80px;
}
.mb_100 {
	margin: 0 0 100px;
}
.m_auto {
	margin: auto;
}

@media screen and (max-width: 768px){
h2,
h3,
h4,
h5,
h6,
.cc {
  line-height: 1.6;
}

.txt {
  font-size: 14px;
  line-height: 1.8;
}
.lead {
  font-size: 14px;
  line-height: 1.8;
}

.br24 {
  border-radius: 12px;
}

/*----- margin -----*/
.mb_20 {
	margin: 0 0 10px;
}	
.mb_30 {
	margin: 0 0 20px;
}
.mb_40 {
	margin: 0 0 30px;
}	
.mb_50 {
	margin: 0 0 30px;
}	
.mb_60 {
	margin: 0 0 40px;
}	
.mb_70 {
	margin: 0 0 50px;
}
.mb_80 {
	margin: 0 0 60px;
}	
.mb_100 {
	margin: 0 0 60px;
}	  
}



/*--------------------------------------
　color
---------------------------------------*/
.cl-wh {
  color: #fff;
}
.cl-bl01 {
  color: #3C6AB4;
}
.cl-bl02 {
  color: #49BABA;
}
.cl-bl03 {
  color: #9EB4DA;
}


/*--------------------------------------
　font
---------------------------------------*/
.eng {
  font-family: "Libre Baskerville", serif;
  font-weight: 400;
}
.ff01 {
  font-family: "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", "Times New Roman",  serif;
}

.fb {
  font-weight: 700;
}
.fb span {
  font-weight: 700;
}

.vertical {
  -webkit-writing-mode: vertical-rl;
  -moz-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -ms-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 768px) {
  .vertical {
    -webkit-writing-mode: inherit;
    -moz-writing-mode: inherit;
    -ms-writing-mode: inherit;
    writing-mode: inherit;
  }

  .vertical_sp {
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
  }
}



/*--------------------------------------------------
  page link 調整
--------------------------------------------------*/
.anchor01 {
	display: block;
	padding-top: 100px;
  margin-top: -100px;
}

@media screen and (max-width: 750px){
.anchor01 {
	display: block;
	padding-top: 50px;
	margin-top: -50px;
}	
}



/*--------------------------------------
　Header
---------------------------------------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(255,255,255,0.58);
	width: 100%;
  height: 100px;
	min-width: 1200px;
  padding: 25px 20px;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  z-index: 1;
}

header .header_block {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

header .logo_header {
  width: 374px;
}

header .header_nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: calc(100% - 450px);
}
header .header_nav li {
  margin: 0 30px 0 0;
  font-size: 13px;
  text-align: center;
}
header .header_nav li:last-child {
  margin: 0 0 0 0;
}
header .header_nav li .eng {
  display: block;
  margin: 0 0 5px;
  font-size: 20px;
}
header .header_nav li.line {
  width: 30px;
}

@media screen and (max-width: 1366px) {
  header .logo_header {
    width: 300px;
  }

  header .header_nav {
    width: calc(100% - 350px);
  }
  header .header_nav li {
    margin: 0 20px 0 0;
    font-size: 13px;
  }
  header .header_nav li .eng {
    font-size: 18px;
  }
  header .header_nav li.line {
    width: 30px;
  }
}

@media screen and (max-width: 768px) {
  header {
    width: 100%;
    height: 60px;
    min-width: 100%;
    padding: 15px 10px;
  }

  header .header_block {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  header .logo_header {
    width: calc(60% + 50px);
  }

  header .header_nav {
    display: flex;
    justify-content: flex-end;
    width: 40%;
    margin-right: 50px;
  }
  header .header_nav li {
    display: none;
    margin: 0 0 0 0;
  }
  header .header_nav li:last-child {
    display: block;
    margin: 0 0 0 0;
  }
  header .header_nav li.line {
    width: 25px;
  }
}



/*--------------------------------------
　SP Navi
---------------------------------------*/
@media screen and (max-width: 768px) {
	/*----- hb-menu -----*/
	#hb-menu {
		display: table;
		position: absolute;
		top: 50%;
		right: 10px;
    transform: translate(0,-50%);
		background: #3C6AB4;
		width: 40px;
		height: 40px;
		cursor: pointer;
		z-index: 1000;
	}
	#hb-menu .hb-inner {
		display: table-cell;
		vertical-align: middle;
	}
	#hb-menu span {
		display: block;
		background: #fff;
		width: 19px;
		height: 1px;
		margin: auto;
		border-radius: 0;
		-webkit-transition: all .5s ease-in-out;
		-moz-transition: all .5s ease-in-out;
		transition: all .5s ease-in-out;
	}
	#hb-menu span:nth-of-type(2),
	#hb-menu span:nth-of-type(3) {
		margin-top: 6px;
	}
	/* ナビゲーションアイコン：アクティブ */
	.hb-open span:nth-of-type(1) {
		-webkit-transform: translateY(7px) translateX(0) rotate(45deg);
		-ms-transform: translateY(7px) translateX(0) rotate(45deg);
		transform: translateY(7px) translateX(0) rotate(45deg);
	}
	.hb-open span:nth-of-type(2) {
		margin-top: 5px;
		opacity: 0;
		-webkit-transform: translateY(9px);
		-ms-transform: translateY(9px);
		transform: translateY(9px);
	}
	.hb-open span:nth-of-type(3) {
		-webkit-transform: translateY(-7px) translateX(0) rotate(-45deg);
		-ms-transform: translateY(-7px) translateX(0) rotate(-45deg);
		transform: translateY(-7px) translateX(0) rotate(-45deg);
	}
	/* overlay */
	.overlay {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		background: transparent;
		pointer-events: none;
		z-index: 10;
		transition: 0.2s;
	}
	.hb-open .overlay {
		background: none;
		pointer-events: auto;
	}

	/*----- g-nav -----*/
	.g-nav {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 999;
	}
	.hb-open .g-nav .g-nav-inner {
		transform: translateX(0);
		-ms-transform: translateX(0);
		-webkit-transform: translateX(0);
		transform: translateZ(0);
		-ms-transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
	.g-nav .g-nav-inner {
		position: fixed;
		top: 0;
		right: 0;
		background: #E2EDFB;
		width: 100%;
		height: 100%;
    height: 100vh;
		padding: 60px 20px;
		box-sizing: border-box;
    overflow-x: hidden;
		overflow-y: auto;
		transition: .5s;
		transform: translateX(100%);
		-ms-transform: translateX(100%);
		-webkit-transform: translateX(100%);
		z-index: 10;
	}
	.g-nav .g-nav-inner::-webkit-scrollbar {
    display: none;
	}

  .hb_menu_wrapper {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  
  .hb_menu {
    background: #fff;
    margin: 0 0 10px;
    padding: 20px 15px;
    border-radius: 10px;
  }
  .hb_menu:nth-child(1),
  .hb_menu:nth-child(2),
  .hb_menu:nth-child(3){
    width: 100%;
  }
  .hb_menu:nth-child(4),
  .hb_menu:nth-child(5),
  .hb_menu:nth-child(6),
  .hb_menu:nth-child(7) {
    width: calc(50% - 5px);
  }
  
  .hb_menu_title {
    padding: 0 20px 0 0;
    font-size: 3.6vw;
		position: relative;
	}
  .hb_menu_title::before,
  .hb_menu_title::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    background: #48BABA;
    width: 15px;
    height: 1px;
    margin-top: -1px;
    transition: all 0.4s;
  }
  .hb_menu_title::after {
    transform: rotate(90deg);
  }
  .hb_menu_title.open::before {
    display: none;
  }
  .hb_menu_title.open::after {
    transform: rotate(180deg);
  }
  .hb_menu_title span.eng {
    display: block;
    margin: 0 0 5px;
    font-size: 3.5vw;
    transform: translateY(0) translateX(0) rotate(0deg);
  }
  .hb_menu_title.ta-c {
    padding: 0 0 0 0;
	}
  .hb_menu_title.ta-c::before,
  .hb_menu_title.ta-c::after {
    display: none;
  }
  
  .hb_menu_title_link {
		pointer-events: none;
  }
  
	.hb_menu_list {
		display: none;
    margin: 20px 0 0;
	}
	.hb_menu_list_item {
    margin: 0 0 15px;
	}
	.hb_menu_list_item:last-child {
    margin: 0 0 0;
	}
	.hb_menu_list_item a {
    padding: 0 0 0 12px;
    font-size: 3.8vw;
    position: relative;
	}
	.hb_menu_list_item a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0,-50%);
    background: #11294C;
    width: 6px;
    height: 1px;
  }
}  



/*--------------------------------------
　footer
---------------------------------------*/
footer {
	background: #fff;
	width: 100%;
	min-width: 1200px;
  margin: -40px 0 0;
	padding: 80px 0 80px;
  border-radius: 40px 40px 0 0;
  position: relative;
}

footer .footer_inner {
	max-width: 1200px;
	margin: auto;
}

footer .footer_block {
  display: flex;
  justify-content: space-between;
}

footer .footer_L {
  width: 45%;
}

footer .f_txt {
  font-size: 13px;
}

footer .logo_footer {
  width: 400px;
  margin: 15px 0 0;
}

footer .footer_info {
  display: flex;
  margin: 30px 0 0;
}
footer .footer_info .boxL {
  margin: 0 30px 0 0;
}
footer .address {
  font-size: 14px;
}
footer .link_map a {
  display: inline-block;
  margin: 10px 0 0;
  padding: 0 20px 0 0;
  font-size: 14px;
  text-decoration: underline;
  position: relative;
}
footer .link_map a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0,-50%);
  background: url("../images/group/icon-pin.png") left top no-repeat;
  background-size: contain;
  width: 14px;
  height: 21px;
  box-sizing: border-box;
}
footer .footer_info .boxR {
  width: 44px;
}

footer .copy {
  margin: 60px 0 0;
  color: #A0A7B9;
  font-size: 12px;
}

footer .footer_R {
  width: 50%;
}

.footer_nav {
  display: flex;
  justify-content: flex-end;
}
.footer_menu_title {
  margin: 0 40px 0 0;
}
.footer_menu_title:last-child {
  margin: 0 0 0 0;
}
.footer_menu_title a {
  font-size: 18px;
}
.footer_menu_list {
  margin: 20px 0 0;
}
.footer_menu_list_item {
  margin: 0 0 15px;
}
.footer_menu_list_item:last-child {
  margin: 0 0 0;
}
.footer_menu_list_item a {
  font-size: 16px;
}

.footer_sub_nav {
  display: flex;
  justify-content: flex-end;
  margin: 60px 0 0;
}
.footer_sub_nav li {
  margin: 0 15px 0 0;
}
.footer_sub_nav li:last-child {
  margin: 0 0 0 0;
}
.footer_sub_nav li a {
  font-size: 14px;
}

@media screen and (max-width: 768px) {
  footer {
    min-width: 100%;
    margin: -20px 0 0;
    padding: 40px 20px 40px;
    border-radius: 20px 20px 0 0;
  }

  footer .footer_inner {
    max-width: 100%;
  }

  footer .footer_block {
    display: block;
  }

  footer .footer_L {
    width: 100%;
  }
  
  footer .f_txt {
    text-align: center;
  }

  footer .logo_footer {
    width: 85%;
    margin: 10px auto 0;
  }

  footer .footer_info {
    display: block;
    margin: 20px 0 0;
  }
  footer .footer_info .boxL {
    margin: 0 0 0 0;
    text-align: center;
  }
  footer .link_map a {
    display: inline-block;
    margin: 10px 0 0;
    padding: 0 20px 0 0;
  }
  footer .footer_info .boxR {
    width: 35px;
    margin: 15px auto 0;
  }

  footer .copy {
    margin: 40px 0 0;
    font-size: 10px;
    text-align: center;
  }

  footer .footer_R {
    width: 100%;
  }

  .footer_nav {
    display: none;
  }

  .footer_sub_nav {
    display: none;
  }
}


/*--------------------------------------
　quick_navi
---------------------------------------*/
.quick_navi {
  position: fixed;
  top: 200px;
  right: 0;
  width: 390px;
  height: auto;
	z-index: 1;
	transition: all 0.5s ease;
	transform: translateX(100%);
	-ms-transform: translateX(100%);
	-webkit-transform: translateX(100%);
}
.quick_navi.is-open {
	transform: translateX(0);
	-ms-transform: translateX(0);
	-webkit-transform: translateX(0);
	transform: translateZ(0);
	-ms-transform: translateZ(0);
	-webkit-transform: translateZ(0);
}

.quick_navi_inner {
  transition: all 0.3s ease;
}

.quick_navi_ttl {
  display: block;
	position: absolute;
	top: 0;
	right: 100%;
  background: #3C6AB4;
  font-size: 18px;
  letter-spacing: 0.2em;
  padding: 20px 10px 45px;
  border-radius: 10px 0 0 10px;
  transition: all 0.3s ease;
  cursor: pointer;
}
.quick_navi_ttl::after {
  content: "";
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translate(-50%,0);
  background: url("../images/group/arrow02.png") left top no-repeat;
  background-size: contain;
  width: 25px;
  height: 25px;
  margin: auto;
  box-sizing: border-box;
}

.quick_navi_block {
  background: #3C6AB4;
  padding: 30px 20px;
  border-radius: 0 0 0 10px;
}

.quick_navi_block ul li {
  margin: 0 0 10px;
}
.quick_navi_block ul li:last-child {
  margin: 0 0 0;
}
.quick_navi_block ul li a {
  background: #fff;
  padding: 20px 70px 20px 20px;
  font-size: 18px;
  font-weight: 700;
  border-radius: 10px;
  position: relative;
}
.quick_navi_block ul li a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
  transform: translate(0,-50%);
  background: url("../images/group/arrow01.png") left top no-repeat;
  background-size: contain;
  width: 40px;
  height: 25px;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
  .quick_navi {
    top: inherit;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: auto;
    transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateY(100%);
    -ms-transform: translateY(100%);
    -webkit-transform: translateY(100%);
  }
  .quick_navi.is-open {
    transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateY(0);
    -ms-transform: translateY(0);
    -webkit-transform: translateY(0);
    transform: translateZ(0);
    -ms-transform: translateZ(0);
    -webkit-transform: translateZ(0);
  }

  .quick_navi_ttl {
    display: inline-block;
    top: inherit;
    bottom: 100%;
    right: inherit;
    left: 0;
    font-size: 15px;
    padding: 15px 40px 15px 15px;
    border-radius: 0 5px 0 0;
  }
  .quick_navi_ttl::after {
    position: absolute;
    top: 50%;
    bottom: inherit;
    left: inherit;
    right: 10px;
    transform: translate(0,-50%) scale(-1, 1) rotate(35deg);
    background: url("../images/group/arrow02.png") left top no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
    margin: 0 0 0 auto;
  }

  .quick_navi_block {
    padding: 15px 15px;
    border-radius: 0 10px 0 0;
  }

  .quick_navi_block ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .quick_navi_block ul li {
    width: calc(50% - 3px);
    margin: 0 0 5px;
    text-align: center;
  }
  .quick_navi_block ul li:last-child {
    width: 100%;
  }
  .quick_navi_block ul li a {
    padding: 15px 15px 15px 15px;
    font-size: 15px;
    border-radius: 5px;
  }
  .quick_navi_block ul li a:after {
    display: none;
  }
}



/*--------------------------------------
　link
---------------------------------------*/
.link01 a {
  display: inline-block;
	margin: 30px 0 0;
  padding: 0 50px 0 0;
	color: #49BABA;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	position: relative;
}
.link01 a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
  transform: translate(0,-50%);
  background: url("../images/group/arrow01.png") left top no-repeat;
  background-size: contain;
  width: 40px;
  height: 25px;
  box-sizing: border-box;
}

.linkBox {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 60px 0 0;
}
.linkBox .link_item {
  width: calc(50% - 20px);
  margin: 0 0 40px;
}
.linkBox .link_item a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 20px 20px;
  border-radius: 10px;
  border: 1px solid #48BABA;
  position: relative;
}
.linkBox .link_item a::after {
	content: "";
	position: absolute;
  bottom: 20px;
	right: 20px;
  background: url("../images/group/arrow01.png") left top no-repeat;
  background-size: contain;
  width: 40px;
  height: 25px;
  box-sizing: border-box;
}
.linkBox .imgBox {
  width: 130px;
}
.linkBox .imgBox img {
  border-radius: 10px;
}
.linkBox .txtBox {
  width: calc(100% - 160px);
  padding: 0 0 20px;
}
.linkBox .ttl02 {
  font-size: 18px;
}
.linkBox p.txt {
  margin: 15px 0 0;
}

@media screen and (max-width: 768px) {
  .link01 {
    text-align: center;
  }
  .link01 a {
    margin: 20px 0 0;
    padding: 0 40px 0 0;
  }
  .link01 a:after {
    width: 32px;
    height: 20px;
  }
  
  .linkBox {
    display: block;
    margin: 40px 0 0;
  }
  .linkBox .link_item {
    width: 100%;
    margin: 0 0 15px;
  }
  .sec-info .info_block02 .item:last-child {
    margin: 0 0 0;
  }
  .linkBox .link_item a {
    padding: 15px 15px 15px;
    border-radius: 5px;
  }
  .linkBox .link_item a::after {
    bottom: 15px;
    right: 15px;
    width: 32px;
    height: 20px;
  }
  .linkBox .imgBox {
    width: 100px;
  }
  .linkBox .imgBox img {
    border-radius: 5px;
  }
  .linkBox .txtBox {
    width: calc(100% - 120px);
    padding: 0 0 15px;
  }
  .linkBox .ttl02 {
    font-size: 16px;
  }
  .linkBox p.txt {
    margin: 5px 0 0;
  }
}



/*--------------------------------------
　btn01
---------------------------------------*/
.btn .small {
	font-size: 14px;
}

.btn01 a {
  display: block;
  background: #E0F9F9;
  max-width: 400px;
	margin: 40px 0 0;
  padding: 30px 60px 30px 30px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
  border-radius: 10px;
	position: relative;
}
.btn01 a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
  transform: translate(0,-50%);
  background: url("../images/group/arrow01.png") left top no-repeat;
  background-size: contain;
  width: 40px;
  height: 25px;
  box-sizing: border-box;
}
.btn01.auto a {
	margin: 40px auto 0;
}
.btn_area_center .btn01 a{
  margin: 40px auto;
}

.btn02 a {
  display: block;
  background: #fff;
  max-width: 400px;
	margin: 40px 0 0;
  padding: 30px 80px 30px 30px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
  border-radius: 10px;
	position: relative;
}
.btn02 a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
  transform: translate(0,-50%);
  background: url("../images/group/arrow01.png") left top no-repeat;
  background-size: contain;
  width: 40px;
  height: 25px;
  box-sizing: border-box;
}
.btn02.auto a {
	margin: 40px auto 0;
}

.btn03 a {
  display: block;
  background: rgba(255,255,255,0.1);
  max-width: 260px;
	margin: 40px auto 0;
  padding: 20px 30px 20px 30px;
  color: #fff;
	font-size: 14px;
	font-weight: 700;
  text-align: center;
	line-height: 1.5;
  border-radius: 100px;
  border: 1px solid #fff;
	position: relative;
}

.btn-line a {
  background: #03C755;
  max-width: 300px;
  margin: 30px auto 0;
  padding: 15px 30px 15px 40px;
  color: #fff;
  font-size: 16px;
  text-align: center;
  line-height: 1.5;
  border-radius: 100px;
	position: relative;
}
.btn-line a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 10px;
  transform: translate(0,-50%);
  background: url("../images/group/icon-line.png") left top no-repeat;
  background-size: contain;
  width: 32px;
  height: 32px;
  box-sizing: border-box;
}

.btnBox {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 80px 0 0;
}
.btnBox > div {
  width: calc((100% - 40px) / 3);
  margin: 0 0 20px 0;
}
.btnBox > div:nth-of-type(3n-1):nth-last-of-type(1) {
	margin: 0 auto 20px 20px;
}
.btnBox > div a {
  display: flex;
  align-items: center;
  max-width: 100%;
  margin: 0 0 0;
}

.btn_wrap {
  /*margin: 30px 0 0;*/
}
.btn_wrap .btn {
  margin: 0 0 15px;
}
.btn_wrap .btn:last-child {
  margin: 0 0 0;
}
.btn_wrap .btn a {
  max-width: 100%;
  margin: 0 0 0;
}

@media screen and (max-width: 768px) {
  .btn .small {
    font-size: 13px;
  }
  
  .btn01 a {
    max-width: 100%;
    margin: 20px 0 0;
    padding: 20px 50px 20px 20px;
    font-size: 15px;
    border-radius: 5px;
  }
  .btn01 a:after {
    right: 15px;
    width: 32px;
    height: 20px;
  }
  .btn01.auto a {
    margin: 20px auto 0;
  }
  
  .btn02 a {
    max-width: 100%;
    margin: 20px 0 0;
    padding: 20px 50px 20px 20px;
    font-size: 15px;
    border-radius: 5px;
  }
  .btn02 a:after {
    right: 15px;
    width: 32px;
    height: 20px;
  }
  .btn02.auto a {
    margin: 20px auto 0;
  }
  
  .btn03 a {
    max-width: 80%;
    margin: 30px auto 0;
    padding: 18px 15px 18px 15px;
  }
  
  .btn-line a {
    max-width: 70%;
    margin: 20px auto 0;
    padding: 12px 25px 12px 35px;
    font-size: 14px;
  }
  .btn-line a::before {
    left: 10px;
    width: 26px;
    height: 26px;
  }
  
  .btnBox {
    display: block;
    margin: 40px 0 0;
  }
  .btnBox > div {
    width: 100%;
    margin: 0 0 15px;
  }
  .btnBox > div {
    width: 100%;
    margin: 0 0 15px 0;
  }
  .btnBox > div:nth-of-type(3n-1):nth-last-of-type(1) {
    margin: 0 0 15px 0;
  }  
  .btnBox > div:last-child {
    margin: 0 0 0;
  }
  .btnBox > div a {
    display: block;
  }
  
  .btn_wrap {
    /*margin: 20px 0 0;*/
  }
  .btn_wrap .btn {
    margin: 0 0 10px;
  }
}

/*--------------------------------------
　btn_contents
---------------------------------------*/
.btn01_contents {
  background: #E0F9F9;
  max-width: 400px;
	margin: 40px 0 0;
  padding: 30px 60px 30px 30px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
  border-radius: 10px;
	position: relative;
}
.btn02_contents {
  display: block;
  background: #fff;
  max-width: 400px;
	margin: 40px 0 0;
  padding: 30px 80px 30px 30px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
  border-radius: 10px;
	position: relative;
}

@media screen and (max-width: 768px) {
  .btn01_contents {
    max-width: 100%;
    margin: 20px 0 0;
    padding: 20px 50px 20px 20px;
    font-size: 15px;
    border-radius: 5px;
  }
  .btn02_contents {
  max-width: 100%;
  margin: 20px 0 0;
  padding: 20px 50px 20px 20px;
  font-size: 15px;
  border-radius: 5px;
  }
}
/*--------------------------------------
　flexBox
---------------------------------------*/
.flexBox {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 30px 0 0;
}
.flexBox.jc-s {
  justify-content: flex-start;
}
.flexBox.jc-c {
  justify-content: center;
}
.flexBox.ai-c {
  align-items: center;
}

.flexBox .flex_item {
  width: 45%;
}
.flexBox .flex_item + .flex_item{
  margin-bottom: 3em;
}

@media screen and (max-width: 768px) {
  .flexBox {
    display: block;
    margin: 20px 0 0;
  }
  .flexBox .flex_item {
    width: 100%;
    margin: 0 0 30px;
  }
  .flexBox .flex_item:last-child {
    width: 100%;
    margin: 0 0 0;
  }

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



/*--------------------------------------
　tabArea
---------------------------------------*/

/*----- tabArea -----*/
.tabArea {
  display: flex;
	justify-content: flex-start;
  border-bottom: 1px solid #E6E6E6;
}
.tabArea li {
  padding: 0 10px 15px;
  margin: 0 40px 0 0;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  position: relative;
  cursor: pointer;
}
.tabArea li.active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  border-bottom: 1px solid #6BB8B3;
}

/* tabContents */
.tabContents {
	display: none;
}
.tabContents.show {
	display: block;
}

@media screen and (max-width: 768px) {
.tabArea {
  overflow-x: scroll;
  overflow-y: hidden;
  white-space: nowrap;
  margin: 30px 0 0;
  padding: 0 0 1px;
}
.tabArea::-webkit-scrollbar {
  display: none;
}
.tabArea li {
  padding: 0 5px 10px;
  margin: 0 20px 0 0;
  font-size: 14px;
  white-space: nowrap;
}  
}
  


/*--------------------------------------
　post_box
---------------------------------------*/
/*.post_box {
  background: #fff;
  padding: 40px 60px 40px;
  border-radius: 16px;
}

.post_box .post_block {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.post_box .boxL {
  width: 20%;
}

.post_box .sec_ttl {
  font-size: 32px;
}

.post_box .boxR {
  width: 75%;
}

.post_box .post_list {
  margin: 30px 0 0;
}
.post_box .post_list li {
  margin: 0 0 20px;
}
.post_box .post_list li:last-child {
  margin: 0 0 0;
}
.post_box .post_list .list_inner {
	display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.post_box .post_list .date {
  width: 17%;
  padding: 5px 0;
  font-size: 14px;
}
.post_box .post_list .cate {
  background: #E2EDFB;
  width: 140px;
  padding: 5px 5px 4px;
  color: #3C6AB4;
  font-size: 13px;
  text-align: center;
  border-radius: 100px;
}
.post_box .post_list .pst_ttl {
  width: calc(80% - 140px);
  padding: 5px 0;
  font-size: 16px;
}*/

/*@media screen and (max-width: 768px) {
  .post_box {
    padding: 30px 20px 30px;
    border-radius: 8px;
  }

  .post_box .post_block {
    display: block;
  }

  .post_box .boxL {
    width: 100%;
  }
  
  .post_box .sec_ttl {
    font-size: 20px;
    text-align: center;
  }

  .post_box .boxR {
    width: 100%;
  }


  

  .post_box .post_list {
    margin: 20px 0 0;
  }
  .post_box .post_list li {
    margin: 0 0 20px;
  }
  .post_box .post_list .list_inner {
    justify-content: flex-start;
    align-items: center;
  }  
  .post_box .post_list .date {
    width: inherit;
    margin: 0 10px 0 0;
    padding: 0 0;
    font-size: 12px;
  }
  .post_box .post_list .cate {
    width: inherit;
    padding: 3px 15px 2px;
    font-size: 10px;
		display: inline-block;
  }
  .post_box .post_list .pst_ttl {
    width: 100%;
    margin: 10px 0 0;
    padding: 0 0;
    font-size: 14px;
  }
  
  .post_box .link01 a {
    margin: 30px 0 0;
  }
}*/



/*--------------------------------------
　table_parts
---------------------------------------*/
.table_parts table {
  width: 100%;
  box-sizing: border-box;
}

.table_parts th {
  background: #E0F9F9;
  padding: 20px 20px;
  color: #49BABA;
  font-size: 16px;
  box-sizing: border-box;
  border-bottom: 1px solid #fff;
}
.table_parts tr:first-child th {
  border-top: 1px solid #F4F4F4;
}

.table_parts td {
  padding: 20px 20px;
  font-size: 16px;
  box-sizing: border-box;
  border-bottom: 1px solid #F4F4F4;
}
.table_parts tr:first-child td {
  border-top: 1px solid #F4F4F4;
}

@media screen and (max-width: 768px) {
  .table_parts th {
    padding: 15px 15px;
    font-size: 14px;
  }

  .table_parts td {
    padding: 15px 15px;
    font-size: 14px;
  }
}



/*--------------------------------------
　outline_parts
---------------------------------------*/
.outline_parts .boxL {
  width: 40%;
}

.outline_parts .btn_box {
  display: flex;
  align-items: center;
  margin: 20px 0 0;
}
.outline_parts .btn-line {
  width: 190px;
  margin: 0 30px 0 0;
}
.outline_parts .btn-line a {
  max-width: 100%;
  margin: 0 0 0;
}
.outline_parts .link01 a {
  margin: 0 0 0;
}

.outline_parts .hours {
  background: #FDF4F0;
  margin: 30px 0 0;
  padding: 20px 30px;
  border-radius: 10px;
}
.outline_parts .hours_txt {
  margin: 0 0 5px;
  font-size: 17px;
}
.outline_parts .hours_txt:last-child {
  margin: 0 0 0;
}
.outline_parts .hours_txt .large {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 0 20px;
  font-size: 30px;
}
.outline_parts .hours h3 {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.0em;
  margin: 0 0 15px;
}

.outline_parts .boxR {
  width: 55%;
}

.outline_parts .table_parts {
  margin: 0 0 0!important;
}
.outline_parts .table_parts th {
  width: 30%;
}
.outline_parts .table_parts p {
  margin: 0 0 0;
}
.outline_parts .table_parts a {
  text-decoration: underline;
  display: inline-block;
}

@media screen and (max-width: 768px) {
  .outline_parts .boxL {
    width: 100%;
  }

  .outline_parts .txt {
    text-align: center!important;
  }

  .outline_parts .btn_box {
    display: block;
    margin: 15px 0 0;
  }
  .outline_parts .btn-line {
    width: 100%;
    margin: 0 0 0 0;
  }
  .outline_parts .btn-line a {
    max-width: 80%;
    margin: 0 auto 0;
  }
  .outline_parts .link01 a {
    margin: 15px 0 0;
  }

  .outline_parts .hours {
    margin: 20px 0 0;
    padding: 20px 20px;
    border-radius: 5px;
  }
  .outline_parts .hours_txt {
    margin: 0 0 10px;
    font-size: 16px;
    text-align: center;
  }
  .outline_parts .hours_txt .large {
    display: block;
    margin: 0 0 0 0;
    font-size: 28px;
  }
  .outline_parts .hours h3 {
    font-size: 20px;
    text-align: center;
    margin: 0 0 20px;
  } 

  .outline_parts .boxR {
    width: 100%;
    margin: 30px 0 0;
  }

  .outline_parts .table_parts th {
    width: 35%;
  }
}



/*--------------------------------------
　map
---------------------------------------*/
.map {
	position: relative;
	width: 100%;
	height: 0;
	margin: 40px auto 0;
	padding-top: 28%;
}

.map iframe {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
  border-radius: 10px;
}

@media screen and (max-width: 768px) {
  .map {
    margin: 20px auto 0;
    padding-top: 90%;
  }
}



