@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Jost:wght@600;700;800;900&family=Roboto:wght@400;500;700&display=swap");
/* mv
=========================================== */
.mv {
  color: #fff;
  position: relative; }
  .mv .mv_img {
    width: 100%; }
    .mv .mv_img img {
      height: auto;
      min-height: 520px;
      width: 100%;
      vertical-align: bottom;
      object-fit: cover; }
  .mv .mv_text {
    position: absolute;
    width: 100%;
    text-align: center;
    max-width: 1080px;
    z-index: 1;
    top: 29%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
    @media only screen and (max-width: 767px) {
      .mv .mv_text {
        top: 50%; } }
    .mv .mv_text p {
      color: #fff;
      font-weight: 700;
      font-size: 6.8rem;
      text-shadow: 0 0 3px #fff,0 0 8px #fff; }
      @media only screen and (max-width: 1361px) {
        .mv .mv_text p {
          font-size: 5rem; } }
      @media only screen and (max-width: 900px) {
        .mv .mv_text p {
          font-size: 4rem; } }
      @media only screen and (max-width: 767px) {
        .mv .mv_text p {
          font-size: 2.4rem; } }
  @media only screen and (min-width: 768px) {
    .mv .mv_btn {
      z-index: 1000;
      position: absolute;
      width: 100%;
      text-align: center;
      max-width: 640px;
      top: 65%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      gap: 80px; } }
  @media only screen and (max-width: 767px) {
    .mv .mv_btn div {
      position: relative; }
      .mv .mv_btn div img {
        width: 100%;
        height: auto;
        vertical-align: bottom; } }
  @media only screen and (min-width: 768px) {
    .mv .mv_btn p {
      position: relative;
      display: block;
      font-size: 2rem;
      line-height: 1.8;
      font-weight: 600; }
      .mv .mv_btn p:after {
        content: "";
        width: 1px;
        height: 40px;
        position: absolute;
        bottom: -60px;
        left: 0;
        right: 0;
        margin: auto;
        background: #fff; } }
  @media only screen and (min-width: 768px) and (max-width: 1024px) {
    .mv .mv_btn p:after {
      height: 20px;
      bottom: -30px; } }
  @media only screen and (max-width: 767px) {
    .mv .mv_btn p {
      position: absolute;
      top: 40%;
      left: 0;
      right: 0;
      text-align: center;
      margin: 0 auto;
      font-size: 1.8rem;
      font-weight: 600; } }
  .mv .mv_btn .btn {
    width: 280px;
    margin-top: 80px;
    font-size: 2rem;
    line-height: 68px;
    border: 1px solid #fff;
    border-radius: 34px;
    font-weight: 600; }
    .mv .mv_btn .btn span {
      color: #fff; }
    @media only screen and (min-width: 768px) and (max-width: 1024px) {
      .mv .mv_btn .btn {
        margin-top: 55px; } }
    @media only screen and (max-width: 767px) {
      .mv .mv_btn .btn {
        position: absolute;
        bottom: 20%;
        left: 0;
        right: 0;
        text-align: center;
        margin: 0 auto;
        width: 220px;
        height: 48px;
        line-height: 48px;
        font-size: 1.6rem; } }
  .mv .mv_btn .btn.grad_b:before {
    background: #fff;
    color: #2B46F5;
    border: 1px solid #2B46F5;
    border-radius: 34px; }
  @media (hover: hover) {
    .mv .mv_btn .btn.grad_b:hover {
      border: none; }
      .mv .mv_btn .btn.grad_b:hover span {
        color: #2B46F5; } }
  .mv .mv_btn .btn.grad_p:before {
    background: #fff;
    color: #BE42B9;
    border: 1px solid #BE42B9;
    border-radius: 34px; }
  @media (hover: hover) {
    .mv .mv_btn .btn.grad_p:hover {
      border: none; }
      .mv .mv_btn .btn.grad_p:hover span {
        color: #BE42B9; } }

/* animation
=========================================== */
.shiny {
  position: relative; }

.shiny:after {
  position: absolute;
  content: '';
  display: inline-block;
  top: -180px;
  left: 0;
  width: 30px;
  height: 100%;
  background-color: #fff; }

.shiny1:after {
  animation: shiny 3s ease-in-out 1; }

.shiny2:after {
  animation: shiny 4s ease-in-out 1; }

@-webkit-keyframes shiny {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0; }
  80% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0.5; }
  81% {
    -webkit-transform: scale(4) rotate(45deg);
    opacity: 1; }
  100% {
    -webkit-transform: scale(50) rotate(45deg);
    opacity: 0; } }
/* TextRandomAnime */
.TextRandomAnime span {
  opacity: 0; }

.TextRandomAnime.appearRandomtext span {
  animation: text_randomanime_on 2s ease-out forwards; }

@keyframes text_randomanime_on {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.TextRandomAnime.appearRandomtext span:nth-child(2n) {
  animation-delay: .5s;
  /* spanのついた2の倍数の文字列の変化を0.5秒遅らせる*/ }

.TextRandomAnime.appearRandomtext span:nth-child(3n+1) {
  animation-delay: .15s;
  /* spanのついた3の倍数＋1の文字列の変化を0.15秒遅らせる*/ }

/* ふわっと */
.box {
  opacity: 0; }

.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes fadeInAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger {
  opacity: 0; }

/* news
=========================================== */
.newsbg {
  background: url(../img/dots_pattern01.svg) top 120px left no-repeat; }
  @media only screen and (max-width: 767px) {
    .newsbg {
      background: url(../img/dots_pattern01_sp.svg) bottom left no-repeat; } }

#news {
  position: relative;
  width: 89.6%;
  float: right;
  z-index: 500;
  background: #fff;
  border-radius: 20px 0 0 20px;
  margin-top: -50px;
  padding: 40px 60px 40px 44px; }
  @media only screen and (max-width: 767px) {
    #news {
      margin-top: 20px;
      margin-left: 20px;
      width: calc(100% - 40px);
      border-radius: 10px 0 0 10px;
      padding: 30px 20px; } }
  #news .btn {
    width: 120px;
    height: 40px;
    line-height: 40px;
    border-radius: 20px;
    text-align: center; }
    #news .btn span {
      font-weight: 600; }
    #news .btn:after {
      top: 30%;
      right: 10%; }
    @media (hover: hover) {
      #news .btn:hover:after {
        top: 26%;
        right: 10%; } }

#news.flex > div {
  width: 145px; }
  @media only screen and (max-width: 767px) {
    #news.flex > div {
      width: 100%; } }
#news.flex > dl {
  width: calc(100% - 200px); }
  @media only screen and (max-width: 767px) {
    #news.flex > dl {
      width: 100%;
      margin-bottom: 20px; } }
  #news.flex > dl > div.flex {
    border-bottom: 1px solid #EBEBEB;
    width: 100%; }
    @media only screen and (max-width: 767px) {
      #news.flex > dl > div.flex {
        padding-bottom: 14px; } }
    #news.flex > dl > div.flex dt {
      width: 99px;
      text-align: left;
      color: #A7A7A7;
      font-size: 1.4rem;
      line-height: 50px; }
      @media only screen and (max-width: 767px) {
        #news.flex > dl > div.flex dt {
          line-height: 1;
          margin-top: 17px;
          padding-bottom: 10px; } }
    #news.flex > dl > div.flex dd {
      width: calc(100% - 99px);
      text-align: left;
      font-size: 1.4rem; }
      @media only screen and (min-width: 768px) {
        #news.flex > dl > div.flex dd {
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;
          line-height: 50px; } }
      @media only screen and (max-width: 767px) {
        #news.flex > dl > div.flex dd {
          width: 100%;
          overflow: hidden;
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2; } }
      #news.flex > dl > div.flex dd a.link {
        display: inline; }
        @media only screen and (max-width: 767px) {
          #news.flex > dl > div.flex dd a.link {
            line-height: 1.7; } }

