@charset "UTF-8";

@import url(/css/sanitize.css);
@import url(http://fonts.googleapis.com/earlyaccess/notosansjapanese.css);

.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}


*, *::before, *::after {
  box-sizing: border-box;
}
a:link, a:visited, a:hover, a:active {
  color: #fff;
  text-decoration: none;
}
a {
  display: inline-block;
  transition: .7s;
}
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align:baseline;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
article, header, footer, aside, figure, figcaption, nav, section { 
  display:block;
}
ol, ul {
  list-style: none;
  list-style-type: none;
}
img {
  max-width: 100%;
-webkit-backface-visibility: hidden;
}
html {
  font-size: 62.5%;
}

body {
  font-family: 'Noto Sans Japanese', serif;
  font-size: 20px;
  letter-spacing: 0.11em;
  font-weight: 800;
  padding: 0;
  color: #282828;
  background-color: #d4e9f0;
  line-height: 1.8;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
.sp {
  display: none;
}
.wrap {
  max-width:1080px;
  margin: 0 auto;
}
.caption {
  font-size: 10px;
  font-weight: 200;
  color: #a0a0a0;
}
.color-yellow {
  color: #ebce21;
  position: relative;
}
.color-blue {
  color: #0066b1;
}
.color-pink {
  color: #fa4680;
}
.bg-blue {
  background:#0066b1;
  color: #fff;
}
@media screen and (max-width: 1024px) {
  .wrap {
    max-width:100%;
    padding: 0 30px;
  }
}
@media screen and (max-width: 767px) {
  body {
    font-size: 14px;
  }
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
}

/*------------------------------------------
header
------------------------------------------*/
#header {
  margin-top:30px;
  margin-left: 30px;
}
#header #hdrLogo img {
  width: 236px;
}
@media screen and (max-width: 767px) {
  #header {
    margin-top:15px;
    margin-left: 20px;
  }
  #header #hdrLogo img {
    width: 26%;
  }
}

