@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  color: #3F3F3F;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: min(1.375vw, 19px);
  font-weight: 500; }
  @media screen and (max-width: 768px) {
    body {
      font-size: min(3vw, 16px);
      -webkit-text-size-adjust: 100%; }
      body .pc {
        display: none !important; } }
  @media screen and (min-width: 769px) {
    body a {
      transition: 0.3s; }
      body a:hover {
        opacity: 0.8; }
    body .sp {
      display: none !important; } }
  body a {
    text-decoration: none; }
  body img {
    width: 100%;
    height: auto; }

/* font */
.yellow {
  color: #ffff79; }

strong {
  font-weight: 900; }

p.l_1em {
  padding: 0 0 0 1em;
  text-indent: -1em;
  line-height: 1.7; }

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0; }

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeUpTrigger {
  opacity: 0; }

/* fadeDown */
.fadeDown {
  animation-name: fadeDownAnime;
  animation-duration: 0.7s;
  animation-fill-mode: forwards;
  opacity: 0; }

@-webkit-keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeDownTrigger {
  opacity: 0; }

/*********************************
 *
 * HEADER
 *
 *********************************/
header {
  position: relative;
  width: 100%;
  padding: 22px 0; }
  @media screen and (min-width: 769px) {
    header {
      position: fixed;
      top: 0;
      left: 0;
      transition: 0.3s;
      z-index: 10; } }
  @media screen and (max-width: 768px) {
    header {
      position: absolute;
      top: 0;
      left: 0;
      z-index: 10; } }
  @media screen and (min-width: 769px) {
    header.scroll {
      background-color: rgba(255, 255, 255, 0.8);
      box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.2); } }
  header .h_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      header .h_inner {
        width: calc(100% - 30px); } }
  header .h_logo {
    width: 14%;
    max-width: 152px; }
    @media screen and (max-width: 768px) {
      header .h_logo {
        width: 43.5%; } }
  header .h_btn a {
    padding: 0.3em 1.5em 0.5em 1.5em;
    background-color: #004789;
    border: 2px solid #004789;
    color: #fff493; }
    @media screen and (min-width: 769px) {
      header .h_btn a:hover {
        opacity: 1;
        background-color: #fff;
        border: 2px solid #fff493;
        color: #004789;
        font-weight: 700 !important; } }

/*********************************
 *
 * MV
 *
 *********************************/
#mv {
  position: relative;
  background: url("../images/mv.jpg") center top no-repeat;
  background-size: cover; }
  @media screen and (max-width: 768px) {
    #mv {
      background: none; } }
  #mv .mv_inner {
    position: relative;
    width: 100%;
    margin: 0 auto;
    z-index: 5; }
    @media screen and (max-width: 768px) {
      #mv .mv_inner {
        width: 100%; }
        #mv .mv_inner .logo {
          position: absolute;
          width: 43.2%;
          top: 8%;
          left: 50%;
          transform: translateX(-50%); } }

.fix_btn {
  position: relative;
  width: 100%;
  margin: 3em 0 0 0;
  padding: 0.8em 0; }
  @media screen and (max-width: 768px) {
    .fix_btn.scroll {
      position: fixed;
      bottom: 0;
      left: 0;
      background-color: rgba(255, 255, 255, 0.8);
      box-shadow: 0 -0.1em 0.2em rgba(0, 0, 0, 0.2);
      z-index: 100; } }
  .fix_btn a {
    display: block;
    width: 80%;
    margin: 0 auto;
    padding: 0.65em 0 0.75em 0;
    background-color: #004789;
    border: 1px solid #fff;
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
    color: #FFF493;
    font-size: 180%;
    font-weight: 700;
    text-align: center; }

/*********************************
 *
 * MAIN
 *
 *********************************/
main p {
  padding-top: 1em; }
  @media screen and (max-width: 768px) {
    main p {
      padding-top: 1.5em; } }
