@charset "UTF-8";
/* CSS Document */
/* ---------------------
  - common
  - mv
  - footer
  - page_top
  - @media
--------------------- */
/* ==========================================
  common
========================================== */
html {
  font-size: 62.5%;
}
body {
  font-size: 1.6rem;
  font-weight: 300;
}
body, html {
  background: #fff;
  color: #222;
  margin: 0;
  padding: 0;
  letter-spacing: 0.08em;
  line-height: 1.5;
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
* {
  box-sizing: border-box;
}
h1, h2, h3, h4 {
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.2;
  padding: 0;
  margin: 0;
}
p {
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.8;
  padding: 0;
  margin: 0;
}
.bold {
  font-weight: bold;
}
.btn a {
  display: block;
  width: 90%;
  margin: 20px auto 0;
  padding: 10px;
  border-radius: 4px;
  color: #fff;
}
.btn_entry_02 a{
	position: fixed;
  top: 360px;
  right: 0;
	display: block;
	background: #1a4db6;
	color: #fff;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright;
	padding: 15px;
	z-index: 99999;
}
.f12{
	font-size: 12px;
}
.btn.org a {
  background: #ed8924;
}
.bg {
  background: url(../img/bg.jpg);
  background-size: cover;
  padding: 60px 10px;
}
.bg_02 {
  background: url(../img/bg_02.jpg);
  background-size: contain;
  padding: 60px 10px;
}
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}
.redsen {
  text-decoration: line-through;
  text-decoration-color: red; /* 色の指定 */
  text-decoration-style: solid; /* スタイルの指定 */
}
/*////// line //////*/
.line_ye{
	background: linear-gradient(transparent 50%, yellow 50%);
	}
/*///// margin padding /////*/
.mgt10 {
  margin-top: 10px;
}
.mgt20 {
  margin-top: 20px;
}
.mgt30 {
  margin-top: 30px;
}
.mgt40 {
  margin-top: 40px;
}
.mgt50 {
  margin-top: 50px;
}
.mgt60 {
  margin-top: 60px;
}
.mgb10 {
  margin-bottom: 10px;
}
.mgb20 {
  margin-bottom: 20px;
}
.mgb30 {
  margin-bottom: 30px;
}
.mgb40 {
  margin-bottom: 40px;
}
.mgb50 {
  margin-bottom: 50px;
}
.mgb60 {
  margin-bottom: 60px;
}
.mgb70 {
  margin-bottom: 70px;
}
/*///// txt_align /////*/
.center {
  text-align: center;
}
.left {
  text-align: left;
}
.right {
  text-align: right;
}
/*///// none /////*/
.pc_none {
  display: none;
}
.sp_none {
  display: block;
}
@media screen and (max-width: 480px) {
  /*///// none /////*/
  .pc_none {
    display: block;
  }
  .sp_none {
    display: none;
  }
}
.pc_img {
	display: block;
}
.sp_img {
	display: none;
}
 @media screen and (max-width: 770px) {
.pc_img {
	display: none;
}
.sp_img {
	display: block;
}
}
/* ==========================================
  content
========================================== */
.inner {
  max-width: 1200px;
  margin: auto;
  width: 100%;
}
.title {
  background: url("../img/bg_title.png") repeat;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 12px;
  padding-top: 12px;
}
.title h2 {
  color: #000;
  font-size: 26px;
  display: inline-block;
  text-align: center;
  margin: 0 20px;
}
.title h2 span {
  display: block;
  font-size: 20px;
}


/* ==========================================
  header
========================================== */

header{
	display: none;
	border-radius: 0 0 6px 6px; 
box-shadow: 2px 2px 2px 1px rgb(0 0 0 / 20%);
	padding: 10px 20px;
	background: rgba(255,255,255,.9);
	width: 90%;
	margin: 0 auto;
	z-index: 9999;
	}
/* 上部に固定させるスタイルを用意 */
.fixed{
	display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}
header .logo{
	text-align: left;
	padding-bottom: 10px;
	}
header .logo img{
	width: auto;
	margin: 0;
	}
header h1{
	font-size: inherit;
	text-align: left;
	margin: 0;
	padding: 0;
	}
	header .otoiawase a{
		display: block;
		position: absolute;
		top: 10px;
		background: #e88139;
		border-radius: 4px;
		color: #fff;
		padding: 10px;
		}
	header .otoiawase a:hover{
		background: #F60;
		}
	header .otoiawase .far{
		color: #fff;
		}