/* service
=========================================== */
.servicebg {
  background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 50%, #0439AF 50%, #470398 100%); }
  @media only screen and (max-width: 767px) {
    .servicebg {
      background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 30%, #0439AF 30%, #470398 100%); } }

#jyukuPage .servicebg {
  background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 50%, #0873C5 50%, #241E8D 100%); }
  @media only screen and (max-width: 767px) {
    #jyukuPage .servicebg {
      background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 30%, #0873C5 30%, #241E8D 100%); } }

#gakkouPage .servicebg {
  background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 50%, #A20BC6 50%, #443CBF 100%); }
  @media only screen and (max-width: 767px) {
    #gakkouPage .servicebg {
      background: linear-gradient(180deg, #EBEBEB 0%, #EBEBEB 30%, #A20BC6 30%, #443CBF 100%); } }

#service {
  text-align: center;
  margin: -20px auto 0 auto;
  background: url(../img/top_service_text.png) bottom right no-repeat;
  background-size: contain; }
  @media only screen and (max-width: 1279px) {
    #service {
      background: none; } }
  @media only screen and (max-width: 767px) {
    #service {
      margin-top: 0; } }
  #service div.iconlist {
    background: #fff;
    border-radius: 10px;
    padding: 50px;
    margin-top: 20px;
    width: 49%; }
    @media only screen and (max-width: 1100px) {
      #service div.iconlist {
        width: 100%; } }
    @media only screen and (max-width: 767px) {
      #service div.iconlist {
        padding: 40px; } }
    #service div.iconlist h3 {
      font-size: 2.4rem;
      font-weight: 600; }
      @media only screen and (max-width: 767px) {
        #service div.iconlist h3 {
          font-size: 2rem;
          margin-bottom: 30px; } }