main .uline {
  position: relative;
  z-index: +1; }
  main .uline::after {
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 15%;
    left: 0;
    bottom: 15%;
    background-color: #FFF493;
    z-index: -1;
    /*mix-blend-mode: multiply;*/ }
    @media screen and (max-width: 768px) {
      main .uline::after {
        height: 50%; } }

/*********************************
 * lead
 *********************************/
#lead {
  padding: 8em 0 0 0; }
  @media screen and (max-width: 768px) {
    #lead {
      padding: 2.5em 0 3.5em 0; } }
  #lead .lead_bg {
    position: relative;
    background-color: #e3edf7;
    margin: 3em 0 0 0;
    padding: 0 0 4.5em 0;
    border: 1px solid transparent; }
    @media screen and (max-width: 768px) {
      #lead .lead_bg {
        margin: 5.5em 0 0 0; } }
  #lead .lead_inner {
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #lead .lead_inner {
        width: 100%; } }
  #lead .h2_box {
    position: relative;
    width: 58%;
    max-width: 588px;
    margin: -5em auto 0 auto; }
    @media screen and (max-width: 768px) {
      #lead .h2_box {
        width: 80%;
        margin: -3.5em auto 0 auto; } }
    #lead .h2_box h2 {
      position: absolute;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: 80%;
      font-size: 180%;
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #lead .h2_box h2 {
          font-size: 150%;
          letter-spacing: -0.05em; } }
      #lead .h2_box h2 span {
        margin: -0.25em 0.1em 0 0.1em;
        font-size: 150%; }
      @media screen and (max-width: 768px) {
        #lead .h2_box h2 .uline::after {
          height: 17%;
          bottom: 10%; } }
  #lead ul {
    display: flex;
    justify-content: space-between; }
    @media screen and (max-width: 768px) {
      #lead ul {
        flex-wrap: wrap;
        width: 85%;
        margin: 0 auto; } }
    #lead ul li {
      position: relative;
      width: 48%;
      margin: 1.5em 0 0 0; }
      @media screen and (max-width: 768px) {
        #lead ul li {
          width: 100%;
          margin: 2.5em 0 0 0; } }
      #lead ul li .img {
        margin-top: 1.4em; }
        @media screen and (max-width: 768px) {
          #lead ul li .img {
            margin-top: 1.7em;
            padding-bottom: 1.5em; } }
  #lead dl {
    display: flex;
    align-items: flex-end;
    justify-content: center; }
    @media screen and (max-width: 768px) {
      #lead dl {
        align-items: center;
        justify-content: flex-start; } }
    #lead dl dt {
      margin-right: 1em; }
      @media screen and (max-width: 768px) {
        #lead dl dt {
          margin-right: 0; } }
      #lead dl dt img {
        width: auto;
        height: 5.5em; }
        @media screen and (max-width: 768px) {
          #lead dl dt img {
            width: 10em;
            height: auto; } }
    #lead dl dd {
      color: #004789;
      font-size: 180%;
      font-weight: 700;
      text-align: center; }
      @media screen and (max-width: 768px) {
        #lead dl dd {
          flex: 1;
          padding: 0 0 0 0.8em;
          font-size: 220%;
          text-align: left; } }

/*********************************
 * lesson
 *********************************/
#lesson {
  padding: 1em 0 0 0; }
  @media screen and (max-width: 768px) {
    #lesson {
      padding: 0 0 3.5em 0; } }
  #lesson .lesson {
    font-size: 180%;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #lesson .lesson {
        padding: 0;
        font-size: 310%; } }
  #lesson .lesson_arw {
    position: relative;
    width: 14%;
    max-width: 138px;
    margin: 1em auto 0 auto;
    z-index: 2; }
    @media screen and (max-width: 768px) {
      #lesson .lesson_arw {
        width: 37%;
        max-width: none; } }
  #lesson .lesson_img {
    width: 95%;
    max-width: 1093px;
    margin: -1em auto 0 auto; }
    @media screen and (max-width: 768px) {
      #lesson .lesson_img {
        margin: -2em auto 0 auto; } }

/*********************************
 * program
 *********************************/