/*------------------------------------------
cvBtn
------------------------------------------*/
#cvBtn {
  line-height: 0;
  vertical-align:middle;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 10;
}
.cvBtn-line {
  width: 100px;
  height: 89px;
  text-align: center;  
  background-color: #00b900;
}
.cvBtn-line a {
  display: block;
  padding: 10px;
}
.cvBtn-line:before {
  content: '';
  width: 20%;
  height: 44%;
  background-image: url(img/btn-line_hover.png);
  background-size:100% auto;
  background-repeat: no-repeat;
  position: absolute;
  left: 10px;
  top: 7px;
  transform: rotateZ(-45deg);
  margin:auto;
  transform: scale(0.5);
  opacity: 0;
  transition: .2s;
}
.cvBtn-line:hover:before {
  transform: scale(1);
  opacity: 1;
}
.cvBtn-line img {
  width: 55%;
  transition: .5s;
}
.cvBtn-line:hover img {
  filter: drop-shadow(3px 3px 3px rgba(5,138,5,0.6));
}
.cvBtn-line p {
  color: #ebce21;
  font-size: 16px;
  line-height: 1;
  margin-top: 7px;  
}
.cvBtn-instagram {
  width: 100px;
  height: 89px;
  display: block;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cvBtn-instagram:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  z-index: 9;
  background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
  background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;/*グラデーション①*/
}
.cvBtn-instagram:after {
  content: '';
  position: absolute;/*絶対配置*/
  top: 35px;/*ずらす*/
  left: -35px;/*ずらす*/
  width: 100px;/*グラデーションカバーの幅*/
  height: 100px;/*グラデーションカバーの高さ*/
  background: -webkit-radial-gradient(#ffdb2c 10%, rgba(255, 105, 34, 0.65) 55%, rgba(255, 88, 96, 0) 70%);
  background: radial-gradient(#ffdb2c 10%, rgba(255, 105, 34, 0.65) 55%, rgba(255, 88, 96, 0) 70%);/*グラデーション②*/
  z-index: 10;
  transition: .7s;
}
.cvBtn-instagram:hover:after {
  width: 220px;/*グラデーションカバーの幅*/
  height: 220px;/*グラデーションカバーの高さ*/  
  top: -20px;/*ずらす*/
  left: -82px;/*ずらす*/
}
.cvBtn-instagram a {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  padding: 11px;
  z-index: 11; 
}
.cvBtn-instagram img {
  width: 52%;
  filter: invert(88%) sepia(61%) saturate(0%) hue-rotate(229deg) brightness(400%) contrast(101%);
}
.cvBtn-instagram p {
  margin-top: 10px;
  font-size: 10px;
  color: #282828;
  letter-spacing: 0.1em;
  line-height: 0.6;
  color: #fff;
}
.cvBtn-pagetop {
  width: 100px;
  height: 89px;
  position: fixed;
  right: 0;
  bottom: -89px;
  background-color: #0066b1;
  background-image: radial-gradient(#fff 10%, transparent 20%), radial-gradient(#fff 10%, transparent 20%);
  background-position: 0 0, 5px 5px;
  background-size: 10px 10px;
  transition: .6s;
}
.cvBtn-pagetop.active {
  bottom: 0;
}
.cvBtn-pagetop a {
  display: block;
  text-align: center;
  padding-top: 5px;
  background-image: url(img/pagetop_ov.png);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: 68%;
}
.cvBtn-pagetop img {
  width: 68%;
}
.cvBtn-pagetop:hover img {
  opacity: 0;
}
@media screen and (max-width: 767px) {
  #cvBtn {
    width: 100%;
    right: auto;
    top: auto;
    left: 0;
    bottom: 0;    
    filter: drop-shadow(0px -2px 2px rgba(0,0,0,0.1));
    display: flex;
  }
  .cvBtn-line {
    width: 40%;
    height: 50px;
  }
  .cvBtn-instagram {
    width: 45%;
    height: 50px;
    overflow: hidden;
  }
  .cvBtn-line:before {
    content: none;
  }
  .cvBtn-instagram:before {
  }
  .cvBtn-instagram:after {
    top: 20px;
    left: -50px;
    width: 130px;
    height: 130px;
  }
  .cvBtn-line a,
  .cvBtn-instagram a {
    display: flex;    
  }
  .cvBtn-line p {
    font-size: 14px;
  }
  .cvBtn-instagram p {
    font-size: 14px;
  }
  .cvBtn-line img {
    width:auto;
    height: 30px;
    margin-right: 10px;
  }
  .cvBtn-instagram img {
    width:auto;
    height: 30px;
    margin-right: 10px;
  }
  .cvBtn-pagetop {
    width: 15%;
    height: 50px;
    bottom: 0;
  }
}


/*------------------------------------------
mainVisual
------------------------------------------*/
.mainVisual {
  text-align: center;
  margin-top:50px;
}
.mvBox {
  margin-right: 5%;
  position: relative;
}
.mvBox .mv_main {
  width: 86.25%;
  margin-left: 13.75%;
  animation: mvanimeA 1s 0s forwards alternate;  /* アニメーション指定 */
}
@keyframes mvanimeA {
    0% {
      opacity: 0;
      transform: scale(2.2);
    }
    100% {
      opacity: 1;
      transform: scale(1);
    }
}
.mv_talk01 {
  width: 13.64%;
  opacity: 0;
  position: absolute;
  right: 0;
  bottom: 50%;
  animation: mvanimeB 1s 0.7s forwards alternate;  /* アニメーション指定 */
}
@keyframes mvanimeB {
    0% {
      opacity: 0;
      transform: scale(1.5);
    }
    100% {
      opacity: 1;
      transform: scale(1);
    }
}
.mv_talk02 {
  width: 19%;
  opacity: 0;
  position: absolute;
  left: 0;
  bottom: 2%;
  animation: mvanimeC 1s 1.2s forwards alternate;  /* アニメーション指定 */
}
@keyframes mvanimeC {
    0% {
      opacity: 0;
      transform: scale(1.5);
    }
    100% {
      opacity: 1;
      transform: scale(1);
    }
}
.mvBox .caption {
  position: absolute;
  right: -20px;
  bottom: 73px;
  transform: rotate(-11deg);
  opacity: 0;
  animation: mvanimeD 1s 2s forwards alternate;  /* アニメーション指定 */
}
@keyframes mvanimeD {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
}
@media screen and (max-width: 767px) {
  .mainVisual {
    margin-top:20px;
  }
  .mvBox {
    margin: 0;
  }
  .mvBox .mv_main {
    width: 100%;
    margin-left: 0;
  }
  .mv_talk01 {
    width: 16%;
    bottom: auto;
    top: 20px;
  }
  .mv_talk02 {
    width: 24%;
    left: auto;
    bottom: auto;
    right: 0;
    top: -44px;
  }
  .mvBox .caption {
    display: none;/*
    right: -10px;
    bottom: 20px;
    transform: rotate(-11deg);*/
  }

}


/*------------------------------------------
contentArea
------------------------------------------*/
.contentArea {
  background-image: url(img/bg-navi.png);
  background-repeat: no-repeat;
  background-position: center top;
  margin-top: -99px;
  padding-top: 354px;
  text-align: center;
  position: relative;
  z-index: 2;  
}
@media screen and (max-width: 767px) {
  .contentArea {
    margin-top: -165px;
    padding-top: 215px;
  }
}

/*------------------------------------------
navi
------------------------------------------*/
#navi {
  transform: translateY(-354px);
  height: 0;
}
#navi .wrap {
  position: relative;
}
#navi ul {
  display: flex;
  justify-content: flex-end;

  position: relative;
  transform: skewY(-10deg);
  transform-origin: bottom left;
  top: 300px;
}
#navi ul li {
  font-size: 16px;
}
#navi ul li:nth-child(-n+2) {
  margin-right: 30px;
}
#navi ul li a {
  color: #fff;
}
#navi ul li a:hover {
  color: #ebce21;
  transform: scale(1.05);
}
#navi ul li a:before {
  content: '▼';
  color: #fff;
  font-size: 12px;
}
@media screen and (max-width: 767px) {
  #navi {
    display: none;
  }
}