#jyukuPage #service {
  background: url(/jyuku/img/jyuku_service_text.png) bottom right no-repeat;
  background-size: contain; }
  @media only screen and (max-width: 1279px) {
    #jyukuPage #service {
      background: none; } }

#gakkouPage #service {
  background: url(/gakkou/img/jyuku_service_text.png) bottom right no-repeat;
  background-size: contain; }
  @media only screen and (max-width: 1279px) {
    #gakkouPage #service {
      background: none; } }

div.iconlist dl.flex.flex-between {
  text-align: center;
  margin: 35px auto 0 auto; }
  @media only screen and (max-width: 767px) {
    div.iconlist dl.flex.flex-between {
      flex-direction: row;
      margin: 0 auto; }
      div.iconlist dl.flex.flex-between > div {
        width: 50%;
        margin-bottom: 20px; } }
  div.iconlist dl.flex.flex-between dt {
    font-size: 1.4rem;
    text-align: center;
    margin: 0 auto;
    white-space: nowrap;
    line-height: 1.6; }
    div.iconlist dl.flex.flex-between dt span {
      height: 34px;
      line-height: 16px;
      display: flex;
      align-items: center;
      justify-content: center; }
    div.iconlist dl.flex.flex-between dt span.f12 {
      font-size: 1.2rem;
      line-height: 1.4; }
    div.iconlist dl.flex.flex-between dt img {
      display: block;
      text-align: center;
      margin: 0 auto; }
  div.iconlist dl.flex.flex-between dd a {
    position: relative;
    overflow: hidden;
    text-align: center;
    margin: 6px auto 0 auto;
    color: #fff;
    line-height: 24px;
    width: 80px;
    border-radius: 12px;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-transition: .3s;
    -moz-transition: .3s;
    transition: .3s; }
    div.iconlist dl.flex.flex-between dd a span {
      position: relative;
      z-index: 3; }
    div.iconlist dl.flex.flex-between dd a:before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2;
      width: 100%;
      height: 100%;
      transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
      transform: scale(0, 1);
      transform-origin: right top; }
    @media (hover: hover) {
      div.iconlist dl.flex.flex-between dd a:hover span {
        color: #fff; }
      div.iconlist dl.flex.flex-between dd a:hover:before {
        transform-origin: left top;
        transform: scale(1, 1);
        border-radius: 12px;
        background: #fff; } }
  div.iconlist dl.flex.flex-between dd:first-of-type a {
    background: #0439AF;
    border: 1px solid #0439AF; }
    @media (hover: hover) {
      div.iconlist dl.flex.flex-between dd:first-of-type a:hover span {
        color: #0439AF; }
      div.iconlist dl.flex.flex-between dd:first-of-type a:hover:before {
        color: #0439AF; } }
  div.iconlist dl.flex.flex-between dd:nth-of-type(2) a {
    background: #BE42B9;
    border: 1px solid #BE42B9; }
    @media (hover: hover) {
      div.iconlist dl.flex.flex-between dd:nth-of-type(2) a:hover span {
        color: #BE42B9; }
      div.iconlist dl.flex.flex-between dd:nth-of-type(2) a:hover:before {
        color: #BE42B9; } }

.iconlist.kyomu dl.flex.flex-between {
  width: 400px; }
  @media only screen and (max-width: 767px) {
    .iconlist.kyomu dl.flex.flex-between {
      width: 100%; } }
  @media only screen and (max-width: 767px) {
    .iconlist.kyomu dl.flex.flex-between dt span {
      height: 44px; } }
  .iconlist.kyomu dl.flex.flex-between dt:first-of-type,
  .iconlist.kyomu dl.flex.flex-between dt:nth-of-type(3) {
    width: 200px; }
    @media only screen and (max-width: 767px) {
      .iconlist.kyomu dl.flex.flex-between dt:first-of-type,
      .iconlist.kyomu dl.flex.flex-between dt:nth-of-type(3) {
        width: 100%; } }

#gakkouPage div.iconlist dl.flex.flex-between dd:first-of-type a {
  background: #A20BC6;
  border: 1px solid #A20BC6; }
  @media (hover: hover) {
    #gakkouPage div.iconlist dl.flex.flex-between dd:first-of-type a:hover span {
      color: #A20BC6; }
    #gakkouPage div.iconlist dl.flex.flex-between dd:first-of-type a:hover:before {
      color: #A20BC6; } }

/* example
=========================================== */
.examplebg {
  margin-top: 60px;
  padding-top: 100px;
  background: top 0px right no-repeat;
  background-image: url(../img/dots_pattern02.svg), url(../img/top_example_img.png);
  background-position: top 0 right, left bottom;
  background-size: 683px, 683px;
  background-repeat: no-repeat, no-repeat;
  padding-bottom: 0;
  height: 850px; }
  @media only screen and (max-width: 1710px) {
    .examplebg {
      background-size: 683px, 584px; } }
  @media only screen and (max-width: 993px) {
    .examplebg {
      background-size: 683px, 400px;
      padding-bottom: 0; } }
  @media only screen and (max-width: 767px) {
    .examplebg {
      background: url(../img/dots_pattern02_sp.svg) top right no-repeat;
      padding-bottom: 0;
      margin-bottom: 0;
      padding-top: 0;
      margin-top: 40px;
      height: unset; } }
  .examplebg .btn {
    float: right;
    margin-top: 40px; }
    @media only screen and (max-width: 767px) {
      .examplebg .btn {
        float: none;
        text-align: center;
        margin: 20px auto 30px auto; } }
  @media only screen and (max-width: 767px) {
    .examplebg .inner {
      margin-right: 0;
      margin-left: 5.3%;
      width: 94.7%; }
    .examplebg .inner.btnbox {
      margin-right: 0;
      margin-left: 0;
      width: 100%; } }

@media only screen and (min-width: 1711px) {
  #jyukuPage .examplebg {
    background: top 50px right no-repeat;
    background-image: url(/jyuku/img/jyuku_dots_pattern02.svg), url(../img/top_example_img.png);
    background-position: top 50px right, left bottom;
    background-size: 683px, 750px;
    background-repeat: no-repeat, no-repeat; } }
@media only screen and (max-width: 1710px) {
  #jyukuPage .examplebg {
    background: top 50px right no-repeat;
    background-image: url(/jyuku/img/jyuku_dots_pattern02.svg), url(../img/top_example_img.png);
    background-position: top 50px right, left bottom;
    background-size: 683px, 683px;
    background-repeat: no-repeat, no-repeat;
    padding-bottom: 0;
    margin-bottom: 40px; } }
@media only screen and (max-width: 1199px) {
  #jyukuPage .examplebg {
    background-image: url(/jyuku/img/jyuku_dots_pattern02.svg), url(../img/top_example_img.png);
    background-position: top 50px right, left bottom;
    background-size: 683px, 400px;
    background-repeat: no-repeat, no-repeat;
    padding-bottom: 0;
    margin-bottom: 20px; } }
@media only screen and (max-width: 767px) {
  #jyukuPage .examplebg {
    background: url(/jyuku/img/sp_jyuku_dots_pattern02.svg) top right no-repeat; } }
#jyukuPage .btn.blank {
  color: #0439AF;
  border: 2px solid #0439AF; }
  #jyukuPage .btn.blank:after {
    background: url(/jyuku/img/tab_icon_blue.svg) top left no-repeat; }
  #jyukuPage .btn.blank:before {
    background: #0439AF;
    border-color: #0439AF; }
  @media (hover: hover) {
    #jyukuPage .btn.blank:hover:after {
      background: url(../img/tab_icon_hover.svg) top left no-repeat; } }

#example > div {
  max-width: 777px;
  width: calc(100% - 215px); }
  @media only screen and (max-width: 767px) {
    #example > div {
      width: 100%; } }
#example ul {
  width: 100%; }
  @media only screen and (max-width: 767px) {
    #example ul {
      width: 100%; } }
  #example ul li a {
    background: #fff;
    padding: 24px;
    border-radius: 6px;
    margin-bottom: 20px; }
    @media only screen and (max-width: 767px) {
      #example ul li a {
        padding: 0;
        border-radius: 4px; } }
    #example ul li a figure {
      width: 195px; }
      @media only screen and (max-width: 767px) {
        #example ul li a figure {
          width: 100%; } }
      #example ul li a figure img {
        width: 195px;
        height: 146px;
        object-fit: cover; }
        @media only screen and (max-width: 767px) {
          #example ul li a figure img {
            border-radius: 4px 4px 0 0;
            width: 100%;
            height: auto; } }
    #example ul li a > div {
      width: calc(100% - 215px);
      text-align: left;
      line-height: 1.6; }
      @media only screen and (max-width: 767px) {
        #example ul li a > div {
          width: 100%;
          padding: 24px 20px; } }
      #example ul li a > div p.date {
        font-size: 1.4rem;
        color: #A7A7A7; }
      #example ul li a > div p.ttl {
        color: #1D1D1B;
        font-size: 1.8rem;
        margin: 6px 0 8px 0;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        width: 100%; }
        @media only screen and (max-width: 767px) {
          #example ul li a > div p.ttl {
            height: 80px;
            font-size: 1.6rem; } }
      #example ul li a > div p.text {
        font-size: 1.4rem;
        color: #A7A7A7;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        width: 100%; }
        @media only screen and (max-width: 767px) {
          #example ul li a > div p.text {
            height: 40px; } }