@media (max-width: 480px) {
header{
	width: 98%;
	padding: 15px 10px;
	}
.btn_entry a{
	width: 50%;
	top:auto;
	bottom: 0;
	left: 0;
	text-align: center;
  -ms-writing-mode: tb-rl;
  writing-mode:horizontal-tb;
  text-orientation: upright;
}
.btn_entry_02 a{
	width: 50%;
	top:auto;
	bottom: 0;
	right: 0;
	text-align: center;
  -ms-writing-mode: tb-rl;
  writing-mode:horizontal-tb;
  text-orientation: upright;
}
  header {
    height: 60px;
  }
.menu-trigger {
  top: 10px;
}
header .logo{
	padding-bottom: 0;
	}
header .logo img{
	width: 45%;
	}
}

/* ==========================================
  sidebtn
========================================== */
.sidebtn{
		 display: flex;
	 }
.btn_entry {
  color: #fff;
}
.btn_entry a {
  position: fixed;
	top: 100px;
	right: 0;
  display: block;
  background: #e88139;
  color: #fff;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright;
  padding: 15px;
  z-index: 99999;
}

@media (max-width: 480px) {
.btn_entry a{
	width: 50%;
	top:auto;
	bottom: 0;
	right: 0;
	text-align: center;
  -ms-writing-mode: tb-rl;
  writing-mode:horizontal-tb;
  text-orientation: upright;
}
}
/* ==========================================
  nav
========================================== */
.overlay {
	content: "";
	display: block;
	width: 0;
	height: 0;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	opacity: 0;
	transition: opacity .5s;
}
.overlay.open {
	width: 100%;
	height: 100%;
	opacity: 1;
}
.menu-trigger {
	background: rgba(0,71,157,0.1);
	display: inline-block;
	width: 40px;
	height: 40px;
	vertical-align: middle;
	cursor: pointer;
  position: absolute;
  top: 40px;
  right: 10px;
	z-index: 100;/*   transform: translateX(0);
  transition: transform .5s;
 */
}
/* .menu-trigger.active {
  transform: translateX(-250px);
}
 */.menu-trigger span {
	display: inline-block;
	box-sizing: border-box;
	position: absolute;
	left: 10%;
	width: 80%;
	height: 4px;
	background-color: #00479d;
	transition: all .5s;
}
.menu-trigger.active span {
	background-color: #fff;
}
.menu-trigger span:nth-of-type(1) {
	top: 6px;
}
.menu-trigger.active span:nth-of-type(1) {
	transform: translateY(12px) rotate(-45deg);
}
.menu-trigger span:nth-of-type(2) {
	top: 18px;
}
.menu-trigger.active span:nth-of-type(2) {
	opacity: 0;
}
.menu-trigger span:nth-of-type(3) {
	bottom: 6px;
}
.menu-trigger.active span:nth-of-type(3) {
	transform: translateY(-12px) rotate(45deg);
}
nav ul {
	display: block;
}
nav {
	color: #fff;
	font-size: 14px;
	width: 280px;
	height: 100%;
	padding-top: 160px;
	padding-left: 10px;
	background-color:rgba(0,71,157,1);
	position: fixed;
	top: 0;
	right: 0;
	z-index: 10;
	transform: translate(280px);
	transition: all .5s;
}
nav.open {
	transform: translateZ(0);
}
nav col {
	width: 100%;
}
nav li {
	width: 100%;
}
nav li a {
	display: block;
	color: #fff;
	text-decoration: none;
	padding:  20px;
	border-bottom: 1px solid #fff;
}
@media (max-width: 480px) {
.menu-trigger {
  top: 10px;
}
}
/* ==========================================
  main
========================================== */
#main {}
h2{
	font-size: 38px;
	font-weight: bold;
	text-align: center;
	}
.ttl{
	display: inline-block;
	border-bottom: 2px solid #000;
	border-top: 2px solid #000;
	padding: 30px 15px;
	margin-bottom: 30px;
	}
