@charset "utf-8";

body {
	color: #000;
  font-family: heisei-maru-gothic-std, YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-weight: 400;
	font-style: normal;
  font-size: 16px;
  letter-spacing: 0.06em;
	padding-top: 7.9167vw; /*114px*/
}

body.top {
	padding-top: calc(100vh - 7.9167vw);
}

@media screen and (min-width: 1440px) {
	body {
		padding-top: 114px;
	}
	body.top {
		padding-top: calc(100vh - 114px);
	}
}


a {
	transition: all .4s;
  opacity: 1;
}
a:hover {
  opacity: 0.65;
}

br.sp {
  display: none;
}
img.sp {
	display: none;
}

img.fit2 {
	object-fit: none;
}


/*===== first =====*/
#first {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000000;
	width: 100%;
	height: 100vh;
	background-color: #fff;
	transition: all 1.5s;
	opacity: 1;
	pointer-events: none;
}
#first.fd {
	opacity: 0;
}
#first.hid {
	display: none;
}
#first .logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	width: 319px;
	height: 347px;
	animation: op 2s ease-in forwards;
}
#first .logo img {
	position: absolute;
	left: 0;
	top: 0;
}
#first .logo img.ko {
	z-index: 1;
	animation: ko 2s linear forwards;
	animation-delay: 2s;
}
#first .logo img.text {
	z-index: 2;
	opacity: 0;
	animation: op .5s ease-out forwards;
	animation-delay: 4.5s;
}


/*===== header =====*/
header {
	align-items: center;
	justify-content: space-between;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 50000;
	width: 100%;
	height: 7.9167vw; /*114px*/
	padding: 0 3.6111vw 0 3.3333vw; /*52px 48px*/
	background-color: #fff;
}
body.top header {
	position: sticky;
}
header h1 img {
	width: auto;
	height: 4.3056vw; /*62px*/
}
header ul.list li {
	line-height: 1em;
	margin-left: 8px;
}
header ul.list li a img {
	width: auto;
	height: 1.6667vw; /*24px*/
}
header ul.list li a {
	display: inline-block;
	padding: 0.4167vw 1.0417vw 0.3472vw; /*6px 15px 5px*/
	background-color: transparent;
	border: 0.1944vw solid transparent; /*2.8px*/
	border-radius: 1.4236vw; /*20.5px*/
	transition: all .3s;
}
header ul.list li a:hover,
header ul.list li a.this {
	border-color: #000;
	background-color: var(--key);
	opacity: 1;
}

@media screen and (min-width: 1440px) {
	header {
		height: 114px;
		padding: 0 52px 0 48px;
	}
	header h1 img {
		height: 62px;
	}
	header ul.list li a img {		
		height: 24px;
	}
	header ul.list li a {
		padding: 6px 15px 5px;
		border: 2.8px solid transparent;
		border-radius: 20.5px;
	}
}


/*===== footer =====*/
footer {
	position: relative;
	width: 100%;
	padding: 200px 0 60px;	
}
footer .sns {
	position: relative;
	z-index: 100;
	width: 100%;
	height: 9.7222vw;
	background: url("../img/footer_back.png") repeat-x 50% 50% / 12.5vw 9.7222vw;
}
footer .sns ul {
	width: fit-content;
	width: 59.0278vw;
	margin: auto;
}
footer .sns ul li {
	align-items: center;
	justify-content: center;
	width: 8.8889vw;
	height: 9.7222vw;
	margin-right: 3.6111vw;
}
footer .sns ul li:nth-of-type(2) {
	margin-right: 16.1806vw;
}
footer .sns ul li:last-of-type {
	margin-right: 0;
}
footer .sns ul li a {
	display: inline-block;
}

footer .sns ul li:nth-of-type(1) a img {
	width: 2.5vw;
	height: auto;
}
footer .sns ul li:nth-of-type(2) a img {
	width: 2.5694vw;
	height: auto;
}
footer .sns ul li:nth-of-type(3) a img {
	width: 3.125vw;
	height: auto;
}
footer .sns ul li:nth-of-type(4) a img {
	width: 7.2917vw;
	height: auto;
}

footer .copy_pc {
	position: absolute;
	left: 0;
	top: 200px;
	width: 100%;
	height: 9.7222vw;
}
footer .copy_pc img {
	display: block;
	position: absolute;
	left: 50%;
	top: 50%;
	width: 7.6389vw;
	height: auto;
	transform: translate(-50%,-50%);
}