#program {
  margin: 6em 0 0 0;
  padding: 0 0 4.5em 0;
  background: url("../images/program_bg.png") left top;
  border: 1px solid transparent; }
  @media screen and (max-width: 768px) {
    #program {
      padding: 0 0 4em 0; } }
  #program .program_inner {
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #program .program_inner {
        width: 100%; } }
  #program h2 {
    position: relative;
    margin: -2.2em 0 0 0;
    padding: 1em 0;
    background: #004789;
    color: #fff;
    font-size: 200%;
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #program h2 {
        font-size: 300%;
        font-weight: 500;
        letter-spacing: 0.04em; } }
    #program h2::after {
      position: absolute;
      display: block;
      content: "";
      bottom: -0.7em;
      left: calc(50% - 0.9em);
      width: 0;
      height: 0;
      border-top: 0.8em solid #004789;
      border-right: 1em solid transparent;
      border-left: 1em solid transparent; }
      @media screen and (max-width: 768px) {
        #program h2::after {
          bottom: calc(-1em + 2px);
          left: calc(50% - 1.4em);
          border-top: 1em solid #004789;
          border-right: 1.4em solid transparent;
          border-left: 1.4em solid transparent; } }
    #program h2 span {
      display: block;
      font-size: 50%;
      font-weight: 500; }
  #program ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 3em 0 0 0; }
    @media screen and (max-width: 768px) {
      #program ul {
        width: 85%;
        margin: 0 auto; } }
    #program ul li {
      position: relative;
      width: 46.4%;
      max-width: 475px;
      margin: 2.5em 0 0 0;
      padding: 2em 0 0 1.5em; }
      @media screen and (max-width: 768px) {
        #program ul li {
          width: 100%;
          max-width: 475px;
          margin: 3em 0 0 0; }
          #program ul li:nth-child(2) {
            margin: 4em 0 0 0; } }
      #program ul li .num {
        position: absolute;
        width: 24%;
        top: 0;
        left: 0; }
      #program ul li .fukidasi {
        position: absolute;
        width: 69%;
        top: -1.8em;
        right: 0.8em; }
        @media screen and (max-width: 768px) {
          #program ul li .fukidasi {
            width: 60%;
            right: 0; } }
      #program ul li p {
        padding: 0.8em 0 0 0;
        font-size: 130%;
        font-weight: 700; }
        @media screen and (max-width: 768px) {
          #program ul li p {
            padding: 0.2em 0 0 0;
            font-size: 160%;
            text-align: center; } }
        #program ul li p span {
          display: block;
          text-indent: 6em; }
          @media screen and (max-width: 768px) {
            #program ul li p span {
              text-indent: 0; } }

/*********************************
 * flow
 *********************************/