/*------------------------------------------
共通要素
------------------------------------------*/
/*sectionTtl*/
.sectionTtl {
  display: inline-block;
  font-size: 30px;
  text-align: center;
  padding-bottom: 20px;
  margin:0 auto 80px;
  position: relative;
  transform: translateY(-1.5em);
  opacity: 0;
  transition: 1s;
}
.sectionTtl:before {
  content: '';
  width: 100%;
  height: 4px;
  background:#fff;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin:auto;
}
.sectionTtl.is-active {
  transform: translateY(0);
  opacity: 1;
}
.changeTxt {
  display: inline-block;
  transform: scale(0.7);
  transition: 0.7s;
}
.changeTxt.is-active {
  animation: changetxtAnim 1s forwards alternate;  /* アニメーション指定 */
}
@keyframes changetxtAnim {
    0% {
      transform: scale(0.7);
      transition: 0.5s;
    }
    100% {
      transform: scale(1);
    }
}

/*bottomIllust*/
.bottomIllust {
  margin-top: 50px;
  line-height: 0;
  transform: translateY(50px);
  opacity: 0;
  transition: 0.8s;
}
.bottomIllust.is-active {
  transform: translateY(0);
  opacity: 1;
}
@media screen and (max-width: 767px) {
  /*sectionTtl*/
  .sectionTtl {
    font-size: 20px;
    margin:0 auto 50px;
  }
  /*bottomIllust*/
  .bottomIllust {
    margin: 30px -20px 0;
  }
}

/*------------------------------------------
whyArea
------------------------------------------*/
#whyArea {
  filter: drop-shadow(2px 2px 2px rgba(0,0,0,.1));
}
#whyArea .sectionTtl .color-yellow:before {
  content:'・・・・・';
  position: absolute;
  left: 0.35em;
  top: -20px;
  font-size: 20px;
  letter-spacing: 0.58em;
}