@media screen and (min-width: 1440px) {
	footer .sns {
		height: 140px;
		background: url("../img/footer_back.png") repeat-x 50% 50% / 180px 140px;
	}
	footer .sns ul {
		width: 850px;
	}
	footer .sns ul li {
		width: 128px;
		height: 140px;
		margin-right: 52px;
	}
	footer .sns ul li:nth-of-type(2) {
		margin-right: 233px;
	}

	footer .sns ul li:nth-of-type(1) a img {
		width: 36px;
	}
	footer .sns ul li:nth-of-type(2) a img {
		width: 37px;
	}
	footer .sns ul li:nth-of-type(3) a img {
		width: 45px;
	}
	footer .sns ul li:nth-of-type(4) a img {
		width: 105px;
	}

	footer .copy_pc {
		top: 200px;
		height: 140px;
	}
	footer .copy_pc img {
		width: 110px;
	}
}


/*===== common =====*/
h2.midashi {
	position: relative;
	text-align: center;
}
h2.midashi::after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	top: 15px;
	width: 100%;
	height: 1px;
	background-color: #000;
}
h2.midashi img {
	display: inline-block;
	position: relative;
	z-index: 10;
	width: auto;
	padding: 0 13px;
	height: 35.7334px;
	background-color: #fff;
}
h2.midashi span {
	display: block;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1em;
	margin-top: 16px;
}

a.more {
	display: block;
	width: 96px;
	margin: auto;
}

.midashi2 {
	position: relative;
	font-size: 35px;
	font-weight: 800;
	line-height: 1em;
	text-align: center;
	width: 100%;
	height: 182px;
	padding-top: 73px;
	margin: 0 auto 80px;
	background: url("../img/midasi_bk2.png") no-repeat 50% 0 / 148px 182px;
}

.midashi3 {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1em;
	text-align: center;
	margin-bottom: 72px;
}



/*===== top page =====*/
#fv {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(100vh - 7.9167vw);
}
@media screen and (min-width: 1440px) {
	#fv {
		height: calc(100vh - 114px);
	}
}


#about_lead.top a.more {
	margin-top: 80px;
}


#news {
	padding-bottom: 120px;
}
#news.list {
	padding-top: 100px;
}
#news h2 {
	margin-bottom: 72px;
}
#news p {
	letter-spacing: 0.08em;
	line-height: 2em;
	text-align: center;
	margin-block: calc((1em - 1lh) / 2);
}
#news ul {
	margin-top: 84px;
}
#news.list ul {
	margin-bottom: -0.8333vw; /*12px*/
}
#news ul li {
	width: 32.7778%; /*472px*/
	margin-right: 0.8333%; /*12px*/
}
#news ul li a {
	display: block;
	height: 100%;
}
#news.list ul li {
	margin-bottom: 0.8333vw; /*12px*/
}
#news ul li:nth-of-type(3n) {
	margin-right: 0;
}
#news ul li .i {
	width: 100%;
	height: 32.7778vw;
}
#news ul li .text {
	font-size: 0.9722vw; /*14px*/
	line-height: 1.857em;
	height: calc(100% - 32.7778vw);
	padding: 1.1806vw;	/*17px*/
	background-color: var(--gray);
}
#news ul li .text div {
	margin-block: calc((1em - 1lh) / 2);
}
#news ul li .text div.sub {
	font-weight: 800;
	margin-bottom: 0.5em;
}
#news ul li .text div.sub .cat {
	display: inline-block;
	margin-left: -0.5em;
}
#news a.more {
	margin-top: 60px;
}


#course ul {
	width: 900px;
	padding-bottom: 30px;
	margin: auto;
}
#course ul li {
	margin-bottom: 90px;
}
#course ul li a {
	align-items: center;
}
#course ul li a .title {
	width: 228px;
	margin-right: 80px;
}
#course ul li a .text {
	width: 460px;
}
#course ul li a .text h4 {
	font-size: 28px;
	font-weight: 800;
	line-height: 1em;
	margin-bottom: 1em;
}
#course ul li a .text p {
	font-size: 16px;
	line-height: 2em;
	margin-block: calc((1em - 1lh) / 2);
}
#course ul li a .more {
	width: 95px;
	margin-left: auto;
}


#course h2,
#faq h2 {
	margin-bottom: 80px;
}