#flow {
  padding: 5em 0; }
  @media screen and (max-width: 768px) {
    #flow {
      padding: 4em 0; } }
  #flow .flow_inner {
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #flow .flow_inner {
        width: 100%; } }
  #flow .belongings_inner {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    background-color: #efefef;
    padding: 2.5em 4%; }
    @media screen and (max-width: 768px) {
      #flow .belongings_inner {
        padding: 3em 0 3.5em 0; } }
  #flow .belongings_box {
    width: 48%; }
    @media screen and (max-width: 768px) {
      #flow .belongings_box {
        width: 85%;
        margin: 0 auto; } }
    #flow .belongings_box h3 {
      color: #004789;
      font-size: 130%;
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #flow .belongings_box h3 {
          font-size: 170%; } }
    #flow .belongings_box .flex {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap; }
      #flow .belongings_box .flex .img {
        width: 33%;
        padding: 10% 1.5em 0 0; }
    #flow .belongings_box .notice {
      display: inline-block;
      padding: 0.4rem 0 0 0.6rem;
      font-size: 12px;
      font-weight: 500;
      text-indent: -0.6rem; }
      @media screen and (max-width: 768px) {
        #flow .belongings_box .notice {
          font-size: 10px; } }
    #flow .belongings_box ul {
      padding: 1.5em 0 0 0;
      font-weight: 700;
      letter-spacing: -0.04em; }
      @media screen and (max-width: 768px) {
        #flow .belongings_box ul {
          padding: 1em 0 0 0;
          font-size: 150%; } }
      #flow .belongings_box ul li {
        padding: 0.2em 0 0.2em 1em;
        text-indent: -1em; }
        @media screen and (max-width: 768px) {
          #flow .belongings_box ul li {
            padding: 0 0 0 1em; } }
        #flow .belongings_box ul li .fs70 {
          font-size: 70%; }
          @media screen and (max-width: 768px) {
            #flow .belongings_box ul li .fs70 {
              display: block;
              padding: 0 0 0 1em; } }
        #flow .belongings_box ul li .atn {
          display: inline-block;
          padding: 0.6rem 0 0 1.1rem;
          font-size: 12px;
          font-weight: 500; }
          @media screen and (max-width: 768px) {
            #flow .belongings_box ul li .atn {
              padding: 0 0 0.7rem 1.1rem;
              font-size: 10px; } }
  #flow .belongings_box:nth-child(1) {
    position: relative; }
    #flow .belongings_box:nth-child(1) .img {
      position: absolute;
      width: 28%;
      padding: 0;
      top: 0;
      right: 2em; }
  #flow .belongings_box + .belongings_box .img {
    margin: 0.2em 0 0 0;
    text-align: right; }
    @media screen and (max-width: 768px) {
      #flow .belongings_box + .belongings_box .img {
        width: 90%;
        margin: 0 auto; } }
    #flow .belongings_box + .belongings_box .img img {
      width: 40%; }
      @media screen and (max-width: 768px) {
        #flow .belongings_box + .belongings_box .img img {
          width: 45%; } }
  @media screen and (max-width: 768px) {
    #flow .belongings_box + .belongings_box h3 {
      margin-top: 1em; } }
  #flow .uline::after {
    height: 30%;
    bottom: 0; }
  #flow .note {
    width: 100%;
    margin: 1em 0 0 0;
    color: #004789;
    font-weight: 700;
    line-height: 1.1;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #flow .note {
        margin: 1.5em 0 0 0;
        font-size: 150%; } }
    #flow .note .fs280 {
      font-size: 280%; }
    #flow .note .fs200 {
      font-size: 200%; }
  #flow .flow_box {
    margin: 4em 0 0 0;
    padding: 3em 0;
    background-color: #004789;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #flow .flow_box {
        padding: 3em 0 6em 0; } }
    #flow .flow_box h3 {
      position: relative;
      color: #fff493;
      font-size: 180%;
      font-weight: 700;
      text-align: center;
      z-index: 2; }
      @media screen and (max-width: 768px) {
        #flow .flow_box h3 {
          font-size: 300%;
          line-height: 1; } }
      #flow .flow_box h3::after {
        position: absolute;
        display: block;
        content: "";
        width: 100%;
        height: 2px;
        top: calc(50% + 1px);
        left: 0;
        background-color: #fff;
        z-index: -1; }
      #flow .flow_box h3 span {
        padding: 0 0.5em;
        background-color: #004789; }
    #flow .flow_box ul {
      display: flex;
      justify-content: center; }
      @media screen and (max-width: 768px) {
        #flow .flow_box ul {
          flex-wrap: wrap;
          width: 70%;
          margin: 0 auto;
          padding: 2em 0 0 0; } }
      #flow .flow_box ul li {
        display: flex;
        flex-wrap: wrap;
        width: 24%;
        margin: 1.5em 0 0 0;
        text-align: center; }
        @media screen and (max-width: 768px) {
          #flow .flow_box ul li {
            width: 100%; } }
        #flow .flow_box ul li.arw {
          align-items: center;
          justify-content: center;
          width: 8%; }
          @media screen and (max-width: 768px) {
            #flow .flow_box ul li.arw {
              width: 100%; } }
          #flow .flow_box ul li.arw img {
            width: auto;
            height: 2.2em;
            margin: 2em 0 0 0; }
            @media screen and (max-width: 768px) {
              #flow .flow_box ul li.arw img {
                height: 4em;
                margin: 0.5em 0 0 0;
                transform: rotate(90deg); } }
        #flow .flow_box ul li p {
          width: 100%; }
          @media screen and (max-width: 768px) {
            #flow .flow_box ul li p {
              padding: 0.8em 0 0 0;
              font-size: 160%; } }
      #flow .flow_box ul .num {
        width: 21%;
        max-width: 50px;
        margin: 0 auto; }
        @media screen and (max-width: 768px) {
          #flow .flow_box ul .num {
            width: 18%; } }
      #flow .flow_box ul .line2 {
        padding-top: 1em; }
        @media screen and (max-width: 768px) {
          #flow .flow_box ul .line2 {
            padding-top: 0.8em; } }