/*goodList*/
.goodList {
  width: 70%;
  display: inline-block;
  text-align: left;
  margin: 0 auto;
}
.goodList li {
}
.goodList li:nth-child(n+2) {
  margin-top: 20px;
}
.goodList_map {
}
@media screen and (max-width: 767px) {
  #whyArea {
    padding-top: 10px;
  }
  .goodList {
    width: 100%;
  }
  #whyArea .sectionTtl .color-yellow:before {
    top: -15px;
    font-size: 13px;
  }
}


/*------------------------------------------
caseArea
------------------------------------------*/
#caseArea {
  padding: 100px 0;
  position: relative;
}
#caseArea .sectionTtl {
  color: #282828;
}
#caseArea .sectionTtl:before {
  background:#282828;
}

/*caseList*/
.caseList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  position: relative;
}
.caseBox {
  width: 46.296296%;
  background-color: #fff;
  border:solid 7px #0066b1;
  padding: 90px 30px 40px;
  position: relative;
}
.caseTtl {
  position: absolute;
  left: 0;
  right: 0;
  top: -35px;
  transform: rotate(20deg);
}
.caseTtl.is-active {
  animation: casettlAnim 1s forwards alternate;  /*アニメーション指定 */
}
@keyframes casettlAnim {
    0% {
      transform: rotate(20deg);
    }
    100% {
      transform: rotate(0);
    }
}
.caseTtl img {
  width: 35%;
}
.caseBox p .color-pink {
  font-size: 40px;
}
.caseList_label {
  width: 231px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  margin:auto;
  transform: scale(2);
  opacity: 0;
}
.caseList_label.is-active {
  animation: casetxtAnim 1.5s forwards alternate;  /*アニメーション指定 */
}
@keyframes casetxtAnim {
    50% {
      transform: scale(2);
      opacity: 0;
    }
    100% {
      transform: scale(1);
      opacity: 1;
    }
}
#caseArea .caption {
  position: absolute;
  right: 10px;
  bottom: 10px;
}
@media screen and (max-width: 767px) {
  #caseArea {
    padding: 60px 0 80px;
  }
  .caseBox {
    width: 100%;
    border:solid 5px #0066b1;
    padding: 40px 15px 25px;
  }
  .caseBox:first-child {
    margin-bottom: 60px;
  }
  .caseTtl img {
    width: 40%;
  }
  .caseBox p .color-pink {
    font-size: 30px;
  }
  .caseList_label {
    width: 35%;
    left: auto;
    right: -20px;
    bottom: auto;
    top: 47%;
  }
  #caseArea .caption {
    padding-left: 10px;
    bottom: 20px;
  }
}


