/* common */
:root{
  --primary: #FD4312;
  --secondary: #FF8B11;
  --font-ja: 'Noto Sans JP', sans-serif;
  --font-en: 'Roboto', sans-serif;
  --font-awesome: 'Font Awesome 6 Free';
  --h-height: 10rem;
  --h-height-sp: 7.6rem;
}
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html{
  font-size: min(calc(100vw * 10 / 1920), 10px);
}
body{
  background: #E2E2E2;
  font-family: var(--font-ja);
  line-height: 1.4;
  letter-spacing: .05em;
}
body.hidden{
  overflow: hidden;
}
main{
  padding-top: var(--h-height);
}
section{
  position: relative;
}
img{
  display: block;
  width: 100%;
}
ul, ol{
  list-style: none;
}
a{
  color: inherit;
  text-decoration: none;
}
.en{
  font-weight: 900;
  font-family: var(--font-en);
}
.inner{
  width: min(100%, 1730px);
  margin: auto;
  padding: 0 4rem;
}
@media (max-width: 767px){
  html{
    font-size: calc(100vw * 10 / 390);
  }
  main{
    padding-top: var(--h-height-sp);
  }
  .inner{
    padding: 0 2rem;
  }
}

@media (min-width: 768px){
  .sp{
    display: none;
  }
}
@media (max-width: 767px){
  .pc{
    display: none;
  }
}


/* header */
#header{
  position: fixed;
  inset: 0 auto auto 0;
  width: 100vw;
  z-index: 10;
  transition: background .2s;
}
#header.bg{
  background: #E2E2E2;
}
#header .h_inner{
  width: min(100%, 1920px);
  margin: auto;
  padding: 0 4rem;
}
#header .row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--h-height);
}
#header .site_ttl{
  width: 75.4rem;
}
#header .nav{
  display: flex;
  align-items: center;
}
#header .nav .links{
  display: flex;
  gap: 2rem 3rem;
}
#header .nav .links a{
  position: relative;
  padding-left: 1.6rem;
  font-size: 2rem;
  font-weight: 700;
  transition: color .2s;
}
#header .nav .links a::before{
  content: '';
  background: var(--primary);
  position: absolute;
  inset: 50% auto auto 0;
  translate: 0 -50%;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
}
#header .nav .links a::after{
  content: '';
  background: var(--primary);
  position: absolute;
  inset: auto auto 0 0;
  width: 100%;
  height: 1px;
  scale: 0 1;
  transition: scale .2s;
}
#header .nav .contact{
  margin-left: 3rem;
}
#header .nav .contact a{
  background: var(--primary);
  color: #fff;
  display: block;
  padding: 1.2rem 2.5rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  border-radius: 10rem;
  transition: background .2s;
}
#header .nav .sns{
  display: flex;
  gap: 2rem;
  margin-left: 2rem;
}
#header .nav .sns a{
  display: block;
  width: 5rem;
  transition: opacity .2s;
}
#header .menu_btn{
  display: none;
}
@media (min-width: 768px){
  #header .nav .links a:hover{
    color: var(--primary);
  }
  #header .nav .links a:hover::after{
    scale: 1 1;
  }
  #header .nav .contact a:hover{
    background: var(--secondary);
  }
  #header .nav .sns a:hover{
    opacity: .6;
  }
}
@media (max-width: 767px){
  #header .h_inner{
    padding: 0 2rem;
  }
  #header .row{
    height: var(--h-height-sp);
  }
  #header .site_ttl{
    width: 24rem;
  }
  #header .toggle_menu{
    background: var(--primary);
    position: fixed;
    inset: 0 auto auto 0;
    width: 100vw;
    padding: 5.2rem 2rem 3.5rem;
    translate: 0 -100%;
    transition: translate .2s;
  }
  #header .toggle_menu.open{
    translate: 0 0;
  }
  #header .nav{
    flex-wrap: wrap;
  }
  #header .nav .links{
    flex-direction: column;
    width: 100%;
    padding-bottom: 3rem;
  }
  #header .nav .links a{
    color: #fff;
    font-size: 2.2rem;
  }
  #header .nav .links a::before{
    background: #fff;
  }
  #header .nav .contact{
    margin-left: 0;
  }
  #header .nav .contact a{
    background: #fff;
    color: var(--primary);
    padding: 1.2rem 3.5rem;
  }
  #header .nav .sns{
    gap: 1.5rem;
    margin-left: 1.5rem;
  }
  #header .menu_btn{
    background: var(--primary);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .5rem;
    position: relative;
    width: 7rem;
    height: 100%;
    margin-right: -2rem;
    border-radius: 0 0 0 2rem;
  }
  #header .menu_btn span,
  #header .menu_btn::before,
  #header .menu_btn::after{
    background: #fff;
    display: inline-block;
    width: 3.2rem;
    height: .3rem;
  }
  #header .menu_btn::before,
  #header .menu_btn::after{
    content: '';
    transition: rotate .2s;
  }
  #header .menu_btn.open span{
    display: none;
  }
  #header .menu_btn.open::before,
  #header .menu_btn.open::after{
    position: absolute;
  }
  #header .menu_btn.open::before{
    rotate: 45deg;
  }
  #header .menu_btn.open::after{
    rotate: -45deg;
  }
}