#faq {
	padding-bottom: 16px;
}
#faq h3 {
	font-size: 22px;
	font-weight: 800;
	line-height: 1em;
	text-align: center;
	padding-top: 60px;
	height: 140px;
	margin-bottom: 80px;
	background: url("../img/midasi_bk.png") no-repeat 50% 0 / 130px 140px;
}
#faq .unit {
	width: 820px;
	margin: 0 auto 120px;
}
#faq .unit dl {
	margin-bottom: 48px;
}
#faq .unit dl dt {
  cursor: pointer;
	position: relative;
  transition: all .2s;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.9em;
}
#faq .unit dl dt div {
	padding: 0 20px 0 50px;
	margin-block: calc((1em - 1lh) / 2);
}
#faq .unit dl dt::before {
  content: "Q";
  display: block;
  position: absolute;
  left: 0;
  top: -1px;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1em;
	text-align: center;
  width: 38.8634px;
  height: 38.8634px;
	padding-top: 7px;
	background-color: var(--key);
	border: 2px solid #000;
	border-radius: 50%;
}
#faq .unit dl dd {
	position: relative;
  height: auto;
  overflow: hidden;
  transition: all .3s;
  line-height: 2em;	
}
#faq .unit dl dd::before {
  content: "A";
  display: block;
  position: absolute;
  left: 0;
  top: 20px;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1em;
	text-align: center;
  width: 38.8634px;
  height: 38.8634px;
	padding-top: 7px;
	background-color: #fff;
	border: 2px solid #000;
	border-radius: 50%;
}
#faq .unit dl dd div {
	margin-block: calc((1em - 1lh) / 2);
	padding: 30px 20px 15px 50px;
}
#faq .unit dl dd.close {
  height: 0;
}


#contact h2 {
	margin-bottom: 100px;
}
#contact ul li {
	font-size: 24px;
	font-weight: 800;
	line-height: 1em;
	text-align: center;
}
#contact ul li:first-of-type {
	margin-bottom: 70px;
}
#contact ul li a {
	display: inline-block;
	position: relative;
	padding-right: 64px;
}
#contact ul li a::after {
	content: "";
	display: block;
	position: absolute;
	right: 0;
	top: calc(50% - 22px);
	width: 44px;
	height: 44px;
	background: url("../img/mark_link.png") no-repeat 0 0 / 44px 44px;
}



/*===== about =====*/
#about_lead {
	text-align: center;
	padding: 165px 0 200px;
}
#about_lead.top {
	padding-bottom: 120px;
}
#about_lead .ko {
	position: relative;
	/*height: 660px;*/
	overflow: hidden;
	padding-top: 220px;
	background: url("../img/ko_top.png") no-repeat 50% 0 / 530px 189px;
}
#about_lead .ko::after {
	content: "";
	display: block;
	position: absolute;
	left: calc(50% - 265px);
	bottom: 0;
	width: 530px;
	height: 189px;
	background: #fff url("../img/ko_bottom.png") no-repeat 0 100% / 530px 189px;
}

#about_lead p {
	font-size: 21px;
	line-height: 2em;
	margin-bottom: 2em;
}
#about_lead p:first-of-type {
	font-size: 46px;
	font-weight: 800;
	line-height: 1.608em;
	margin-bottom: 1.608em;
}
#about_lead p:last-of-type {
	margin-bottom: 240px;
}

.about_img {
	width: 100%;
	height: 630px;
	margin-bottom: 160px;
}

.lec .t {
	margin-bottom: 120px;
}
.lec .t p {	
	line-height: 2em;
	text-align: center;
	margin-block: calc((1em - 1lh) / 2);
}
.lec ul {
	width: 730px;
	padding-bottom: 80px;
	margin: auto;
}
.lec ul li {
	justify-content: space-between;
	margin-bottom: 80px;
}
.lec ul li .i {
	width: 176px;
	height: 176px;
	border-radius: 50%;
	overflow: hidden;
}
.lec ul li .text {
	width: 520px;
}
.lec ul li .text h3 {
	font-size: 20px;
	font-weight: 800;
	line-height: 1em;
}
.lec ul li .text .title {
	font-size: 14px;
	line-height: 1.714em;
	padding: 1.2em 0 1em;
	margin-block: calc((1em - 1lh) / 2);
}
.lec ul li .text p {
	line-height: 2em;
	margin-block: calc((1em - 1lh) / 2);
}