/*------------------------------------------
schoolArea
------------------------------------------*/
#schoolArea {
  padding: 100px 0 0;
  filter: drop-shadow(0px 0px 4px rgba(0,0,0,.2));
}
.schoolBox {
  width: 84%;
}
.schoolBox:nth-child(n+3) {
  margin-top: 70px;
}
.schoolBox:nth-child(3) {
  margin-left: 8%;
}
.schoolBox:nth-child(4) {
  margin-left: 16%;
}
.schoolBox a {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;  
}
.schoolBox .schoolBox_img {
  width: 43%;
  position: relative;
}
.schoolBox .schoolBox_img .schoolLabel {
  width: 30%;
  position: absolute;
  left: -10px;
  top: -10px;
  z-index: 2;
  transition: .7s;
  opacity: 0;
  transform: scale(2);
}
.schoolBox .schoolBox_img .schoolLabel.is-active {
      opacity: 1;
      transform: scale(1);
}
.schoolBox .schoolBox_img .schoolPhoto {
  line-height: 1;
}
.schoolBox .schoolBox_img .schoolPhoto:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border: solid 1px #fff;
  opacity: 0;
  transition: 0.7s;
}
.schoolBox.hover .schoolBox_img .schoolPhoto:before {
  border: solid 10px #fff;
  opacity: 1;
  transition: 0.7s;
}
.schoolBox_txt {
  width: 52%;
  text-align: left;
}
.schoolBox_txt .schoolName {
  font-size: 24px;
}
.schoolBox_txt .campusName {
  font-size: 16px;
}
.schoolBox_txt .schoolTxt {
  font-size: 14px;
  margin-top: 30px;
}
.schoolBox_txt .schoolAddress {
  font-size: 14px;
  margin-top: 50px;
}
.schoolBox .markerAnim {
    background-image: -webkit-linear-gradient(left, transparent 50%, #ebce21 50%);
    background-image: -moz-linear-gradient(left, transparent 50%, #ebce21 50%);
    background-image: -ms-linear-gradient(left, transparent 50%, #ebce21 50%);
    background-image: -o-linear-gradient(left, transparent 50%, #ebce21 50%);
    background-image: linear-gradient(left, transparent 50%, #ebce21 50%);
    background-repeat: repeat-x;
    background-size: 200% 1.2em;
    background-position: 0 0.1em;
    transition: all 0.7s ease;
}
.schoolBox.hover .markerAnim{
    color: #0066b1;
    background-position: -100% 0.1em;
}

/*otherschoolList*/
.otherschoolList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 70px;
}
.osBox {
  width: 22.22%;
}
.osBox .osBox_img {
  line-height: 1;
  position: relative;
}
.osBox .osBox_img:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border: solid 1px #fff;
  opacity: 0;
  transition: 0.7s;
}
.osBox .osBox_img.hover:before {
  border: solid 10px #fff;
  opacity: 1;
  transition: 0.7s;
}
.osBox_txt {
  font-size: 14px;
  margin-top: 5px;
}
.schoolArea_txt {
  font-size: 30px;
  margin-top: 100px;
}
.schoolArea_txt .icon-line {
  height: 1.5em;
  padding-right: 0.3em;
  transform: translateY(0.3em);
}
.schoolArea_txt .icon-line:hover {
  animation: iconlineAnim 0.5s forwards alternate;  /*アニメーション指定 */
}
@keyframes iconlineAnim {
    50% {
      transform: translateY(0.1em);
    }
    100% {
      transform: translateY(0.3em);
    }
}
@media screen and (max-width: 767px) {
  #schoolArea {
    padding: 60px 0 0;
  }
  .schoolBox {
    width:100%;
  }
  .schoolBox:nth-child(3),
  .schoolBox:nth-child(4) {
    margin-left: 0;
  }
  .schoolBox .schoolBox_img {
    width: 100%;
  }
  .schoolBox .schoolBox_img .schoolPhoto img {
    border: solid 10px #fff;
  }
  .schoolBox_txt {
    width: 100%;
  }
  .schoolBox_txt .schoolName {
    font-size: 18px;
    margin-top: 20px;
    color: #ebce21;
    line-height: 1.2;
  }
  .schoolBox_txt .campusName {
    font-size: 14px;
    margin-top: 5px;
  }
  .schoolBox_txt .schoolTxt {
    font-size: 12px;
    margin-top: 20px;
  }
  .schoolBox_txt .schoolAddress {
    font-size: 12px;
    margin-top: 30px;
  }
  .osBox_txt {
    font-size: 12px;
  }
  /*otherschoolList*/
  .osBox {
    width: 48%;
  }
  .osBox:nth-child(n+3) {
    margin-top: 30px;
  }
  .osBox_txt{
    line-height: 1.2;
  }
  .schoolArea_txt {
    font-size: 18px;
    margin-top: 50px;
  }
}

/*------------------------------------------
captionArea
------------------------------------------*/
#captionArea {
  background-color: #fff;
  padding: 15px 0;  
}

/*------------------------------------------
outline
------------------------------------------*/
#outline {
  padding:40px 0;
}
#outline p {
  font-size: 14px;
}
@media screen and (max-width: 767px) {
  #outline {
    padding:20px 0;
  }
  #outline p {
    font-size: 12px;
  }
}

/*------------------------------------------
footer
------------------------------------------*/
#footer {
  padding: 5px 0;
  font-size: 12px;
  filter: drop-shadow(0px -1px 3px rgba(0,0,0,.2));
}
@media screen and (max-width: 767px) {
  #footer {
    padding: 5px 0 60px;
  }
}