/*********************************
 * contact
 *********************************/
#contact {
  overflow: hidden;
  padding: 3em 0 4.5em 0;
  background-color: #004789; }
  @media screen and (max-width: 768px) {
    #contact {
      padding: 3em 0 4em 0; } }
  #contact .contact_inner {
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #contact .contact_inner {
        width: 90%; } }
  #contact h2 {
    color: #fff;
    font-size: 200%;
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #contact h2 {
        font-size: 240%; } }
  #contact .contact_btn {
    width: 46%;
    max-width: 460px;
    margin: 1em auto 0 auto;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #contact .contact_btn {
        width: 100%;
        padding: 1em 0.5em 0 0.5em;
        font-size: 120%;
        line-height: 1.8;
        text-align: left; } }
    #contact .contact_btn a {
      display: block;
      padding: 0.8em 0;
      background: #fff493;
      border: 2px solid #fff493;
      color: #004789;
      font-size: 140%;
      font-weight: 900; }
      @media screen and (max-width: 768px) {
        #contact .contact_btn a {
          padding: 0.3em 0;
          font-size: 170%;
          text-align: center; } }
      @media screen and (min-width: 769px) {
        #contact .contact_btn a:hover {
          opacity: 1;
          background-color: #fff;
          border: 2px solid #fff493; } }
      #contact .contact_btn a span {
        padding: 0 3em;
        background: url("../images/arw_blue.svg") right 1em center no-repeat;
        background-size: auto 1em; }
        @media screen and (max-width: 768px) {
          #contact .contact_btn a span {
            padding: 0;
            background: none; } }
  #contact .contact_slider {
    margin-top: 2.7em; }
    @media screen and (max-width: 768px) {
      #contact .contact_slider {
        margin-top: 3.5em; } }

/*********************************
 * pagetop
 *********************************/
#pagetop {
  position: fixed;
  width: 2em;
  height: 2em;
  right: 50px;
  bottom: 50px;
  z-index: 100; }
  @media screen and (max-width: 768px) {
    #pagetop {
      width: 2.8em;
      height: 2.8em;
      right: 0.35em;
      bottom: 1em; } }
  #pagetop a {
    display: block;
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.2); }

/*********************************
 *
 * FOOTER
 *
 *********************************/
footer {
  padding: 8em 0 2em 0; }
  @media screen and (max-width: 768px) {
    footer {
      padding: 4em 0 8em 0; } }
  footer .f_inner {
    width: 82%;
    max-width: 1024px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      footer .f_inner {
        width: 95%; } }
  footer .f_logo {
    width: 14.6%;
    max-width: 150px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      footer .f_logo {
        width: 38%; } }
  footer ul {
    display: flex;
    justify-content: center; }
    footer ul li {
      width: 48px;
      margin: 1em 0.5em 0 0.5em; }
      @media screen and (max-width: 768px) {
        footer ul li {
          width: 3.5em;
          margin: 1em 0.8em 0 0.8em; } }
  footer p {
    margin: 2.5em 0 0 0;
    font-size: 70%;
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      footer p {
        margin: 2em 0 0 0;
        font-size: 90%; } }