/* ==========================================
  date
========================================== */
#date {
  background: #fff100;
}
#date .inner {
  display: flex;
  justify-content: center;
  align-items: center;
}
#date .date {
  margin-top: -100px;
  width: 30%;
}
@media (max-width: 480px) {
  #date .inner {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  #date .date {
    padding-bottom: 10px;
  }
}
/* ==========================================
  taiken
========================================== */
#taiken {
  background: url(../img/bg.jpg);
  background-size: cover;
  text-align: center;
  padding: 60px 10px;
}
/* ==========================================
  tokuten
========================================== */
#tokuten {
  text-align: center;
  margin-top: 60px;
  margin-bottom: 40px;
}
#tokuten .tokuten_pc {
  display: block;
}
#tokuten .tokuten_sp {
  display: none;
}
@media (max-width: 600px) {
  #tokuten .tokuten_pc {
    display: none;
  }
  #tokuten .tokuten_sp {
    display: block;
  }
}
/* ==========================================
  catch
========================================== */
#catch {
  background: url("../img/chach_bg.jpg") repeat-x center bottom;
  text-align: center;
  padding: 50px 10px;
}
#catch .catch_pc {
  display: block;
}
#catch .catch_sp {
  display: none;
}
@media (max-width: 600px) {
  #catch {
    background: none;
    text-align: center;
    padding: 0;
  }
  #catch .catch_pc {
    display: none;
  }
  #catch .catch_sp {
    display: block;
  }
}
/* ==========================================
  course
========================================== */
#course ul {
  display: flex;
  flex-wrap: wrap;
  margin-top: 40px;
}
#course ul li {
  width: 30.3333%;
  margin: 40px 1.5%;
}
#course .course_name {
  background: #eee;
  padding: 15px 10px;
  font-size: 20px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 20px;
}
#course .course_name span {
  display: block;
  font-size: 15px;
}
#course h4 {
  margin-top: 20px;
  font-weight: 600;
  padding-left: 10px;
  padding-right: 10px;
}
#course h4 img {
  vertical-align: middle;
}
#course ul p {
  margin-top: 5px;
  padding-left: 10px;
  padding-right: 10px;
}
#course .oyako {
  border: 4px solid #eee;
  border-radius: 4px;
  width: 80%;
  margin: 20px auto;
}
#course .oyako h4 {
  background: #eee;
  font-size: 20px;
  font-weight: 600;
  padding: 20px;
  margin: 0;
  text-align: center;
}
#course .oyako .box {
  display: flex;
  align-items: center;
  margin: 40px;
}
#course .oyako .box .img {
  width: 40%;
  text-align: center;
}
#course .oyako .box .txt {
  font-size: 20px;
  font-weight: 600;
  width: 60%;
  text-align: center;
}
#course .oyako .box .price {
  font-size: 26px;
  margin-top: 30px;
}
#course .oyako .box .price span {
  font-size: 36px;
  background: linear-gradient(transparent 70%, #f43c4b 70%);
}
#course .btn_red {
  text-align: center;
  margin-top: 40px;
}
#course .btn_red a {
  display: inline-block;
  background: #e60012;
  color: #fff;
  font-weight: 600;
  padding: 20px 30px;
  text-align: center;
}
#course .btbtn_red a:hover {
  background: #d10e1d;
}
@media (max-width: 780px) {
  #course ul li {
    width: 48%;
    margin: 40px 1%;
  }
  #course .oyako .box {
    display: block;
  }
  #course .oyako .box .img, #course .oyako .box .txt {
    width: 100%;
    text-align: center;
  }
}
@media (max-width: 480px) {
  #course .oyako {
    width: 98%;
  }
  #course ul li {
    width: 98%;
    margin: 40px 1%;
  }
  #course .oyako .box .price {
    font-size: 18px;
    margin-top: 30px;
  }
  #course .oyako .box .price span {
    font-size: 30px;
    background: linear-gradient(transparent 70%, #f43c4b 70%);
  }
}
/* ==========================================
  need
========================================== */
#need ul {
  display: flex;
  align-content: center;
  flex-wrap: wrap;
  margin-top: 40px;
}
#need ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 4px solid #eee;
  border-radius: 4px;
  font-size: 18px;
  font-weight: 600;
  width: 31.3333%;
  margin: 10px 1%;
  padding: 20px;
  text-align: center;
}
#need ul span {
  display: block;
}
@media (max-width: 780px) {
  #need ul li {
    width: 48%;
  }
}
@media (max-width: 480px) {
  #need ul li {
    width: 98%;
  }
}
/* ==========================================
  facility
========================================== */
#facility .imgbox {
  background: url("../img/facility_img_01.jpg") no-repeat center center;
  background-size: cover;
  height: 440px;
}
#facility .imgbox02 {
  background: url("../img/facility_img_02.jpg") no-repeat center top;
  background-size: cover;
  height: 835px;
}
#facility .inner, #facility h3 {
  padding: 10px;
}
@media (max-width: 480px) {
  #facility .imgbox, #facility .imgbox02 {
    background: none;
    height: auto;
  }
}
/* ==========================================
  access
========================================== */
#access .inner {
  display: flex;
  align-items: center;
  padding: 40px 10px;
}
#access .txt {
  width: 40%;
  margin: 10px 0;
}
#access .txt h3 {
  margin-bottom: 30px;
}
#access .map {
  width: 60%;
  margin: 10px 0;
}
#access .bus {
  max-width: 1200px;
  margin: 50px auto 0;
  text-align: center;
}
#access .bus h3 img {
  vertical-align: middle;
}
#access .bus ul {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}
#access .bus ul li a {
  border: 2px solid #000;
  font-size: 600;
  display: block;
  padding: 20px;
  margin: 10px;
}
#access .bus ul li a:hover {
  background: #333;
  color: #fff;
}
@media (max-width: 780px) {
  #access .bus ul {
    display: block;
    justify-content: center;
    margin-top: 30px;
  }
  #access .inner {
    display: block;
  }
  #access .txt, #access .map {
    text-align: center;
    width: 98%;
    margin: 10px 1%;
  }
}
/* ==========================================
  contact
========================================== */
#contact .inner {
  font-weight: 500;
  text-align: center;
  padding: 40px 10px;
}
#contact table {
  width: auto;
  margin: 10px auto;
}
#contact table th, #contact table td {
  font-weight: 500;
  padding: 2px;
  text-align: left;
}
#contact table th {
  padding-right: 20px;
}
#contact .col {
  display: flex;
  justify-content: center;
  align-items: center;
}
#contact .col .tel, #contact .col .form {
  padding: 10px;
}
@media (max-width: 480px) {
  #contact .col {
    display: block;
  }
}
/* ==========================================
  msgbox
========================================== */
.msgbox{
	display: flex;
	margin-top: 60px;
	margin-bottom: 60px;
	text-align: left;
}
.msgbox p{
	line-height: 2;
}
.msgbox .cbox, .msgbox .pbox{
	background: #fff;
	border: 3px solid #70bbef;
	width:48%;
	margin: 10px 1%;
	padding: 60px 20px 20px;
	position: relative;
}
.msgbox .cbox img.icon, .msgbox .pbox img.icon{
	position: absolute;
   top: -60px;
   left: 50%;
   transform: translateX(-50%);

}
.msgbox img.pic{
	float: right;

}
 @media screen and (max-width: 780px) {

.msgbox img.pic{
	float: none;

}
}
 @media screen and (max-width: 480px) {

.msgbox{
	display: block;
}
.msgbox .cbox, .msgbox .pbox{
	width:98%;
	margin: 60px 1% 10px;
}
}
/* ==========================================
  area02
========================================== */
/*------ area02 ------*/
#area02{
	background: url(https://e-hakuyo-s.net/wp-content/themes/hakuyo/img/2022_02/bg_02.jpg) repeat;
	}
