@charset "utf-8";
/* CSS Document */

/*-------------------------------
	all
--------------------------------*/
* {
  margin: 0px;
  padding: 0px;
}
body {
  color: #000;
  font-size: 18px;
  font-family: "Noto Sans JP", system-ui, "Yu Gothic", YuGothic, "メイリオ", Meiryo;
  font-weight: 400;
  text-align: center;
  min-width: 1100px;
  -webkit-text-size-adjust: 100%;
}
p, li, dt, dl {
  line-height: 1.8;
}
img {
  border: none;
  height: auto;
}
a {
  color: #D81518;
  text-decoration: none;
  transition: background-color 0.4s;
}
a img {
  opacity: 1;
  transition: opacity 0.4s;
  backface-visibility: hidden;
}
a:hover img {
  opacity: 0.6;
}
.ov {
  transition: opacity 0.4s;
}
.ov:hover {
  opacity: 0.6;
}
table {
  border-collapse: collapse;
}
.pagetop {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
}
.pagetop a {
  display: block;
}
.pagetop img {
  width: 50px;
  vertical-align: bottom;
}
.i-b {
  display: inline-block;
}
br.spbr {
  display: none;
}
.wrap {
  overflow: hidden; /*iPadの右側にできるスペース対策*/
}
.right {
  text-align: right;
}
.left {
  text-align: left;
}
.center {
  text-align: center;
}
.box {
  width: 1100px;
  margin: 0 auto;
  text-align:left;
}
a.tel {
  display: inline-block;
  pointer-events: none;
}
.red {
  color: #cc0000;
}
.u {
  text-decoration: underline;
}
@media only screen and (max-width: 600px) {
  body {
    font-size: 16px;
    text-align: left;
    min-width: 320px;
    -webkit-text-size-adjust: 100%;
  }
p, li, dt, dl {
    line-height: 1.8;
  }
  a {
    transition: none;
  }
  a:hover img {
    opacity: 1;
  }
  .ov:hover {
    opacity: 1;
  }
  br.spbr {
    display: block;
  }
  br.pcbr {
    display: none;
  }
  .pagetop {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
  }
  .pagetop img {
    width: 40px;
  }
  .box {
    width: auto;
    margin: 0 20px;
  }
  a.tel {
    pointer-events: auto;
  }
  .pic img {
    width: 100%;
  }
}
/*-------------------------------
	margin
--------------------------------*/
.mb10 { margin-bottom:10px; }
.mb15 { margin-bottom:15px; }
.mb20 { margin-bottom:20px; }
.mb30 { margin-bottom:30px; }
.mb40 { margin-bottom:40px; }
.mb50 { margin-bottom:50px; }
.mb60 { margin-bottom:60px; }
.mb70 { margin-bottom:70px; }
.mb80 { margin-bottom:80px; }
.mb90 { margin-bottom:90px; }
@media only screen and (max-width:600px){
.mb10 { margin-bottom:5px; }
.mb15 { margin-bottom:10px; }
.mb20 { margin-bottom:10px; }
.mb30 { margin-bottom:15px; }
.mb40 { margin-bottom:20px; }
.mb50 { margin-bottom:25px; }
.mb60 { margin-bottom:30px; }
.mb70 { margin-bottom:35px; }
.mb80 { margin-bottom:40px; }
.mb90 { margin-bottom:45px; }
}
/*-------------------------------
	header
--------------------------------*/
.header {
	padding:10px 0;
	border-bottom:solid 3px #D81518;
}
.logo {
	width:1100px;
	margin:0 auto;
	text-align:left;
}
.logo img {
	vertical-align:bottom;
}
@media only screen and (max-width: 600px) {
.logo {
	width:auto;
	margin:0 5px;
}
.logo img {
	width:100%;
}
}
/*-------------------------------
	footer
--------------------------------*/
.footer {
  color: #fff;
  padding: 70px 0 50px;
  background-color: #004EA2;
}
.footer-name {
  font-size: 22px;
  margin-bottom: 25px;
}
.footer-name a {
	color:#FFF;
}
.footer small {
  font-size: 16px;
  display: block;
}
@media only screen and (max-width: 600px) {
  .footer {
    text-align: center;
    padding: 40px 0 30px;
  }
  .footer-name {
    font-size: 18px;
    margin-bottom: 15px;
  }
  .footer small {
    font-size: 14px;
  }
}
/*-------------------------------
	topimg
--------------------------------*/
.topimg {
	width:1100px;
	margin:0 auto;
	padding:30px 0;
	display:flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center ;
}
.topimg img {
	width:100%;
	vertical-align:bottom;
}
.topimg-pic {
	width:610px;
}
.topimg h1 {
	width:410px;
}
@media only screen and (max-width: 600px) {
.topimg {
	width:100%;
	padding:0;
	flex-direction: column;
	justify-content: flex-start;
}
.topimg-pic {
	width:100%;
}
.topimg h1 {
	width:205px;
	margin:-120px 0 20px 15px;
	align-self: flex-start;
}
}
/*-------------------------------
	menu
--------------------------------*/
ul.menu {
	background-color:#D81518;
}
ul.menu li {
	display:inline-block;
}
ul.menu li a {
	color:#FFF;
	font-size:30px;
	font-weight:bold;
	list-style:none;
	display:block;
	padding:15px;
	margin:0 15px;
}
@media only screen and (max-width: 600px) {
ul.menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 10px;
    gap: 1px;
}
ul.menu li {
    display: block;
}
ul.menu li a {
    font-size: 18px;
    margin: 5px;
    padding: 10px 5px;
    text-align: center;
	border:solid 1px #FFF;
 }
}
/*-------------------------------
	heading/bg-color/ul
--------------------------------*/
h2.h2-ttl {
	font-size:40px;
	text-align: center;
	padding: 0 0 40px;
	margin-bottom:50px;
	background-image: url(../images/h2-line.png);
	background-repeat: no-repeat;
	background-position: center bottom;
}
h3.h3-ttl {
	font-size:24px;
	padding-bottom: 15px;
	margin-bottom:25px;
	border-bottom:solid 2px #D81518;
}
.bg-gr {
	padding:60px 0 80px;
	background-color:#EEE;
	background-image: url(../images/bg-1.jpg);
	background-position: center top;
}
.bg-wh {
	padding:60px 0 80px;
	background-color: #FFF;
}
ul.list-ul {
  margin-left: 30px;
  line-height: 1.8;
}
ol.list-ul {
  margin-left: 30px;
  line-height: 1.8;
}
@media only screen and (max-width: 600px) {
h2.h2-ttl {
	font-size:24px;
	padding: 0 0 20px;
	margin-bottom:25px;
	background-size:140px 5px;
}
h3.h3-ttl {
	font-size:18px;
	padding-bottom: 10px;
	margin-bottom:15px;
	border-bottom:solid 2px #D81518;
}
.bg-gr {
	padding:30px 0 40px;
	background-size:530px auto;
}
.bg-wh {
	padding:30px 0 40px;
}
}
/*-------------------------------
	あいさつ
--------------------------------*/
.aisatsu {
	padding:60px 0;
	display:flex;
	justify-content: space-between;
	align-items: center ;
	gap:60px;
}
.aisatsu img {
	width:100%;
}
.aisatsu-pic {
	width:450px;
}
.aisatsu-txt {
	width:530px;
	margin-right:30px;
}
.aisatsu-txt-ttl {
	font-size:26px;
	font-weight:bold;
}
.aisatsu-btn img {
	width:350px;
}
@media only screen and (max-width: 600px) {
.aisatsu {
	padding:30px 0;
	display:flex;
	flex-direction: column;
	gap:20px;
}
.aisatsu-pic {
	width:auto;
}
.aisatsu-txt {
	width:auto;
	margin-right:0;
}
.aisatsu-txt-ttl {
	font-size:20px;
	line-height:1.4;
}
.aisatsu-btn img {
	width:80%;
}
}
/*-------------------------------
	おすすめ
--------------------------------*/
.osusume-box {
	padding:30px;
	text-align:center;
	background-color:#FFF;
	border:solid 3px #D81518;
}
@media only screen and (max-width: 600px) {
.osusume-box {
	padding:15px;
}
}
/*-------------------------------
	大切
--------------------------------*/
.taisetsu {
	display:flex;
	justify-content: space-between;
	align-items: center ;
}
.taisetsu img {
	width:100%;
}
.taisetsu-pic {
	width:500px;
}
.taisetsu-txt {
	width:500px;
}
.taisetsu-txt-ttl {
	font-size:30px;
	font-weight:bold;
	line-height:1.4;
	margin-bottom:20px;
}
@media only screen and (max-width: 600px) {
.taisetsu {
	flex-direction: column;
	gap:20px;
}
.taisetsu-pic {
	width:auto;
}
.taisetsu-txt {
	width:auto;
}
.taisetsu-txt-ttl {
	font-size:22px;
	margin-bottom:10px;
}
}
/*-------------------------------
	理由
--------------------------------*/
.riyu {
	width:850px;
	margin:0 auto;
}
.riyu-box {
	display:flex;
	justify-content: space-between;
	align-items: center ;
	margin-bottom:50px;
}
.riyu-box:last-child {
	margin-bottom:0;
}
.riyu-box img {
	width:100%;
}
.riyu-pic {
	width:350px;
}
.riyu-txt {
	width:470px;
}
@media only screen and (max-width: 600px) {
.riyu {
	width:auto;
	margin:0 30px;
}
.riyu-box {
	flex-direction: column;
	gap:10px;
	margin-bottom:20px;
}
.riyu-pic {
	width:auto;
}
.riyu-txt {
	width:auto;
}
}
/*-------------------------------
	力
--------------------------------*/
.power-wrap {
	width:1000px;
	margin:0 auto;
	text-align:center;
}
.power-box {
	display:inline-block;
	text-align:center;
	width:260px;
	margin:0 20px 50px;
	vertical-align:top;
}
.power-box img {
	margin-bottom:10px;
}
.power-box p {
	font-size:22px;
	line-height:1.6;
	text-align:left;
}
@media only screen and (max-width: 600px) {
.power-wrap {
	width:auto;
}
.power-box {
	width:26%;
	margin:0 2% 30px;
}
.power-box img {
	width:100%;
	margin-bottom:5px;
}
.power-box p {
	font-size:16px;
}
}
/*-------------------------------
	本部
--------------------------------*/
.headoffice {
	display:flex;
	gap:80px;
}
.btn-official {
	text-align:center;
}
@media only screen and (max-width: 600px) {
.headoffice {
	display:flex;
	flex-direction:column;
	gap:10px;
}
.headoffice-pic img {
	width:110px;
}
.btn-official img {
	width:80%;
}
}
/*-------------------------------
	指導
--------------------------------*/
.policy-wrap {
	display:flex;
	justify-content:space-between;
}
.policy-box {
	width:260px;
	padding:20px 40px 40px;
	background-color:#FFF;
	box-shadow:0 0 15px rgba(0,0,0,.15)
}
.policy-box-ttl {
	font-size:26px;
	font-weight:bold;
	line-height:1.4;
	text-align:center;
	display:flex;
	justify-content:center;
	align-items:center;
	height:100px;
}
@media only screen and (max-width: 600px) {
.policy-wrap {
	flex-direction:column;
	gap:20px;
}
.policy-box {
	width:auto;
	padding:20px;
}
.policy-box-ttl {
	font-size:20px;
	height:auto;
	margin-bottom:10px;
}
}
/*-------------------------------
	大会
--------------------------------*/
.taikai-pic {
	display:flex;
	justify-content:space-between;
}
.taikai-pic img {
	width:520px;
}
.taikai-txt {
	width:900px;
	margin:0 auto;
}
@media only screen and (max-width: 600px) {
.taikai-pic {
	flex-direction:column;
	gap:20px;
}
.taikai-pic img {
	width:100%;
}
.taikai-txt {
	width:auto;
}
}
/*-------------------------------
	クラス
--------------------------------*/
.class-ttl {
	color:#FFF;
	font-size:30px;
	font-weight:bold;
	padding:15px 20px;
	background-color:#004EA2;
}
.class-ttl-s {
	color:#FFF;
	font-size:24px;
	font-weight:bold;
	padding:7px 20px;
	margin-bottom:10px;
	background-color:#546DBF;
}
table.class-tb {
	width:100%;
	border-top:solid 1px #CCC;
}
table.class-tb th {
	width:270px;
	text-align:center;
	padding:12px;
	border-bottom:solid 1px #CCC;
	background-color:#DBF3FF;
}
table.class-tb td {
	padding:12px 20px;
	border-bottom:solid 1px #CCC;
}
table.class-time {
	width:100%;
	border-top:solid 1px #CCC;
}
table.class-time th {
	width:270px;
	text-align:center;
	padding:12px;
	border-bottom:solid 1px #CCC;
	background-color:#DBF3FF;
}
table.class-time td {
	padding:12px 20px;
	border-bottom:solid 1px #CCC;
}
table.class-time dt {
	float:left;
}
table.class-time dd {
	padding:0 0 0 70px;
}
@media only screen and (max-width: 600px) {
.class-ttl {
	font-size:20px;
	padding:10px 10px;
}
.class-ttl-s {
	font-size:20px;
	padding:7px 10px;
	margin-bottom:5px;
}
table.class-tb th {
	width:80px;
	padding:12px 10px;
}
table.class-tb td {
	padding:12px 10px;
	border-bottom:solid 1px #CCC;
}
table.class-time th {
	width:100%;
	display:block;
	box-sizing:border-box;
	padding:8px 10px;
	border-bottom:none;
}
table.class-time td {
	width:100%;
	display:block;
	box-sizing:border-box;
	padding:12px 10px;
	border-bottom:solid 1px #CCC;
}
table.class-time dd {
	padding:0 0 0 60px;
}
}
/*-------------------------------
	クラス
--------------------------------*/
.flow {
	display:inline-block;
	text-align:left;
	list-style: none;
}
.flow-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  position: relative;
  padding-bottom: 50px;
}
.flow-item:last-child {
  padding-bottom: 0;
}
.flow-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 15px;
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 18px solid #d33;
}
.flow-num {
  width: 40px;
  height: 40px;
  background: #1C5AA6;
  color: #fff;
  font-size:32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  flex-shrink: 0;
}
.flow-content h3 {
  color: #004EA2;
  font-size: 26px;
  line-height:1.4;
  margin: 0 0 5px;
}
@media only screen and (max-width: 600px) {
.flow {
	margin:0 20px;
}
.flow-item {
  gap: 10px;
  padding-bottom: 50px;
}
.flow-item:not(:last-child)::after {
  bottom: 15px;
}
.flow-num {
  width: 30px;
  height: 30px;
  font-size:22px;
}
.flow-content h3 {
  font-size: 20px;
}
}
/*-------------------------------
	質問
--------------------------------*/
.faq {
	width:850px;
	text-align:left;
	list-style: none;
	margin: 0 auto;
}
.faq li {
  margin-bottom: 50px;
}
.faq li:last-child {
  margin-bottom: 0;
}
.faq h3 {
  font-size:26px;
  color: #004EA2;
  margin-bottom: 8px;
}
.faq p {
  margin: 0 0 0 30px;
}
@media only screen and (max-width: 600px) {
.faq {
	width:auto;
	margin: 0 20px;
}
.faq li {
  margin-bottom: 30px;
}
.faq h3 {
  font-size:18px;
  line-height:1.4;
  margin-bottom: 4px;
  text-indent:-24px;
  margin-left:24px;
}
.faq p {
  margin: 0 0 0 24px;
}
}
/*-------------------------------
	体験申込
--------------------------------*/
.taiken-ttl {
	font-size:30px;
	font-weight:bold;
}
.taiken-txt {
	text-align:center;
}
.btn-taiken {
	text-align:center;
}
.btn-taiken img {
	width:350px;
}
.btn-line {
	text-align:center;
}
@media only screen and (max-width: 600px) {
.taiken-ttl {
	font-size:18px;
	line-height:1.4;
}
.taiken-txt {
	text-align:left;
}
.btn-taiken {
	text-align:center;
}
.btn-taiken img {
	width:250px;
}
.btn-line {
	text-align:center;
}
.btn-line img {
	width:150px;
}
}
/*-------------------------------
	アクセス
--------------------------------*/
.access-txt {
	text-align:center;
}
.access-line {
	padding-bottom:60px;
	margin-bottom:60px;
	border-bottom:dashed 1px #CCC;
}
@media only screen and (max-width: 600px) {
.gmap iframe {
	height:350px;
}
.access-txt {
	text-align:left;
}
.access-line {
	padding-bottom:30px;
	margin-bottom:30px;
}
}