.annai,
.msg {
	width: 600px;
	margin: 0 auto 160px;
}
.annai p,
.msg p {
	line-height: 2em;
	margin-block: calc((1em - 1lh) / 2);
	margin-bottom: 2em;
}

.msg .i {
	width: 100%;
	height: 400px;
	margin-bottom: 80px;
}

.company {
	width: 600px;
	margin: auto;
}
.company table {
	width: 100%;
	margin-block: calc((1em - 1lh) / 2);
}
.company table th,
.company table td {
	font-size: 17px;
	line-height: 2em;
	vertical-align: top;
	padding: 17px 0;
	border-bottom: 1px solid var(--gray2);
}
.company table th {
	font-weight: 800;
	text-align: left;
	width: 168px;
	padding-left: 12px;
}
.company table tr:first-of-type th,
.company table tr:first-of-type td {
	padding-top: 0;
}
.company table tr:last-of-type th,
.company table tr:last-of-type td {
	padding-bottom: 0;
	border-bottom: none;	
}


/*===== course =====*/
#course.single {
	text-align: center;
	padding: 132px 0 0;
}
#course.single h2 {
	width: 300px;
	margin: 0 auto 120px;
}
#course.single h3 {
	position: relative;
	font-size: 35px;
	font-weight: 800;
	line-height: 1em;
	width: 100%;
	height: 176px;
	padding-top: 73px;
	margin: 160px auto 80px;
	background: url("../img/midasi_bk2.png") no-repeat 50% 0 / 143px 176px;
}
#course.single h4 {
	font-size: 22px;
	font-weight: 800;
	line-height: 1em;
	text-decoration: underline;
	text-underline-offset: 5px;
	margin: 70px 0 34px;
}
#course.single h4.tp2 {
	margin-top: 60px;
}
#course.single h5 {
	font-size: 19px;
	font-weight: 800;
	line-height: 1em;
	margin-bottom: 26px;
}
#course.single p {
	line-height: 2em;	
	margin-block: calc((1em - 1lh) / 2);
	margin-bottom: calc(((1em - 1lh) / 2) + 2em);
}
#course.single p.p2 {
	text-align: left;
	width: 550px;
	margin-inline: auto;
}
#course.single p.b {
	font-size: 28px;
	font-weight: 800;
	line-height: 1.714em;
}
#course.single p.m {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.666em;
}
#course.single p.num {
	font-size: 36px;
	font-weight: 800;
	line-height: 1em;
	margin: 34px 0 22px;
}
#course.single p.mbt1 {
	margin-bottom: calc(((1em - 1lh) / 2) + 1em);
}
#course.single p strong {
	font-weight: 800;
}
#course.single .n {
	margin: 66px 0 28px;
}
#course.single .n img {
	width: auto;
	height: 82px;
}
#course.single .btn a {
	display: inline-block;
	width: 40px;
	height: 40px;
}
#course.single p:has(+ .btn) {
	margin-bottom: 26px;
}


/*===== page =====*/
#page {
	width: 600px;
	padding: 100px 0 0;
	margin: auto;
}
#page h3 {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1em;
	margin-bottom: 1.4em;
}
#page p {
	line-height: 2em;	
	margin-block: calc((1em - 1lh) / 2);
	margin-bottom: calc(((1em - 1lh) / 2) + 2.4em);
}
#page p:last-of-type {
	margin-bottom: calc((1em - 1lh) / 2);
}


/*===== not found =====*/
#not-found {
  position: relative;
  width: 100%;
  height: calc(100vh - 310px);
}
#not-found .flex {
  align-items: center;
  height: 100%;
}
#not-found p {
  position: relative;
	color: #fff;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 1.86em;
  text-align: center;
  width: 100%;
}




.sa {
  opacity: 0 !important;
  transition: all 1.0s ease;
}

.sa.show {
  opacity: 1 !important;
  transform: none;
}
.sa--left {
  transform: translate(20px,0);
}
.sa--right {
  transform: translate(-20px,0);
}
.sa--up {
  transform: translate(0,20px);
}
.sa--down {
  transform: translate(0,-20px);
}

.hide {
  opacity: 0 !important;
}



@keyframes op {
  0% {
    opacity: 0;  
  }
  70%,100% {
		opacity: 1;
  }
}@keyframes ko {
  0% {
    transform: rotate(0deg);
  }
  100% {
		transform: rotate(360deg);
  }
}