/* footer */
#footer{
  background:
  url(../img/f_bg01.png) no-repeat left top / 35.4rem 35.9rem,
  url(../img/f_bg02.png) no-repeat right bottom / 33.1rem 33.1rem;
}
#footer .company{
  display: flex;
  justify-content: center;
  gap: 6rem;
  padding-bottom: 6rem;
}
#footer .company p{
  padding-bottom: 2rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
#footer .company img{
  width: auto;
  height: 5.4rem;
  margin: auto;
}
#footer .other{
  padding-bottom: 6rem;
}
#footer .other p{
  font-size: 1.2rem;
  font-weight: 700;
  text-align: center;
}
#footer .other .copy{
  padding-bottom: 1rem;
}
#footer .other .policy a{
  text-decoration: 1px underline;
}
@media (max-width: 767px){
  #footer{
    background:
    url(../img/f_bg01_sp.png) no-repeat left bottom / 17.2rem 17.5rem,
    url(../img/f_bg02_sp.png) no-repeat right bottom / 12.7rem 12.7rem;
  }
  #footer .company{
    flex-direction: column;
  }
  #footer .company p{
    font-size: 1.4rem;
  }
  #footer .company img{
    height: 4.3rem;
  }
  #footer .other{
    padding-bottom: 12rem;
  }
}