#area02 .inner{
  max-width: 1000px;
  margin: 0 auto;
  padding: 60px 15px;
	}
#area02 h3{
	font-size: 32px;
	text-align: left;
	}
#area02 p{
	margin-top: 15px;
	margin-bottom: 40px;
	text-align: left;
	line-height: 1.5;
	}
.far{
	color: #1a4db6;
	}
@media (max-width: 960px) {
/*------ area02 ------*/
#area02 h2{
	font-size: 24px;
	}
#area02 h3{
	font-size: 22px;
	}
}
/* ==========================================
  area03
========================================== */
/*------ area03 ------*/
#area03{
	background: url(https://e-hakuyo-s.net/wp-content/themes/hakuyo/img/2024_07/spiral_bg.jpg) no-repeat center center;
	background-size: cover;
	text-align: center;
	}
#area03 .inner{
  max-width: 1000px;
  margin: 0 auto;
  padding: 60px 15px;
	}
#area03 h2{
	display: inline-block;
	color: #fff;
	border: 2px solid #fff;
	padding: 20px;
	}
#area03 p{
	font-size: 26px;
	color: #fff;
	line-height: 1.5;
	}
@media (max-width: 960px) {
/*------ area03 ------*/
#area03 h2{
	font-size: 24px;
	}
#area03 p{
	font-size: 20px;
	text-align: left;
	}
}
/* ==========================================
  area04
========================================== */
#area04 {}
#area04 .box {
  background: #ceefff;
  border-radius: 6px;
  padding: 20px 15px;
  text-align: center;
  margin: 10px;
}
#area04 p {
  line-height: 1.5;
	font-size: 18px;
}
#area04 .col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
#area04 .col-3 {
  width: 32%;
  margin: 0 0.65%;
}
@media (max-width: 960px) {
#area04 h2{
	font-size: 24px;
	}
  #area04 .col-3 {
    width: 100%;
    margin: 10px;
  }
}
/* ==========================================
  preopen
========================================== */
#preopen {}
#preopen .box {
  background: #ceefff;
  border-radius: 6px;
  padding: 20px 15px;
  text-align: center;
  margin: 10px;
}
#preopen p {
  line-height: 1.5;
	font-size: 18px;
}
#preopen .col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
#preopen .col-3 {
  width: 32%;
  margin: 0 0.65%;
}
@media (max-width: 960px) {
#preopen h2{
	font-size: 24px;
	}
  #preopen .col-3 {
    width: 100%;
    margin: 10px;
  }
}
/* ==========================================
  area05
========================================== */
#area05 {}
#area05 img {
  margin: 0;
}
#area05 .inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 50px 15px;
}
#area05 .coursettl {
  text-align: left;
}
#area05 .time{
	display: inline-block;
}
#area05 .col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
#area05 .col-2 {
  margin-bottom: 40px;
  width: 48%;
  margin: 10px 1%;
  text-align: left;
}
#area05 .col-2 p {
  margin: 10px;
}
#area05 .course_01 {
  border: 2px solid #e75584;
  background: #fff;
  padding: 10px;
  margin-bottom: 40px;
  text-align: left;
}
#area05 .course_01 p {
  margin: 10px;
}
#area05 .course_01 .col-2 {
  margin-bottom: 20px;
}
#area05 .course_02 {
  border: 2px solid #f5ab31;
  background: #fff;
}
#area05 .course_03 {
  border: 2px solid #3ea2d9;
  background: #fff;
}
#area05 .course_04 {
  border: 2px solid #81bd35;
  background: #fff;
}
#area05 .course_05 {
  border: 2px solid #8f82bc;
  background: #fff;
}
#area05 .course_05 .col-2:first-child {
  padding: 0;
  margin: 0;
}
#area05 .course_fitness {
  border: 2px solid #222;
  background: #fff;
}
#area05 .course_fitness .col-ph {
  width: 60%;
}
#area05 .course_fitness .col-txt {
  width: 40%;
  padding: 10px;
}
#area05 .course_05 .col-2:first-child {
  padding: 0;
  margin: 0;
}
.taisyou {
  width: 70%;
  border-radius: 6px;
  color: #fff;
  text-align: center;
  padding: 10px;
  margin: 30px auto 20px;
}
#area05 .course_01 .taisyou {
  background: #e75584;
}
#area05 .course_02 .taisyou {
  background: #f5ab31;
}
#area05 .course_03 .taisyou {
  background: #3ea2d9;
}
#area05 .course_04 .taisyou {
  background: #81bd35;
}
#area05 .course_05 .taisyou {
  background: #8f82bc;
}
@media screen and (max-width: 780px) {
  #area05 .col-2 {
    width: 100%;
    margin: 10px 0;
  }
  #area05 .course_fitness .col-ph {
    width: 100%;
  }
  #area05 .course_fitness .col-txt {
    width: 100%;
    padding: 10px;
  }
}
/* ==========================================
  area09
========================================== */
#area09 {
  background: url(https://e-hakuyo-s.net/wp-content/themes/hakuyo/img/bg_02.jpg) repeat;
}
#area09 .inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 50px 15px;
}
#area09 img {
  margin: 0;
}
#area09 h2 {
  border: 2px solid #000;
  font-size: 30px;
  padding: 20px;
}
#area09 h3 {
  color: #1561bf;
  font-size: 30px;
  margin-bottom: 20px;
}
#area09 p {
  display: inline;
  font-size: 20px;
  text-align: left;
  line-height: 2;
  padding-bottom: 5px;
  border-bottom: 1px dotted #000;
}
@media screen and (max-width: 780px) {
  #area09 h2 {
    font-size: 28px;
  }
  #area09 h3 {
    font-size: 26px;
  }
  #area09 p {
    font-size: 18px;
  }
}
/* ==========================================
  footer
========================================== */
footer {
  background: #eee;
  font-size: 12px;
  text-align: center;
  padding: 30px 10px;
}
/* ==========================================
  page_top
========================================== */
#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 14px;
  line-height: 1;
  z-index: 99;
}
#page-top a {
  background: #fff100;
  font-size: 18px;
  text-decoration: none;
  width: 80px;
  height: 80px;
  line-height: 80px;
  text-align: center;
  display: block;
  border-radius: 90px;
  opacity: 0.9;
  transition: all .3s ease;
}
#page-top a:hover {
  text-decoration: none;
  opacity: .5;
}