/* column
=========================================== */
.columnbg {
  background: url(../img/top_column_text.png) top 80px left no-repeat #F7F7F7;
  background-size: auto 80%;
  margin-top: 80px;
  padding: 80px 0; }
  @media only screen and (max-width: 1710px) {
    .columnbg {
      margin-top: 40px; } }
  @media only screen and (max-width: 1279px) {
    .columnbg {
      background: none; } }
  @media only screen and (max-width: 1199px) {
    .columnbg {
      margin-top: 20px; } }
  @media only screen and (max-width: 767px) {
    .columnbg {
      padding: 0 0 40px 0;
      margin-bottom: 0; } }

#column {
  text-align: center;
  margin-right: auto;
  margin-left: auto; }
  @media only screen and (max-width: 767px) {
    #column .inner {
      margin-right: 0;
      margin-left: 5.3%;
      width: 94.7%; } }
  #column ul {
    margin-top: 30px;
    margin-bottom: 60px; }
    @media only screen and (max-width: 767px) {
      #column ul {
        margin-bottom: 30px; } }
    #column ul li a {
      background: #fff;
      border-radius: 6px;
      display: block; }
      @media only screen and (max-width: 767px) {
        #column ul li a {
          border-radius: 4px; } }
      #column ul li a figure {
        width: 100%; }
        #column ul li a figure img {
          width: 100%;
          height: 200px;
          object-fit: cover;
          border-radius: 6px 6px 0 0; }
          @media only screen and (max-width: 767px) {
            #column ul li a figure img {
              border-radius: 4px 4px 0 0; } }
      #column ul li a > div {
        padding: 24px 20px;
        width: 100%;
        text-align: left;
        line-height: 1.6; }
        #column ul li a > div p.date {
          font-size: 1.4rem;
          color: #A7A7A7; }
        #column ul li a > div p.ttl {
          color: #1D1D1B;
          font-size: 1.6rem;
          margin: 6px 0 8px 0;
          overflow: hidden;
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2;
          width: 100%; }
          @media only screen and (max-width: 767px) {
            #column ul li a > div p.ttl {
              height: 80px; } }
        #column ul li a > div p.text {
          font-size: 1.2rem;
          color: #A7A7A7;
          overflow: hidden;
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 3;
          width: 100%; }
          @media only screen and (max-width: 767px) {
            #column ul li a > div p.text {
              height: 40px; } }
  #column .btn {
    text-align: center;
    margin-left: auto;
    margin-right: auto; }
  #column #note {
    justify-content: center;
    gap: 36px;
    align-items: stretch; }

/* contactBox
=========================================== */
#topPage .contactBoxbg {
  background: linear-gradient(180deg, #F7F7F7 0%, #F7F7F7 50%, #292929 50%, #292929 100%); }

/* slick
=========================================== */
@media (max-width: 767px) {
  .slick-list {
    padding: 0 10% 0 0 !important; }

  .slick-slide {
    margin-right: 15px; }

  .slick-list img {
    width: 100%; } }