/* 講座リスト */
.course ul{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
}
.course ul li.hide{
  display: none;
}
.course ul a{
  background: #fff;
  display: block;
  height: 100%;
  padding: 2.5rem;
  border: .5rem solid #fff;
  border-radius: 1rem;
  transition: border-color .2s;
}
.course ul .tag{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-bottom: 2rem;
}
.course ul .tag span{
  background: #25BC7D;
  color: #fff;
  display: block;
  min-width: 11rem;
  padding: .4rem 1rem;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  border-radius: 10rem;
}
.course ul .tag span.special{
  background: var(--secondary);
}
.course ul .tag span.free{
  background: #F18FC5;
}
.course ul .tag span.cate1{
  background: #B24492;
}
.course ul .tag span.cate2{
  background: #313B94;
}
.course ul .tag span.cate3{
  background: #84BF2C;
}
.course ul .tag span.anime{
  background: #049D74;
}
.course ul .tag span.skillup{
  background: #0495B7;
}
.course ul .tag span.face{
  background: #FF7992;
}
.course ul .ttl{
  padding-bottom: 1rem;
  font-size: 2.2rem;
  font-weight: 700;
}
.course ul .sub_ttl{
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  font-size: 1.6rem;
  font-weight: 500;
  border-bottom: 1px solid #000;
}
.course ul .prof{
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}
.course ul .prof + .prof{
  margin-top: 1.5rem;
}
.course ul .prof .photo{
  width: 7.2rem;
  border-radius: 50%;
  overflow: hidden;
}
.course ul .prof .txt_content{
  flex: 1;
}
.course ul .prof .txt_content .name{
  padding-bottom: .5rem;
  font-size: 1.4rem;
  font-weight: 700;
}
.course ul .prof .txt_content .title{
  font-size: 1.1rem;
  line-height: 1.6;
}
@media (min-width: 768px){
  .course ul a:hover{
    border-color: var(--primary);
  }
}
@media (max-width: 767px){
  .course ul{
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  .course ul a{
    padding: 1.5rem;
  }
}


/* トップページ */
.top_sec h2{
  background: #000 url(../img/h2.jpg) no-repeat left center / 3rem 100%;
  color: #fff;
  position: relative;
  margin-bottom: 6rem;
  padding: 1.2rem 3rem 1.2rem 6rem;
  font-size: 4rem;
  font-weight: 700;
}
@media (max-width: 767px){
  .top_sec h2{
    margin-bottom: 3rem;
    background-size: 2rem 100%;
    padding: .8rem 2rem .8rem 4rem;
    font-size: 2.4rem;
  }
}

.top_mv{
  padding: 6.4rem 0 15rem;
}
.top_mv .mv{
  position: absolute;
  inset: auto auto 15rem 0;
  width: 100rem;
}
.top_mv .txt_content{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.top_mv .year{
  background: url(../img/top_mv_year.png) no-repeat center / cover;
  color: #fff;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 25.6rem;
  height: 25.6rem;
  margin-bottom: 1rem;
  padding: 0 2rem 1rem 0;
  font-size: 3.6rem;
  font-weight: 700;
}
.top_mv h1{
  margin-bottom: 3rem;
  text-align: right;
}
.top_mv h1 span{
  background: #000;
  color: #fff;
  display: inline-block;
  margin-bottom: 1rem;
  padding: .5rem 4rem;
  font-size: 9rem;
  font-weight: 900;
  line-height: 1.5;
}
.top_mv .lead{
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: right;
}
@media (max-width: 767px){
  .top_mv{
    padding: 0 0 7.5rem;
  }
  .top_mv .mv{
    position: initial;
    width: 100vw;
    margin-top: -2.5rem;
    margin-left: -2rem;
  }
  .top_mv .txt_content{
    margin-top: -27.8rem;
  }
  .top_mv .year{
    width: 13.5rem;
    height: 13.5rem;
    padding: 0 2rem 1rem 0;
    font-size: 2rem;
  }
  .top_mv h1{
    margin-bottom: 0;
  }
  .top_mv h1 span{
    padding: .5rem 1.2rem;
    font-size: 4rem;
  }
  .top_mv .lead{
    font-size: 1.6rem;
    text-align: left;
  }
}

.top_news .btn{
  padding-top: 6rem;
}
.top_news .btn a{
  background: #000;
  color: #fff;
  display: table;
  margin: auto;
  padding: 1.4rem 4rem;
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  border-radius: 10rem;
  transition: background .2s;
}
.top_news .btn a::before{
  content: '\f0da';
  font-family: var(--font-awesome);
  margin-right: 1rem;
}
@media (min-width: 768px){
  .top_news .btn a:hover{
    background: var(--secondary);
  }
}
@media (max-width: 767px){
  .top_news .btn{
    padding-top: 3rem;
  }
  .top_news .btn a{
    font-size: 1.4rem;
  }
}

.top_block{
  padding-bottom: 20rem;
}
.top_block > * + *{
  padding-top: 12rem;
}
.top_block .ttl{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 6rem;
  padding-bottom: 1rem;
  border-bottom: 1rem solid #000;
}
.top_block .ttl .en{
  font-size: 12rem;
  line-height: .8;
}
.top_block .ttl .ja{
  font-size: 4.8rem;
  font-weight: 900;
  text-align: right;
}
.top_block .ttl .ja small{
  display: block;
  font-size: 2.2rem;
  font-weight: 700;
}
.top_block .lead{
  padding-bottom: 3rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
}
.top_block .txt{
  font-size: 2rem;
  line-height: 2;
}
.top_block .txt a{
  color: var(--primary);
  text-decoration: underline;
}
.top_block .bootcamp_lead{
  position: relative;
}
.top_block .bootcamp_lead a{
  position: absolute;
  inset: 0 0 auto auto;
  width: 42rem;
}
@media (max-width: 767px){
  .top_block{
    padding-bottom: 6rem;
  }
  .top_block > * + *{
    padding-top: 6rem;
  }
  .top_block .ttl{
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 2rem;
    border-width: .5rem;
  }
  .top_block .ttl .en{
    font-size: 4.8rem;
    line-height: 1;
  }
  .top_block .ttl .ja{
    font-size: 3.2rem;
    text-align: left;
    line-height: 1.2;
  }
  .top_block .ttl .ja small{
    font-size: 1.8rem;
    line-height: 2;
  }
  .top_block .lead{
    padding-bottom: 2rem;
    font-size: 2.4rem;
  }
  .top_block .txt{
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .top_block .bootcamp_lead a{
    display: block;
    position: initial;
    width: 100%;
    margin-top: 2rem;
  }
}


/* 下層 */
.low_head{
  width: min(100%, 1920px);
  margin: auto;
  padding: 0 4rem 9rem;
}
.low_head .breadcrumbs ul{
  display: flex;
  font-size: 1.4rem;
}
.low_head .breadcrumbs ul li + li::before{
  content: '\f0da';
  font-weight: 600;
  font-family: var(--font-awesome);
  margin: 0 .8rem;
}
.low_head .breadcrumbs ul a{
  text-decoration: 1px underline;
}
@media (max-width: 767px){
  .low_head{
    padding: 0 2rem 6rem;
  }
}

.low_body{
  width: min(100%, 1650px);
  margin: auto;
  padding: 0 4rem 12rem;
}
.low_body.post_body{
  width: min(100%, 1150px);
}
.low_body h1{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 9rem;
  padding-bottom: 1rem;
  border-bottom: 1rem solid #000;
}
.low_body h1 .en{
  font-size: 12rem;
  line-height: .8;
}
.low_body h1 .ja{
  font-size: 4.8rem;
  font-weight: 900;
  text-align: right;
}
.low_body h2{
  background: #000 url(../img/h2.jpg) no-repeat left center / 3rem 100%;
  color: #fff;
  position: relative;
  margin-bottom: 6rem;
  padding: 1.2rem 3rem 1.2rem 6rem;
  font-size: 4rem;
  font-weight: 700;
}
.low_body h3{
	position: relative;
	margin: 9rem 0 4rem;
	padding: .4rem 0 .4rem 2.7rem;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.2;
}
.low_body h3::before{
	content: '';
	background: #000;
	position: absolute;
	inset: 0 auto auto 0;
	width: .2rem;
	height: 100%;
}
.low_body h3::after{
	content: '';
	background: #000;
	position: absolute;
	inset: 0 auto auto .6rem;
	width: .6rem;
	height: 100%;
}
@media (max-width: 767px){
  .low_body{
    padding: 0 2rem 8.4rem;
  }
  .low_body h1{
    margin-bottom: 3rem;
    border-bottom: .5rem solid #000;
  }
  .low_body h1 .en{
    font-size: 5.4rem;
  }
  .low_body h1 .ja{
    font-size: 1.6rem;
  }
  .low_body h2{
    margin-bottom: 3rem;
    background-size: 2rem 100%;
    padding: .8rem 2rem .8rem 4rem;
    font-size: 2.4rem;
  }
  .low_body h3{
    margin: 6rem 0 2rem;
    font-size: 2rem;
  }
}

.course_tab{
  padding-bottom: 6rem;
}
.course_tab ul{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3rem;
}
.course_tab ul a{
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding: 1.5rem 0;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  border: 1px solid #000;
  border-radius: 100rem;
  transition: background .2s;
}
.course_tab ul a.active{
  background: #000;
  color: #fff;
}
@media (min-width: 768px){
  .course_tab ul a:hover{
    background: #000;
    color: #fff;
  }
}
@media (max-width: 767px){
  .course_tab{
    padding-bottom: 4rem;
  }
  .course_tab ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
  }
  .course_tab ul a{
    padding: .75rem 1rem;
    font-size: 1.4rem;
  }
}


.back_btn{
  padding-top: 12rem;
}
.back_btn a{
  background: #000;
  color: #fff;
  display: table;
  margin: auto;
  padding: 1.4rem 4rem;
  font-size: 2.2rem;
  font-weight: 700;
  text-align: center;
  border: 1px solid #000;
  border-radius: 100rem;
  transition: background .2s;
}
.back_btn a::before{
  content: '\f0da';
  margin-right: 1rem;
  font-weight: 600;
  font-family: var(--font-awesome);
}
@media (min-width: 768px){
  .back_btn a:hover{
    background: #fff;
    color: #000;
  }
}
@media (max-width: 767px){
  .back_btn{
    padding-top: 9rem;
  }
  .back_btn a{
    font-size: 1.4rem;
  }
}


.post_body .post_table table{
  background: #fff;
  width: 100%;
  border-spacing: 0;
  border-radius: 1rem;
  overflow: hidden;
}
.post_body .post_table table tr{
  display: flex;
}
.post_body .post_table table tr:nth-child(even){
  background: #F4F4F4;
}
.post_body .post_table table tr + tr{
  border-top: 2px solid #E2E2E2;
}
.post_body .post_table table :is(th, td){
  padding: 3rem 3rem 3rem 5rem;
  font-size: 2rem;
  line-height: 1.5;
}
.post_body .post_table table th{
  width: 33rem;
  font-weight: 700;
  text-align: left;
}
.post_body .post_table table th sup{
  font-size: 1rem;
  font-weight: 400;
  vertical-align: middle;
}
.post_body .post_table table td{
  flex: 1;
  font-weight: 500;
  border-left: 2px solid #E2E2E2;
}
.post_body .post_table table td a{
  background: linear-gradient(to right, #FF9E54, #AB6090);
  color: #fff;
  display: inline-block;
  width: 24rem;
  margin-left: 2rem;
  padding: 1rem 0;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  border-radius: 10rem;
}
.post_body .post_table table .prof{
  display: flex;
  align-items: flex-start;
  gap: 3rem;
}
.post_body .post_table table .prof + .prof{
  margin-top: 2rem;
}
.post_body .post_table table .prof .photo{
  width: 12rem;
}
.post_body .post_table table .prof .txt_content{
  flex: 1;
}
.post_body .post_table table .prof .txt_content .name{
  padding-bottom: .5rem;
  font-weight: 900;
}
.post_body .post_table table .prof .txt_content .desc{
  padding-top: .5rem;
  font-size: 1.6rem;
}
.post_body .post_movie .box{
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}
.post_body .post_movie iframe{
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 100%;
  border: none;
}
.post_body .txt{
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
}
@media (max-width: 767px){
  .post_body .post_table table tr{
    flex-direction: column;
  }
  .post_body .post_table table :is(th, td){
    padding: 2rem;
    font-size: 1.6rem;
  }
  .post_body .post_table table th{
    width: 100%;
    padding-bottom: 0;
  }
  .post_body .post_table table td{
    border-left: none;
  }
  .post_body .post_table table td a{
    display: block;
    width: 20rem;
    margin: 2rem auto 0;
    font-size: 1.6rem;
  }
  .post_body .txt{
    font-size: 1.6rem;
  }
  .post_body .post_table table .prof{
    gap: 1.5rem;
  }
  .post_body .post_table table .prof .photo{
    width: 7.2rem;
  }
  .post_body .post_table table .prof .txt_content{
    font-size: 1.2rem;
  }
  .post_body .post_table table .prof .txt_content .desc{
    font-size: 1rem;
  }
}


.fixed_application{
  position: fixed;
  inset: auto auto 0 0;
  width: 100vw;
  transition: .2s;
}
.fixed_application.hide{
  opacity: 0;
  visibility: hidden;
}
.fixed_application a{
  background: linear-gradient(to right, #FF9E54, #AB6090);
  color: #fff;
  display: block;
  padding: 3.5rem;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
@media (max-width: 767px){
  .fixed_application a{
    padding: 1.5rem 0;
    font-size: 2rem;
  }
}


.contact_box{
  background: #efefef;
  padding: 9rem 0;
}
.contact_box p{
  text-align: center;
}
.contact_box p a{
  display: inline-block;
  font-size: 2.8rem;
  font-weight: 700;
  text-align: center;
}
.contact_box p a::before{
  content: '\f0e0';
  font-family: var(--font-awesome);
  margin-right: 1rem;
}
@media (max-width: 767px){
  .contact_box{
    padding: 5rem 0;
  }
  .contact_box p{
    font-size: 2.4rem;
  }
  .contact_box p a{
    padding-top: 2rem;
    font-size: 1.6rem;
  }
}


.privacy_txt{
  background: #efefef;
  margin-bottom: 4rem;
  padding: 9rem 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2;
  text-align: center;
}
.privacy_table p{
  background: var(--primary);
  color: #fff;
  padding: 1em 0;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}
.privacy_table table{
  width: 100%;
  border: 1px solid var(--primary);
  border-spacing: 0;
}
.privacy_table table tr{
  display: flex;
}
.privacy_table table tr + tr{
  border-top: 1px solid var(--primary);
}
.privacy_table table :is(th, td){
  padding: 2rem;
  font-size: 2rem;
  line-height: 1.6;
  text-align: left;
}
.privacy_table table th{
  background: #fff;
  width: 36rem;
}
.privacy_table table td{
  background: #fff;
  flex: 1;
  border-left: 1px solid var(--primary);
}
.privacy_table table td a{
  color: var(--primary);
  text-decoration: underline;
}
@media (max-width: 767px){
  .privacy_table table tr{
    flex-direction: column;
  }
  .privacy_table table :is(th, td){
    font-size: 1.4rem;
  }
  .privacy_table table th{
    width: auto;
    padding-bottom: 0;
  }
  .privacy_table table td{
    border-left: none;
  }
  .privacy_txt{
    margin-bottom: 2rem;
    padding: 5rem 2rem;
    font-size: 1.4rem;
    line-height: 1.6;
    text-align: left;
  }
  .privacy_table p{
    font-size: 1.4rem;
  }
}
