@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..600&display=swap");
body {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.75em;
  color: #3e3e3e; }

input,
button {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.75em;
  color: #3e3e3e; }

h2 {
  font-size: 3em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 1.3; }
  h2 span {
    font-size: 12px; }
  h2.person-title {
    text-align: center;
    margin-bottom: 40px; }
    h2.person-title .only-sp {
      display: none; }

h3 {
  font-size: 1.3em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.75em; }
  h3 span {
    font-size: 0.5em;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
    line-height: 1.75em; }

.float-nav li a {
  font-size: 1em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.75em; }

.cta-btn {
  font-size: 1em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.75em; }

#news .p-date {
  font-size: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1.75em; }
#news .p-title {
  font-size: 0.9em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#news-arc .arc-title {
  font-size: 1.2em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#news-single .sin-title {
  font-size: 2em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 1.6; }

#person .profile .name {
  font-size: 1.25em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#assignment .assi-box2 .text .heading {
  font-size: 1.5em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 2em; }
#assignment .assi-box2 .text .desc {
  font-size: 1.25em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 2em; }
#assignment .about {
  font-size: 1.75em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 1.5em; }

#system .movie p {
  font-size: 1.7em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#contents .topics {
  font-size: 1.7em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em;
  line-height: 1.5em; }
  #contents .topics .topics-min {
    font-size: 0.8em; }
#contents .num {
  font-size: 3em; }

#experience .item .heading {
  font-size: 1.75em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#package-flow .box-left .date .heading {
  font-weight: 600;
  line-height: 1.5em; }
#package-flow .box-right .list .step {
  font-size: 1.3em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }
#package-flow .box-right .list .text .heading {
  font-size: 1.5em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

#contact .cont .heading {
  font-size: 2em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 1.75em; }

.strong {
  font-size: 1.8em; }

.book-flex h2 {
  font-size: 1.8em; }
.book-flex .strong {
  font-size: 1.5em; }

.only-sp {
  display: none; }

footer .ft-text p:nth-of-type(2) {
  font-size: 0.75em; }
footer .credit {
  font-size: 0.8em; }

@media screen and (max-width: 900px) {
  body {
    font-size: 14px; }

  h2 {
    font-size: 2.3em; }

  #assignment .about {
    font-size: 1.4em; } }
@media screen and (max-width: 540px) {
  body {
    font-size: 12px; }

  h2 {
    font-size: 2em; }

  h3 {
    font-size: 2em;
    line-height: 1.2em; }

  #news-arc .arc-date {
    font-size: 0.9em; }
  #news-arc .arc-title {
    font-size: 1em; }

  #news-single .sin-title {
    font-size: 1.6em; }

  #assignment .about {
    font-size: 1.75em; }

  #system .movie p {
    font-size: 1.5em; }

  #package-flow .box-left .date .schedule {
    font-size: 3vw; }
  #package-flow .box-right .list .text .heading {
    font-size: 1.3em; } }
html,
body {
  width: 100%;
  background-image: url(../images/body-bg.png);
  background-color: rgba(255, 255, 255, 0.4);
  height: 100%;
  background-position: center;
  background-blend-mode: lighten;
  background-attachment: fixed;
  overflow-x: clip; }

#thanks-page {
  background-image: url(../images/mein-back.webp);
  height: 100%;
  justify-content: center;
  padding: 0;
  position: relative; }
  #thanks-page::after {
    width: 100%;
    height: 100%;
    position: absolute;
    content: "";
    background-color: rgba(51, 51, 51, 0.337);
    z-index: -1; }
  #thanks-page .mainvisual {
    width: calc(100% - 1em);
    margin: auto;
    max-width: 600px; }
    #thanks-page .mainvisual .main-box {
      background-color: #fff;
      border-radius: 10px;
      padding: 1em 1em;
      box-shadow: 2px 2px 6px #333; }
      #thanks-page .mainvisual .main-box .logo-bk {
        max-width: 160px;
        margin: 20px auto; }
      #thanks-page .mainvisual .main-box h2 {
        font-size: 2.5em;
        text-align: center; }
      #thanks-page .mainvisual .main-box p {
        text-align: center;
        margin: 10px 0; }
      #thanks-page .mainvisual .main-box a {
        padding: 1em 2em;
        display: block;
        max-width: 300px;
        margin: 20px auto 0;
        color: #fff;
        background-color: #be1d1d;
        border-radius: 30px;
        text-align: center;
        transition: all 0.3s linear; }
        #thanks-page .mainvisual .main-box a:hover {
          background-color: #333; }

img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto; }

section {
  display: block;
  position: relative;
  z-index: 0;
  padding: 120px 0; }

.inner-wrap {
  padding: 0 4em;
  width: calc(100% - 8em);
  max-width: 1200px;
  margin: auto; }

h2 span {
  color: #c20029; }

h3 span {
  color: #c20029; }

.bottom-swip {
  background-color: #c00029;
  position: relative;
  z-index: 0; }
  .bottom-swip .swip-text {
    text-align: center;
    color: #fff;
    letter-spacing: 10px;
    padding: 10px 0; }
    .bottom-swip .swip-text .hh {
      font-weight: 400;
      font-size: 1.3em; }
      .bottom-swip .swip-text .hh .let {
        font-size: 1em;
        font-weight: 400;
        color: #fff;
        letter-spacing: 4px; }
  .bottom-swip .swiper-5 {
    display: block;
    padding: 10px 0;
    pointer-events: none; }
    .bottom-swip .swiper-5 .swiper-wrapper {
      transition-timing-function: linear !important; }
  .bottom-swip .lead {
    text-align: center;
    color: #fff;
    font-size: 1.3em;
    padding-bottom: 1em; }

.back-book {
  width: 100%;
  background-image: url(../images/mein-back.webp);
  background-position: center;
  background-size: contain;
  position: absolute; }

.swiper-2 {
  position: relative;
  z-index: 0;
  padding: 110px 0; }
  .swiper-2 .swiper-wrapper .swiper-slide {
    visibility: hidden;
    padding: 0.2%;
    background-color: #fff;
    box-sizing: border-box; }

.common-bt {
  display: block;
  margin: 2em auto 0;
  background: #c20029;
  box-sizing: border-box;
  max-width: 240px;
  width: calc(100% - 1em);
  padding: 1em 0.5em;
  color: #fff;
  border-radius: 2.5em;
  text-align: center;
  cursor: pointer;
  transition: 0.2s; }
  .common-bt:hover {
    background: #000;
    color: #fff; }

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  z-index: 100;
  width: 100%;
  padding: 5px;
  background: #fff;
  box-shadow: 0px 1px 4px #ccc; }
  header .logo-box {
    display: flex;
    align-items: center; }
    header .logo-box h1 {
      max-width: 100px;
      width: 100%;
      padding-left: 20px; }
    header .logo-box .logo-text {
      color: #7b7b7b; }
      header .logo-box .logo-text .xs {
        font-size: 14px;
        margin-left: 10px;
        display: block;
        margin: auto 0 auto 10px;
        line-height: 20px; }
      header .logo-box .logo-text .sm {
        font-size: 10px; }
  header .float-nav ul {
    display: flex;
    padding: 10px 0; }
    header .float-nav ul li a {
      color: #3e3e3e;
      padding: 1em;
      font-size: 1em; }
      header .float-nav ul li a:hover {
        background: #c20029;
        color: #fff; }
    header .float-nav ul li .form-btn {
      background-color: #e60b35;
      color: #fff;
      padding: 1em 2.5em;
      margin-left: 0.5em; }
      header .float-nav ul li .form-btn:hover {
        background-color: #3e3e3e; }

#mv .mvv {
  display: flex;
  position: relative;
  justify-content: center;
  bottom: 0;
  padding-top: 46%; }
  #mv .mvv .mv-con-box {
    width: 45%;
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 50%;
    padding: 7% 0; }
    #mv .mvv .mv-con-box .mv-mein {
      width: 70%; }
      #mv .mvv .mv-con-box .mv-mein .mv-text-img {
        width: 100%;
        margin: auto auto auto 0; }
        #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 {
          display: flex;
          flex-direction: column; }
          #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn {
            width: 100%;
            display: block;
            position: relative;
            z-index: 0;
            margin-bottom: 20px; }
            #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn1::after {
              content: "";
              z-index: 1;
              width: 100%;
              height: 100%;
              background-image: url(../images/mv-text-img3-btn1.svg);
              background-repeat: no-repeat;
              background-size: cover;
              position: absolute;
              top: -8px;
              left: -8px;
              transition: all .2s linear; }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn1::after .img-btn {
                margin-bottom: 15px;
                display: block; }
            #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn1:hover {
              filter: brightness(0.7);
              transition: all .2s linear; }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn1:hover::after {
                top: 0;
                left: 0; }
            #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn2::after {
              content: "";
              z-index: 1;
              width: 100%;
              height: 100%;
              background-image: url(../images/mv-text-img3-btn2.svg);
              background-repeat: no-repeat;
              background-size: cover;
              position: absolute;
              top: -8px;
              left: -8px;
              transition: all .2s linear; }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn2::after .img-btn {
                margin-bottom: 15px;
                display: block; }
            #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn2:hover {
              transition: all .2s linear;
              filter: brightness(0.7); }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn2:hover::after {
                top: 0;
                left: 0; }
            #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn3 {
              margin-bottom: 0; }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn3::after {
                content: "";
                z-index: 1;
                width: 100%;
                height: 100%;
                background-image: url(../images/mv-text-img3-btn3.svg);
                background-repeat: no-repeat;
                background-size: cover;
                position: absolute;
                top: -8px;
                left: -8px;
                transition: all .2s linear; }
                #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn3::after .img-btn {
                  margin-bottom: 15px;
                  display: block; }
              #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn3:hover {
                transition: all .2s linear;
                filter: brightness(0.7); }
                #mv .mvv .mv-con-box .mv-mein .mv-text-img.mv-text-img3 .mv-img-btn.mv-img-btn3:hover::after {
                  top: 0;
                  left: 0; }
      #mv .mvv .mv-con-box .mv-mein .mv-text-img2 {
        margin: 20px 0 25px; }
  #mv .mvv .teach {
    width: 47%;
    margin: auto 0 0 0;
    position: absolute;
    right: 50%;
    top: 0;
    padding: 7% 0 8%; }
    #mv .mvv .teach .name {
      position: absolute;
      display: inline-block;
      color: #fff;
      text-shadow: 1px 1px 3px #000;
      top: 50%;
      left: 0;
      transform: translate(0, -50%);
      max-width: 100px; }
    #mv .mvv .teach .name2 {
      left: 80%; }
  #mv .mvv .mv-bottom-group {
    display: flex;
    padding: 15px 0;
    width: 100%;
    background-color: rgba(51, 51, 51, 0.702);
    position: absolute;
    bottom: 0; }
    #mv .mvv .mv-bottom-group .btn-itme-l {
      width: 35%;
      display: flex;
      flex-direction: column;
      text-align: center;
      margin: 0 10px 0 auto; }
      #mv .mvv .mv-bottom-group .btn-itme-l .btn-l {
        font-size: 1.3em;
        background: linear-gradient(0deg, #e60b35, #ff5a5a);
        box-shadow: 2px 2px 3px rgba(51, 51, 51, 0.851);
        border: .15em solid #fff;
        padding: 1em 0;
        color: #fff;
        transition: all .3s linear;
        position: relative;
        border-radius: 10px; }
        #mv .mvv .mv-bottom-group .btn-itme-l .btn-l::after {
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 5%;
          transition: all .3s linear;
          border-style: solid;
          border-width: 8px 6px 0 6px;
          border-color: currentColor transparent transparent transparent; }
        #mv .mvv .mv-bottom-group .btn-itme-l .btn-l:hover {
          transition: all .3s linear;
          filter: brightness(0.5); }
          #mv .mvv .mv-bottom-group .btn-itme-l .btn-l:hover::after {
            top: 60%; }
      #mv .mvv .mv-bottom-group .btn-itme-l .btn-text-link {
        font-size: 1em;
        text-decoration: underline;
        transition: all .3s linear;
        margin-top: .5em;
        color: #fff; }
        #mv .mvv .mv-bottom-group .btn-itme-l .btn-text-link:hover {
          color: #ccc; }
    #mv .mvv .mv-bottom-group .btn-item-s-group {
      width: 35%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      margin: 0 auto 0 0; }
      #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s {
        text-align: center;
        transition: all .3s linear;
        color: #fff;
        position: relative;
        border-radius: 10px; }
        #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s::after {
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 5%;
          transition: all .3s linear;
          border-style: solid;
          border-width: 8px 6px 0 6px;
          border-color: currentColor transparent transparent transparent; }
        #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s:hover {
          transition: all .3s linear;
          filter: brightness(0.5); }
          #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s:hover::after {
            top: 60%; }
        #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s .btn-s {
          color: #fff;
          background: linear-gradient(0deg, #000000, #32373c);
          box-shadow: 2px 2px 3px rgba(51, 51, 51, 0.851);
          border: .15em solid #fff;
          font-weight: 400;
          text-decoration: none;
          font-size: 1em;
          display: block;
          padding: .7em .2em;
          border-radius: 10px;
          margin-bottom: .5em; }
          #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s .btn-s.btn-s2 {
            margin-bottom: 0; }
#mv .mv-center {
  width: 75%;
  max-width: 380px;
  margin: auto; }
#mv .tokai {
  max-width: 150px;
  width: 20%;
  margin: 0 0 20px 20px;
  position: absolute;
  bottom: 0;
  left: 0; }

.point-san {
  width: 75%;
  margin: 0 auto; }
  .point-san .point-box {
    position: relative;
    background-color: #767676;
    color: #fff;
    font-weight: bold;
    padding: 15px;
    margin: 20px 10px;
    font-size: 18px; }
    .point-san .point-box .part1 {
      display: block;
      padding-left: 9em; }
    .point-san .point-box .part2 {
      display: inline-block;
      padding: 15px;
      position: absolute;
      top: -10px;
      left: -10px;
      background-color: #c00029;
      color: #fff;
      width: 8em;
      text-align: center; }

.books {
  width: 100%;
  height: 200px;
  background-image: url(../images/books.svg);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative; }
  .books:before, .books:after {
    content: "";
    width: 30%;
    max-width: 120px;
    height: 0;
    padding-top: 52%;
    display: block;
    position: absolute;
    bottom: 0;
    z-index: 10;
    left: 0;
    right: 0;
    margin: auto; }
  .books:before {
    background-image: url(../images/ch_left.png);
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100%;
    right: 30%; }
  .books:after {
    background-image: url(../images/ch_right.png);
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100%;
    left: 30%; }

#concept {
  background-image: url(../images/bg-item1.svg);
  background-repeat: no-repeat;
  background-position: right -100px top 10%;
  background-size: 300px;
  padding: 150px 0; }
  #concept .inner-wrap {
    max-width: 100%; }
  #concept .box-flex {
    display: flex;
    justify-content: center; }
  #concept .box-flex-sab .sab {
    width: 100%; }
    #concept .box-flex-sab .sab .sab-flex {
      display: flex;
      margin: 70px auto;
      margin-left: 5%; }
      #concept .box-flex-sab .sab .sab-flex .sab-img-right {
        margin-left: 10%;
        width: 20%; }
      #concept .box-flex-sab .sab .sab-flex .sab-title {
        font-size: 3em; }
    #concept .box-flex-sab .sab .box-center {
      max-width: 70%;
      margin: 30px auto; }
      #concept .box-flex-sab .sab .box-center .center-box {
        position: relative;
        z-index: 1; }
        #concept .box-flex-sab .sab .box-center .center-box .center-text {
          display: block;
          width: 100%;
          max-width: 340px;
          text-align: center;
          margin: 30px 0;
          padding: 0.5em 1em;
          color: #fff;
          font-size: 24px;
          letter-spacing: 2px;
          position: relative;
          z-index: 0; }
          #concept .box-flex-sab .sab .box-center .center-box .center-text::after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            z-index: -2;
            background-color: #e0e0e0;
            top: 4px;
            left: 4px; }
          #concept .box-flex-sab .sab .box-center .center-box .center-text::before {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            z-index: -1;
            background-color: #3e3e3e;
            top: 0;
            left: 0; }
      #concept .box-flex-sab .sab .box-center .text .text-sab {
        display: block;
        margin: 30px auto; }
    #concept .box-flex-sab .sab .box-center-sp {
      display: none;
      max-width: 70%;
      margin: 30px auto; }
      #concept .box-flex-sab .sab .box-center-sp .center-box {
        position: relative;
        z-index: 1; }
        #concept .box-flex-sab .sab .box-center-sp .center-box .center-text {
          display: block;
          width: 100%;
          max-width: 300px;
          text-align: center;
          margin: 30px 0;
          padding: 1em;
          color: #fff;
          font-size: 18px;
          letter-spacing: 2px;
          position: relative;
          z-index: 0; }
          #concept .box-flex-sab .sab .box-center-sp .center-box .center-text::after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            z-index: -2;
            background-color: #e0e0e0;
            top: 4px;
            left: 4px; }
          #concept .box-flex-sab .sab .box-center-sp .center-box .center-text::before {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            z-index: -1;
            background-color: #3e3e3e;
            top: 0;
            left: 0; }
      #concept .box-flex-sab .sab .box-center-sp .text .text-sab {
        display: block;
        margin: 30px auto; }
  #concept .box-left {
    width: 45%;
    margin-left: 2%; }
    #concept .box-left img {
      max-width: 600px;
      width: 100%; }
    #concept .box-left .left-te {
      margin-top: 50px; }
      #concept .box-left .left-te .col-b {
        position: relative;
        z-index: 1;
        background: linear-gradient(transparent 60%, yellow 60%); }
  #concept .box-right {
    width: 45%;
    margin-left: 2%; }
    #concept .box-right .text .lead {
      margin: 50px 0;
      color: #3e3e3e;
      letter-spacing: 8px;
      font-weight: 400;
      font-size: 24px; }
    #concept .box-right .text p {
      margin-top: 20px; }

#company-voice {
  padding: 60px 0;
  background-color: #f7f7f7;
  border-top: 3px solid #c00029;
  border-bottom: 3px solid #c00029; }
  #company-voice .heading {
    font-size: 2em;
    color: #c00029;
    margin-bottom: 60px;
    display: block;
    text-align: center; }
  #company-voice .swiper-3 .swiper-wrapper .swiper-slide {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    justify-content: space-between;
    align-items: center;
    border: 2px solid #c00029;
    box-sizing: border-box;
    padding: 10px;
    position: relative;
    height: 200px; }
    #company-voice .swiper-3 .swiper-wrapper .swiper-slide .sw-img {
      max-width: 130px;
      margin: 0 auto; }
    #company-voice .swiper-3 .swiper-wrapper .swiper-slide .sw-textbox .sw-text {
      font-size: 14px;
      display: block;
      padding: 10px; }
    #company-voice .swiper-3 .swiper-wrapper .swiper-slide .sw-textbox .middle-img {
      display: none; }
    #company-voice .swiper-3 .swiper-wrapper .swiper-slide::after {
      position: absolute;
      content: "";
      top: 0;
      left: 0;
      border-right: 10px solid transparent;
      border-top: 10px solid #c00029;
      border-left: 0 solid transparent; }

#news {
  background: #f3f3f3;
  padding-top: 20px;
  padding-bottom: 60px;
  background-image: url(../images/news-bg1.png);
  background-position: center;
  background-size: 18px; }
  #news h2 {
    margin-bottom: 0.6em; }
  #news .post-tab-list {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 40px;
    max-width: 1100px;
    margin: auto; }
    #news .post-tab-list .p-tab {
      box-sizing: border-box;
      width: calc(100% / 3);
      border-bottom: solid 1px #3e3e3e;
      padding: 10px 5px;
      cursor: pointer;
      position: relative; }
      #news .post-tab-list .p-tab::before {
        content: "";
        display: inline-block;
        background: #3e3e3e;
        width: 1px;
        height: 50%;
        position: absolute;
        top: 50%;
        left: -1px;
        transform: translateY(-50%); }
      #news .post-tab-list .p-tab:first-of-type::before {
        content: none; }
      #news .post-tab-list .p-tab .tab-in {
        position: relative;
        margin: 10px 0;
        text-align: center; }
      #news .post-tab-list .p-tab.active {
        border: 1px solid #3e3e3e;
        border-bottom: none;
        background: #3e3e3e;
        color: #fff; }
  #news .post-panel {
    display: none;
    max-width: 1100px;
    margin: auto; }
    #news .post-panel.active {
      display: block; }
  #news .post-cont {
    display: flex;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: auto; }
  #news .post-item {
    width: 32%;
    aspect-ratio: 16/9;
    background: #fff;
    border-radius: 0.5em;
    transition: 0.2s;
    margin: 0 auto; }
    #news .post-item:hover {
      transform: scale(1.03); }
  #news .p-image {
    aspect-ratio: 16/9; }
    #news .p-image img {
      height: 100%;
      object-fit: cover;
      border-radius: 0.5em 0.5em 0 0; }
  #news .p-date {
    padding: 0em 1em 0.5em;
    color: #707070;
    text-align: center; }
  #news .p-title {
    text-align: center;
    white-space: nowrap;
    overflow-x: hidden;
    padding: 0.2em 0.4em 0em;
    text-overflow: ellipsis; }
  #news .news-all {
    display: block;
    margin: 2em auto 0;
    background: #c20029;
    box-sizing: border-box;
    max-width: 240px;
    width: calc(100% - 1em);
    padding: 1em 0.5em;
    color: #fff;
    border-radius: 2.5em;
    text-align: center;
    cursor: pointer;
    transition: 0.2s; }
    #news .news-all:hover {
      background: #000;
      color: #fff; }

.news-head h1 {
  max-width: fit-content;
  width: 20%;
  left: 0;
  top: 0; }

#news-arc h2 {
  margin-bottom: 2em; }
#news-arc .arc-tab-list {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 40px;
  max-width: 1100px;
  margin: auto; }
  #news-arc .arc-tab-list .arc-tab {
    box-sizing: border-box;
    width: calc(100% / 4);
    border-bottom: solid 1px #3e3e3e;
    padding: 10px 0;
    cursor: pointer;
    position: relative; }
    #news-arc .arc-tab-list .arc-tab::before {
      content: "";
      display: inline-block;
      background: #3e3e3e;
      width: 1px;
      height: 50%;
      position: absolute;
      top: 50%;
      left: -1px;
      transform: translateY(-50%); }
    #news-arc .arc-tab-list .arc-tab:first-of-type::before {
      content: none; }
    #news-arc .arc-tab-list .arc-tab .tab-in {
      position: relative;
      margin: 10px 0;
      text-align: center; }
    #news-arc .arc-tab-list .arc-tab.active {
      border: 1px solid #3e3e3e;
      border-bottom: none;
      background: #3e3e3e;
      color: #fff; }
#news-arc .arc-panel {
  display: none;
  max-width: 1100px;
  margin: auto; }
  #news-arc .arc-panel.active {
    display: block; }
#news-arc .arc-item {
  display: flex;
  padding: 1em 0;
  border-bottom: solid 1px #3e3e3e;
  margin: auto;
  position: relative; }
  #news-arc .arc-item::after {
    content: "\02192";
    position: absolute;
    top: 50%;
    right: 5%;
    transform: translateY(-50%); }
  #news-arc .arc-item:hover {
    opacity: 0.6; }
    #news-arc .arc-item:hover:after {
      right: 3%;
      transition: 0.2s; }
#news-arc .arc-image {
  width: 30%;
  aspect-ratio: 16/9; }
  #news-arc .arc-image img {
    height: 100%;
    object-fit: cover; }
#news-arc .arc-text {
  width: calc(70% - 7em);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding-left: 2em;
  margin-right: 5em; }
  #news-arc .arc-text .arc-date {
    width: fit-content;
    color: #707070; }
  #news-arc .arc-text .arc-category {
    width: fit-content;
    color: #fff;
    background: #3e3e3e;
    color: #fff;
    padding: 0.1em 0.6em;
    margin-left: 6px; }
  #news-arc .arc-text .arc-title {
    width: 100%;
    white-space: nowrap;
    overflow-x: hidden;
    text-overflow: ellipsis; }
#news-arc .pagenation {
  position: relative;
  margin-top: 2em; }
#news-arc .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px; }
  #news-arc .page-numbers li span {
    color: #a5a5a5; }
#news-arc .click-top {
  display: block;
  margin: 80px auto 0;
  background: #000;
  box-sizing: border-box;
  max-width: 240px;
  width: calc(100% - 1em);
  padding: 1em 0.5em;
  color: #fff;
  border-radius: 2.5em;
  text-align: center;
  cursor: pointer;
  transition: 0.2s; }
  #news-arc .click-top:hover {
    background: #c20029; }

#news-single .sin-contents {
  width: 70%;
  margin: auto;
  padding-bottom: 80px;
  border-bottom: solid 1px #333; }
#news-single .sin-date {
  color: #707070; }
#news-single .sin-title {
  margin-bottom: 1em; }
#news-single .sin-cont {
  margin-top: 3em; }
  #news-single .sin-cont p {
    margin-bottom: 1em; }
  #news-single .sin-cont h2 {
    font-size: 2em;
    margin-bottom: 1em;
    padding: 0.3em 0;
    position: relative;
    border-bottom: solid 2px #ccc; }
    #news-single .sin-cont h2::after {
      content: "";
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 15%;
      border-bottom: solid 2px #c20029;
      z-index: 2; }
  #news-single .sin-cont h3 {
    font-size: 1.75em;
    padding: 0.5em;
    padding-left: 1em;
    margin-bottom: 1em;
    position: relative; }
    #news-single .sin-cont h3::after {
      content: "";
      position: absolute;
      top: 10%;
      left: 0;
      height: 80%;
      border-left: solid 8px #c20029; }
  #news-single .sin-cont h4 {
    font-size: 1.5em;
    margin-bottom: 1em;
    font-weight: 800;
    padding: 0.5em 0; }
#news-single .news-back {
  display: block;
  margin: 80px auto 0;
  background: #000;
  box-sizing: border-box;
  max-width: 240px;
  width: calc(100% - 1em);
  padding: 1em 0.5em;
  color: #fff;
  border-radius: 2.5em;
  text-align: center;
  cursor: pointer;
  transition: 0.2s; }
  #news-single .news-back:hover {
    background: #c20029; }

#action-btn {
  padding: 40px 0;
  background-color: #c20029; }
  #action-btn .action-item {
    width: 400px;
    margin: auto; }
    #action-btn .action-item .ac-img {
      margin: 0 auto 5px;
      max-width: 350px; }
    #action-btn .action-item .ac-text {
      color: #fff;
      display: block;
      text-align: center;
      font-size: 18px; }
    #action-btn .action-item .action-box {
      margin: auto;
      background-color: #fff;
      border-radius: 30px;
      padding: 10px 0;
      transition: all 0.3s linear; }
      #action-btn .action-item .action-box .ac-btn {
        font-size: 20px;
        color: #3e3e3e;
        display: block;
        text-align: center; }
      #action-btn .action-item .action-box:hover {
        background-color: #3e3e3e; }
        #action-btn .action-item .action-box:hover .ac-btn {
          color: #fff; }

#assignment {
  background-image: url(../images/bg-item2.svg);
  background-repeat: no-repeat;
  background-position: left -100px top 50%;
  background-size: 300px;
  padding-top: 0; }
  #assignment h2 {
    color: #333;
    margin-bottom: 60px; }
  #assignment .icon {
    width: fit-content; }
  #assignment .assi-box1 {
    display: flex;
    justify-content: center;
    align-items: last baseline;
    width: 100%;
    max-width: 1000px;
    margin: auto;
    padding: 100px 0;
    position: relative; }
    #assignment .assi-box1 .item-box {
      width: 50%;
      position: relative; }
    #assignment .assi-box1 .icon-man {
      width: 18%;
      margin: 0; }
    #assignment .assi-box1 .text {
      text-align: center;
      letter-spacing: 0.2em;
      margin: 10px;
      display: block;
      width: 14%; }
  #assignment .about {
    color: #fff;
    background: #c20029;
    text-align: center;
    margin: -50px auto 60px;
    padding: 1em;
    position: relative;
    max-width: 1200px; }
    #assignment .about::before {
      display: none;
      content: "";
      position: absolute;
      top: 90%;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-top: 40px solid #c20029;
      border-right: 40px solid transparent;
      border-left: 40px solid transparent; }
  #assignment .assi-box2 .box-in {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: auto; }
  #assignment .assi-box2 .item {
    width: 32%;
    border: solid 1px #c20029;
    border-top: none;
    position: relative;
    margin-top: 20%; }
    #assignment .assi-box2 .item::before {
      content: "";
      position: absolute;
      bottom: 94%;
      left: 0;
      right: 0;
      margin: auto;
      z-index: -1;
      width: 60%;
      height: 100%;
      background-size: contain;
      background-repeat: no-repeat;
      background-position: bottom; }
    #assignment .assi-box2 .item.icon3-1::before {
      background-image: url(../images/cp-img_01.png); }
    #assignment .assi-box2 .item.icon3-2::before {
      background-image: url(../images/cp-img_02.png); }
    #assignment .assi-box2 .item.icon3-3::before {
      background-image: url(../images/cp-img_03.png); }
    #assignment .assi-box2 .item .icon-img {
      display: none; }
  #assignment .assi-box2 .text .heading {
    background: #c20029;
    color: #fff;
    padding: 0.5em 1em; }
  #assignment .assi-box2 .text .desc {
    padding: 1.5em 1em; }

#person {
  padding: 50px 0; }
  #person .box {
    display: flex;
    justify-content: space-between;
    flex-direction: column; }
  #person .item {
    box-sizing: border-box;
    width: 100%;
    max-width: 900px;
    margin: 20px auto;
    height: auto;
    display: flex;
    background: #fff;
    padding: 1em;
    border: solid 2px #707070;
    position: relative; }
    #person .item img {
      width: 20%;
      object-fit: cover;
      object-position: center; }
    #person .item .profile {
      width: 100%;
      padding: 1em 0 0 1em; }
      #person .item .profile .name {
        margin-bottom: 5px; }

#system {
  padding-top: 40px;
  padding-bottom: 0; }
  #system .summary {
    margin: 40px auto 120px; }
  #system .box {
    display: flex;
    justify-content: space-between; }
  #system .img-box {
    width: 50%;
    position: relative; }
  #system .movie {
    width: 40%;
    position: relative; }
    #system .movie p {
      color: #c20029;
      position: absolute;
      top: -40px;
      right: 0; }
    #system .movie img:hover {
      opacity: 0.75; }
  #system .movie-ac-btn span {
    display: block;
    text-align: center;
    margin: 10px 0; }
  #system .movie-ac-btn .mv-btn {
    background-color: #c20029;
    padding: 10px;
    display: block;
    text-align: center;
    color: #fff;
    border-radius: 30px;
    font-size: 20px; }
    #system .movie-ac-btn .mv-btn:hover {
      background-color: #3e3e3e;
      color: #fff;
      transition: all 0.3s linear; }

.cta-btn {
  display: block;
  max-width: 300px;
  width: 100%;
  margin: auto;
  background: #c20029;
  box-sizing: border-box;
  width: calc(100% - 1em);
  padding: 1em 0.5em;
  color: #fff;
  border-radius: 2.5em;
  text-align: center;
  cursor: pointer;
  transition: 0.2s; }
  .cta-btn:hover {
    background: #000;
    color: #fff; }

#trial .trial-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 3em; }
  #trial .trial-flex .col-l {
    width: 48%; }
  #trial .trial-flex .col-r {
    width: 48%; }
    #trial .trial-flex .col-r h2 span {
      display: block; }
    #trial .trial-flex .col-r .trial-movie-title {
      padding-top: 10%;
      font-size: 1.25em;
      font-family: "Noto Sans JP", sans-serif;
      font-weight: 600;
      line-height: 1.75em;
      -moz-font-feature-settings: "palt";
      -webkit-font-feature-settings: "palt";
      font-feature-settings: "palt"; }
#trial .req-area {
  margin: 3em auto; }
  #trial .req-area .sp-block {
    display: none; }
  #trial .req-area .cta-btn {
    margin-top: 1em; }
  #trial .req-area p {
    text-align: center; }
#trial .trial-req-movie {
  display: flex;
  justify-content: space-between;
  max-width: 1000px;
  width: 100%;
  margin: auto; }
  #trial .trial-req-movie .movie {
    width: 48%;
    pointer-events: none; }
    #trial .trial-req-movie .movie:hover {
      opacity: 0.75; }
    #trial .trial-req-movie .movie .movie-thum {
      display: block;
      width: calc(100% - 8px);
      margin: 0;
      padding: 4px;
      background: #000;
      filter: brightness(0.5); }
    #trial .trial-req-movie .movie .movie-title {
      padding: 4px; }
    #trial .trial-req-movie .movie .movie-a {
      position: relative;
      display: block; }
    #trial .trial-req-movie .movie .lock-icon {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 60px;
      z-index: 2; }
  #trial .trial-req-movie.unlocked .movie {
    pointer-events: auto; }
  #trial .trial-req-movie.unlocked .movie-thum {
    filter: none; }
  #trial .trial-req-movie.unlocked .lock-icon {
    display: none; }

.popup-req {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 100; }
  .popup-req .logo-bk {
    max-width: 160px;
    width: 40%;
    margin: 20px auto; }
  .popup-req .pop-in {
    max-width: 1000px;
    width: 84%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 1em;
    background: #fff;
    border-radius: 20px; }
  .popup-req .pop-in-container {
    max-width: 800px;
    width: 100%;
    margin: auto;
    max-height: 85vh;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none; }
    .popup-req .pop-in-container::-webkit-scrollbar {
      display: none; }
  .popup-req .close-btn {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 40px;
    height: 40px;
    cursor: pointer;
    background: #3e3e3e;
    border-radius: 30px;
    border: solid 1px #fff;
    z-index: 1; }
    .popup-req .close-btn:before {
      content: "";
      width: 70%;
      height: 4px;
      background: #fff;
      position: absolute;
      right: 15%;
      top: 50%;
      transform: translateY(-50%) rotate(45deg); }
    .popup-req .close-btn:after {
      content: "";
      width: 70%;
      height: 4px;
      background: #fff;
      position: absolute;
      right: 15%;
      top: 50%;
      transform: translateY(-50%) rotate(135deg); }
  .popup-req .movie-list .list-item {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1em 0;
    border-bottom: solid 1px #707070; }
    .popup-req .movie-list .list-item .item-l {
      width: 30%;
      pointer-events: none; }
      .popup-req .movie-list .list-item .item-l .movie-thum {
        display: block;
        width: calc(100% - 8px);
        margin: 0;
        padding: 4px;
        background: #000;
        filter: brightness(0.5); }
      .popup-req .movie-list .list-item .item-l .movie-title {
        padding: 4px; }
      .popup-req .movie-list .list-item .item-l .movie-a {
        position: relative; }
      .popup-req .movie-list .list-item .item-l .lock-icon {
        display: block;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 20%;
        z-index: 2; }
      .popup-req .movie-list .list-item .item-l:hover {
        opacity: 0.75; }
    .popup-req .movie-list .list-item .item-r {
      width: 65%; }
  .popup-req .movie-list.unlocked .list-item .item-l {
    pointer-events: auto; }
  .popup-req .movie-list.unlocked .list-item .movie-thum {
    filter: none; }
  .popup-req .movie-list.unlocked .list-item .lock-icon {
    display: none; }
  .popup-req .book-flex {
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    padding: 1em;
    width: calc(100% - 2em); }
    .popup-req .book-flex .col-l {
      width: 65%; }
      .popup-req .book-flex .col-l h2 {
        margin-bottom: 1.5rem; }
      .popup-req .book-flex .col-l p {
        padding-bottom: 1.5em; }
        .popup-req .book-flex .col-l p span {
          -moz-font-feature-settings: "palt";
          -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt"; }
    .popup-req .book-flex .col-r {
      width: 35%; }
    .popup-req .book-flex .cta-btn {
      margin-left: 0;
      margin-right: auto; }

#popup-movie-req .req-form-heading {
  text-align: center;
  padding: 2em 0;
  font-weight: 600; }
#popup-movie-req .req-form .cf7__list {
  margin-bottom: 40px; }
  #popup-movie-req .req-form .cf7__list dt {
    width: 100%;
    margin-bottom: 0; }
  #popup-movie-req .req-form .cf7__list dd {
    margin-top: 10px;
    width: 100%; }
#popup-movie-req .req-form .cf7__button {
  margin-bottom: 2em; }

#popup-movie-req-thanks .head {
  text-align: center; }
#popup-movie-req-thanks .lead {
  text-align: center;
  padding: 2em 0 1em;
  font-weight: 600; }
#popup-movie-req-thanks .cta-btn {
  margin-top: 2em;
  margin-bottom: 1em; }

.present-book {
  background: #c20029;
  padding: 3em 0; }
  .present-book .heading {
    text-align: center;
    color: #fff;
    font-size: 2em;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
    line-height: 1.75em;
    padding-bottom: 1em; }
  .present-book .p-book-flex {
    max-width: calc(900px - 4em);
    width: calc(100% - 4em);
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2em;
    background: #fff; }
    .present-book .p-book-flex .col-l {
      width: 60%; }
      .present-book .p-book-flex .col-l p {
        padding-bottom: 1.5em; }
        .present-book .p-book-flex .col-l p span {
          -moz-font-feature-settings: "palt";
          -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt"; }
    .present-book .p-book-flex .col-r {
      width: 35%; }
  .present-book .cta-btn {
    margin-top: 2em;
    background: #000; }
    .present-book .cta-btn:hover {
      background: #3e3e3e;
      color: #fff; }

.plus-content {
  color: #fff;
  margin-top: 5%; }
  .plus-content h2 {
    color: #fff;
    margin-bottom: 0.5em; }
    .plus-content h2 span {
      color: #fff;
      display: block;
      margin-bottom: 1em; }
  .plus-content .worksheet {
    background-color: #c20029;
    padding: 3em; }
  .plus-content .seminar {
    background-color: #3e3e3e;
    padding: 3em; }
  .plus-content .item-flex {
    display: flex;
    justify-content: center; }
    .plus-content .item-flex .if-img {
      width: 30%; }

#contents {
  padding-top: 50px;
  background-image: url(../images/bg-item1.svg);
  background-repeat: no-repeat;
  background-position: right -100px top 0%;
  background-size: 300px; }
  #contents .summary {
    margin: 40px auto 90px; }
  #contents .box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%; }
  #contents .item {
    width: calc(48% - 2px);
    border: solid 1px #707070;
    background: #fff;
    margin-bottom: 40px; }
  #contents .topics {
    color: #fff;
    background: #c20029;
    padding: 0.4em 1em 0.8em;
    position: relative; }
    #contents .topics .min {
      font-size: 16px; }
    #contents .topics .heading {
      position: relative;
      z-index: 2; }
    #contents .topics .num {
      position: absolute;
      right: 10px;
      top: 25%;
      color: #d20029;
      z-index: 1; }
  #contents .text {
    padding: 1em; }
    #contents .text ul li {
      padding-bottom: 0.5em;
      margin-bottom: 0.5em;
      border-bottom: 1px solid #ddd; }
      #contents .text ul li:last-of-type {
        border: none;
        margin-bottom: 0;
        padding-bottom: 0; }

#experience {
  background-color: rgba(51, 51, 51, 0.6);
  position: relative; }
  #experience h2 {
    margin-bottom: 60px;
    color: #fff; }
  #experience .exp-imgbox {
    position: absolute;
    width: 100%;
    max-width: 800px;
    top: -10%;
    left: 50%;
    transform: translateX(-50%); }
  #experience .item {
    background: #fff;
    text-align: center;
    margin: 0 auto 20px;
    padding: 2.5em 0;
    max-width: 1100px;
    width: 100%;
    position: relative; }
    #experience .item .heading {
      color: #c20029; }
    #experience .item .icon {
      position: absolute;
      right: 3%;
      bottom: 0;
      width: 180px; }

#package-flow {
  background-image: url(../images/bg-item2.svg);
  background-repeat: no-repeat;
  background-position: left -100px top 50%;
  background-size: 300px; }
  #package-flow .box-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; }
    #package-flow .box-flex h2 {
      margin-bottom: 40px; }
  #package-flow .box-left {
    width: 48%; }
    #package-flow .box-left .item {
      background: #f2f2f2;
      text-align: center;
      padding: 1em; }
    #package-flow .box-left .info {
      padding: 0px 0 10px; }
      #package-flow .box-left .info p {
        background: #fff;
        padding: 1em;
        margin-bottom: 10px; }
    #package-flow .box-left .date {
      display: flex;
      justify-content: space-between; }
      #package-flow .box-left .date .schedule {
        width: 49%;
        text-align: center; }
        #package-flow .box-left .date .schedule .heading {
          color: #fff;
          background: #c20029;
          padding: 0.6em; }
        #package-flow .box-left .date .schedule p {
          background: #fff;
          padding: 2em; }
  #package-flow .box-right {
    width: 48%; }
    #package-flow .box-right .list {
      display: flex;
      margin-bottom: 40px;
      position: relative;
      min-height: 4.5em; }
      #package-flow .box-right .list::after {
        content: "▼";
        position: absolute;
        bottom: -30%;
        left: 50%;
        transform: translateX(-50%); }
      #package-flow .box-right .list:last-of-type {
        margin-bottom: 0; }
        #package-flow .box-right .list:last-of-type::after {
          display: none; }
      #package-flow .box-right .list .step {
        width: 140px;
        color: #fff;
        background: #c20029;
        display: flex;
        align-items: center;
        justify-content: center; }
      #package-flow .box-right .list .text {
        width: calc(100% - 140px - 2em);
        background: #f2f2f2;
        padding: 1em;
        display: flex;
        flex-wrap: wrap; }
        #package-flow .box-right .list .text p:first-of-type {
          margin-bottom: 10px; }

#company {
  padding-top: 0; }
  #company .comp-flex {
    max-width: 1200px;
    width: 100%;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    gap: 1.5em;
    margin-top: 3em; }
  #company .comp-item {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
    #company .comp-item:hover {
      opacity: 0.75; }

#contact {
  background: #c20029;
  text-align: center;
  padding: 80px 0; }
  #contact .cont {
    color: #fff; }
    #contact .cont p {
      margin: 20px auto; }

footer {
  padding: 80px 0 20px; }
  footer .inner-wrap {
    max-width: 850px;
    margin: auto;
    display: flex; }
    footer .inner-wrap h1 {
      max-width: 100px; }
    footer .inner-wrap .logo-text {
      color: #7b7b7b;
      margin-left: 20px; }
  footer .credit {
    font-size: 10px;
    margin: 20px; }

.btn-trigger {
  position: fixed;
  top: auto;
  right: 20px;
  width: 36px;
  height: 30px;
  cursor: pointer;
  display: inline-block;
  transition: all 0.5s;
  box-sizing: border-box;
  z-index: 20;
  display: none; }
  .btn-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #333;
    border-radius: 4px;
    display: inline-block;
    transition: all 0.5s;
    box-sizing: border-box; }
    .btn-trigger span:nth-of-type(1) {
      top: 0; }
    .btn-trigger span:nth-of-type(2) {
      top: 13px; }
    .btn-trigger span:nth-of-type(3) {
      bottom: 0; }
  .btn-trigger.active span:nth-of-type(1) {
    top: -6px; }
  .btn-trigger.active span:nth-of-type(2) {
    top: 13px; }
  .btn-trigger.active span:nth-of-type(3) {
    bottom: -7px; }

.lity-movie video {
  max-width: 945px;
  aspect-ratio: 16 / 9;
  width: 100%;
  display: block; }

@media screen and (min-width: 1920px) {
  #mv .mvv {
    padding-top: 42%; }
    #mv .mvv .mv-con-box .mv-mein {
      width: 80%; }
    #mv .mvv .teach .name {
      max-width: 150px;
      width: 100%; } }
@media screen and (max-width: 1300px) {
  #mv .mvv {
    padding-top: 52%; }
    #mv .mvv .mv-con-box .mv-mein {
      width: 80%; }
    #mv .mvv .teach {
      padding: 13% 0 7%; } }
@media screen and (max-width: 1210px) {
  #mv .mvv {
    padding-top: 55%; }
    #mv .mvv .mv-con-box .mv-mein {
      width: 80%; }
    #mv .mvv .teach {
      padding: 16% 0 7%; }

  .btn-trigger {
    display: block; }

  header .float-nav {
    display: block;
    background: rgba(0, 0, 0, 0.514);
    height: 100vh;
    position: fixed;
    top: 0;
    padding-right: 0;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    transition: all 0.5s;
    right: -50%;
    width: 40%;
    z-index: 19; }
    header .float-nav ul {
      position: relative;
      top: 100px;
      flex-direction: column; }
      header .float-nav ul li {
        display: block;
        filter: none; }
        header .float-nav ul li a {
          width: 200px;
          display: block;
          font-size: 1.3em;
          color: #fff;
          filter: none;
          text-align: center;
          border-bottom: 2px solid #fff;
          margin: 0.5em auto;
          transition: all 0.3s linear; }
          header .float-nav ul li a.contact {
            padding: 0.8em 0;
            text-align: center; }
          header .float-nav ul li a:hover {
            background-color: rgba(0, 0, 0, 0.412); }
        header .float-nav ul li .form-btn {
          position: fixed;
          width: 100%;
          left: 0;
          bottom: 0;
          border-bottom: none;
          padding: 1.2em 0;
          margin: 0; }
    header .float-nav.active {
      right: 0; } }
@media screen and (max-width: 1080px) {
  section {
    padding: 80px 0; }

  .inner-wrap {
    padding: 0 3em;
    width: calc(100% - 6em);
    padding: 0 3em; }

  #mv .mvv {
    padding-top: 62%; }
    #mv .mvv .mv-con-box {
      padding: 9% 0 22%;
      width: 47%; }
      #mv .mvv .mv-con-box .mv-mein {
        width: 85%; }
        #mv .mvv .mv-con-box .mv-mein .mv-text-img {
          max-width: 100%; }
        #mv .mvv .mv-con-box .mv-mein .mv-bottom-group {
          padding: 30px auto 0; }
    #mv .mvv .teach {
      padding: 23% 0; }
      #mv .mvv .teach .name {
        max-width: 80px;
        left: 0;
        top: 50%;
        transform: translate(0%, -50%); }
      #mv .mvv .teach .name2 {
        left: 100%;
        transform: translate(-100%, -50%);
        width: 100%; }

  #concept {
    padding: 100px 0 100px; }
    #concept .box-flex {
      flex-wrap: wrap; }
    #concept .box-left {
      width: 90%;
      margin: auto; }
      #concept .box-left img {
        max-width: 700px;
        width: 100%;
        margin-left: 0; }
      #concept .box-left .left-ii {
        max-width: 100%; }
    #concept .box-right {
      width: 90%;
      margin: 30px auto 0; }
      #concept .box-right .text {
        padding-top: 20px; }
        #concept .box-right .text p {
          margin-top: 10px; }
    #concept .box-flex-sab .sab .sab-flex {
      justify-content: space-between;
      width: 90%; }
      #concept .box-flex-sab .sab .sab-flex .sab-title {
        font-size: 2.3em; }
    #concept .box-flex-sab .sab .box-center {
      max-width: 90%; }
    #concept .box-flex-sab .sab .text {
      margin: 30px auto; }
      #concept .box-flex-sab .sab .text .text-sab {
        font-size: 25px; }
        #concept .box-flex-sab .sab .text .text-sab::after {
          height: 5px; }

  #action-btn .action-box {
    padding: 12px 0;
    margin: auto;
    max-width: 400px; }
    #action-btn .action-box .ac-btn {
      font-size: 14px; }

  #trial .trial-flex {
    flex-direction: column-reverse; }
    #trial .trial-flex .col-l {
      width: 100%; }
    #trial .trial-flex .col-r {
      width: 100%; }
      #trial .trial-flex .col-r .trial-movie-title {
        padding: 2em 0 1em; }
  #trial .req-area .sp-block {
    display: block; }

  .present-book .p-book-flex {
    flex-direction: column-reverse;
    max-width: calc(1000px - 2em);
    width: calc(100% - 2em);
    padding: 1em; }
    .present-book .p-book-flex .col-l {
      width: 100%; }
      .present-book .p-book-flex .col-l p {
        padding-top: 1em; }
        .present-book .p-book-flex .col-l p:last-of-type {
          padding: 0; }
    .present-book .p-book-flex .col-r {
      width: 100%; }
  .present-book .cta-btn {
    margin-top: 2em; }

  #news .post-item {
    width: 100%;
    margin-bottom: 20px; }

  #news-arc .arc-text {
    width: calc(70% - 4.5em);
    padding-left: 1em;
    margin-right: 3.5em; }
    #news-arc .arc-text .arc-date {
      padding-top: 0; }
  #news-arc .click-top {
    margin-top: 40px; }

  #news-single .sin-contents {
    width: 100%;
    padding-top: 40px;
    padding-bottom: 10px; }
  #news-single .news-back {
    margin-top: 40px; }

  #person .box {
    flex-wrap: wrap; }
  #person .item {
    width: 90%;
    height: auto;
    margin: 0 auto 40px; }
    #person .item .text p:nth-of-type(1) {
      padding-bottom: 10px; }

  #system {
    padding-bottom: 60px; }
    #system h2 {
      width: 100%;
      margin: auto; }
    #system .summary {
      width: 100%;
      margin: 40px auto 80px; }
    #system .box {
      flex-wrap: wrap; }
    #system .img-box {
      width: 90%;
      height: 50vw;
      position: relative;
      margin: 0 auto 50px; }
      #system .img-box .icon {
        width: 40%; }
    #system .movie {
      width: 100%;
      margin: auto; }
      #system .movie p {
        top: -40px; }
      #system .movie a {
        margin-top: 0;
        display: block; }
    #system .movie-ac-btn .mv-btn {
      max-width: 100%;
      padding: 12px 0; }
    #system .movie-ac-btn span {
      margin: 20px 0; }

  #contents {
    padding-top: 40px; }
    #contents h2 {
      width: 100%;
      margin: auto; }
    #contents .summary {
      width: 100%;
      margin: 20px auto 40px; }
    #contents .box {
      flex-wrap: wrap;
      justify-content: center;
      width: 100%;
      margin: auto; }
    #contents .item {
      width: 100%;
      margin-bottom: 40px; }
    #contents .topics {
      text-align: center; }

  #assignment .assi-box2 .box-in {
    flex-wrap: wrap; }
  #assignment .assi-box2 .item {
    width: 100%;
    margin-bottom: 30px; }
  #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te {
    font-size: 16px; }
    #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te::after {
      width: 20px;
      height: 20px; }
    #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te::before {
      width: 10px;
      height: 5px;
      border-bottom: 3px solid #dfdfdf;
      border-left: 3px solid #dfdfdf; }
  #assignment .assi-box2 .item {
    width: 100%;
    margin: 0 auto 60px;
    border: none; }
    #assignment .assi-box2 .item::before {
      content: none; }
    #assignment .assi-box2 .item .icon-img {
      display: block;
      width: 60%;
      position: relative;
      z-index: -1;
      margin: auto auto -20px; }
    #assignment .assi-box2 .item .text {
      border: solid 1px #c20029; }
      #assignment .assi-box2 .item .text .heading br {
        display: none; }

  #experience h2 {
    width: 100%;
    margin: 0 auto 40px; }
  #experience .item .icon {
    width: 20%; }
  #experience .item .heading {
    padding: 0 20px 10px;
    text-align: left; }
  #experience .item p {
    padding: 0 20px;
    text-align: left; }

  #package-flow .box {
    flex-wrap: wrap; }
    #package-flow .box h2 {
      text-align: center;
      margin-bottom: 20px; }
  #package-flow .box-left {
    width: 100%; }
  #package-flow .box-right {
    width: 100%;
    padding-top: 60px; }

  #company .comp-flex {
    grid-template-columns: repeat(2, 1fr); }

  #company-voice .swiper-3 .swiper-wrapper .swiper-slide .sw-img {
    max-width: 120px; }

  #contact .cont p:nth-of-type(2) {
    margin: 20px auto; }
  #contact .box {
    background: #fff;
    width: 80%;
    margin: auto;
    border-radius: 5px;
    padding: 2em 0;
    margin-top: 4em; } }
@media screen and (max-width: 900px) {
  #trial .trial-req-movie {
    flex-direction: column; }
    #trial .trial-req-movie .movie {
      width: 100%;
      margin-bottom: 2em; }
      #trial .trial-req-movie .movie:last-of-type {
        margin-bottom: 0; } }
@media screen and (max-width: 850px) {
  #company-voice .swiper-3 .swiper-wrapper .swiper-slide .sw-img {
    max-width: 200px;
    margin: 0 auto; }

  #mv .mvv {
    padding: 0;
    flex-direction: column;
    align-items: center; }
    #mv .mvv .mv-con-box {
      padding: 0;
      width: 100%;
      position: static; }
      #mv .mvv .mv-con-box .mv-mein {
        width: 75%;
        padding: 20px 0; }
        #mv .mvv .mv-con-box .mv-mein .mv-text-img {
          max-width: none; }
    #mv .mvv .teach {
      padding: 0;
      position: relative;
      right: 0;
      padding-top: 15%;
      width: 50%;
      margin: auto;
      margin-right: 0; }
      #mv .mvv .teach .name {
        max-width: 80px;
        left: 0;
        top: 85%;
        transform: translate(0%, -85%); }
      #mv .mvv .teach .name2 {
        left: 100%;
        transform: translate(-100%, -85%);
        width: 100%; }
    #mv .mvv .mv-bottom-group {
      position: static;
      flex-direction: column;
      padding: 20px 0; }
      #mv .mvv .mv-bottom-group .btn-itme-l {
        width: calc(100% - 2em);
        margin: 0 auto 20px; }
        #mv .mvv .mv-bottom-group .btn-itme-l .btn-l {
          font-size: 1.5em;
          padding: 1.5em 0; }
        #mv .mvv .mv-bottom-group .btn-itme-l .btn-text-link {
          font-size: 1.2em;
          margin-top: .5em; }
      #mv .mvv .mv-bottom-group .btn-item-s-group {
        width: calc(100% - 2em);
        margin: auto; }
        #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s {
          font-size: 1.2em; }
          #mv .mvv .mv-bottom-group .btn-item-s-group .btn-item-s .btn-s {
            font-size: 1.2em; } }
@media screen and (max-width: 765px) {
  .swiper-2 {
    padding: 140px 0; } }
@media screen and (max-width: 600px) {
  #mv .mvv .mv-con-box .mv-mein {
    width: 90%;
    padding: 40px 0; }
    #mv .mvv .mv-con-box .mv-mein .mv-text-img2 {
      margin: 20px 0; }

  #concept .box-right .text .lead {
    font-size: 20px;
    letter-spacing: 0; } }
@media screen and (max-width: 540px) {
  header {
    height: 40px; }
    header .float-nav {
      width: 100%;
      right: -100%; }
    header h1 {
      width: 120px;
      padding-left: 20px; }
    header .logo-box .logo-text .xs {
      display: none; }

  #thanks-page .mainvisual .main-box a {
    font-size: 16px; }

  #concept {
    padding: 30px 0; }
    #concept .box-left .left-te {
      font-size: 21px;
      line-height: 35px; }
    #concept .box-right .text .lead {
      margin: 0 0;
      line-height: 40px; }

  #mv .mv-center {
    width: 60%; }
  #mv .mvv .back-book {
    height: 100%; }
    #mv .mvv .back-book .swiper-2 {
      padding: 30px 0; }
  #mv .mvv .mv-con-box {
    width: 100%;
    background-color: #fff; }
    #mv .mvv .mv-con-box .mv-mein .red {
      font-size: 2em;
      line-height: 30px;
      text-align: center;
      font-weight: 600; }
    #mv .mvv .mv-con-box .mv-mein .mv-sab-text {
      font-size: 12px;
      text-align: center;
      font-weight: 600; }
      #mv .mvv .mv-con-box .mv-mein .mv-sab-text .br-a {
        display: block; }
      #mv .mvv .mv-con-box .mv-mein .mv-sab-text .br-b {
        display: none; }
    #mv .mvv .mv-con-box .point-san .point-box {
      padding: 30px 10px 10px;
      font-size: 12px;
      text-align: center; }
      #mv .mvv .mv-con-box .point-san .point-box .part1 {
        padding-left: 0; }
      #mv .mvv .mv-con-box .point-san .point-box .part2 {
        padding: 5px 0;
        width: 100%;
        left: 0; }
  #mv .mvv .teach {
    width: 50%;
    margin: auto;
    margin-right: 0; }
    #mv .mvv .teach .name {
      left: 4%;
      top: 95%;
      transform: translate(-30%, -95%); }
    #mv .mvv .teach .name2 {
      left: 80%; }

  .books:before {
    right: 60%; }
  .books:after {
    left: 60%; }

  section {
    padding: 40px 0; }

  .inner-wrap {
    padding: 0 1em;
    width: calc(100% - 2em); }

  #company-voice .heading {
    margin-bottom: 40px; }

  .plus-content .worksheet,
  .plus-content .seminar {
    padding: 3em 0; }
  .plus-content .item-flex {
    flex-direction: column; }
    .plus-content .item-flex .if-img {
      width: 60%;
      max-width: 300px;
      margin: auto; }
  .plus-content .seminar .item-flex {
    flex-direction: column-reverse; }

  .box-center {
    display: none; }

  .box-center-sp {
    display: block; }

  #concept {
    padding: 30px 0; }
    #concept .box-right {
      width: 90%;
      margin: 30px auto 0; }
    #concept .box-flex-sab .sab .sab-flex .sab-title {
      font-size: 24px; }
      #concept .box-flex-sab .sab .sab-flex .sab-title br {
        display: block; }
    #concept .box-flex-sab .sab .sab-flex .sab-img-right {
      display: none; }
    #concept .box-flex-sab .sab .box-center {
      display: none; }
    #concept .box-flex-sab .sab .box-center-sp {
      display: block;
      max-width: 90%;
      margin: auto; }
    #concept .box-flex-sab .sab .text .text-sab {
      font-size: 1.2em;
      margin: 20px auto; }
      #concept .box-flex-sab .sab .text .text-sab::after {
        height: 5px;
        bottom: -10px; }
      #concept .box-flex-sab .sab .text .text-sab::before {
        top: 150%;
        border-left: 30px solid transparent;
        border-right: 30px solid transparent;
        border-top: 15px solid #c20029; }

  #news-arc .arc-image {
    width: 40%; }
  #news-arc .arc-text {
    width: calc(60% - 4.5em); }
    #news-arc .arc-text .arc-date {
      padding-top: 0; }

  #news .post-tab-list .p-tab {
    padding: 10px 0; }

  #action-btn .action-item {
    width: 330px; }
    #action-btn .action-item .ac-text {
      font-size: 14px; }
    #action-btn .action-item .ac-img {
      max-width: 270px; }
    #action-btn .action-item .action-box {
      padding: 12px 0;
      margin: auto;
      max-width: 330px; }
      #action-btn .action-item .action-box .ac-btn {
        font-size: 18px; }

  #package-flow .box-left .date .schedule p:nth-of-type(2) {
    padding: 1em;
    font-size: 0.75rem; }
  #package-flow .box-right .list {
    min-height: 7.5em; }
    #package-flow .box-right .list .step {
      width: 100px; }
    #package-flow .box-right .list .text {
      width: calc(100% - 100px - 2em);
      flex-direction: column;
      align-items: initial;
      justify-content: center; }

  #person .item {
    flex-wrap: wrap;
    width: 90%;
    padding: 1em;
    margin: 0 auto 40px; }
    #person .item .profile {
      width: 100%; }
    #person .item img {
      width: 100%;
      object-fit: cover;
      object-position: center; }
    #person .item .text {
      width: 100%;
      padding: 1em 0; }
      #person .item .text p:nth-of-type(1) {
        padding-bottom: 10px; }

  #system {
    padding-bottom: 0; }
    #system .summary {
      margin-bottom: 40px; }
    #system .img-box {
      margin-bottom: 20px; }
    #system .movie {
      margin: 20px 0; }
      #system .movie p {
        top: -35px;
        right: 10px; }

  #assignment {
    padding-bottom: 40px; }
    #assignment .about {
      padding: 0.7em; }
      #assignment .about::before {
        display: none;
        border-top: 30px solid #c20029;
        border-right: 30px solid transparent;
        border-left: 30px solid transparent; }
    #assignment #content {
      padding: 40px 0; }
    #assignment .assi-box1 {
      flex-direction: column; }
      #assignment .assi-box1 .pustion-box .pus-content .pus-item {
        width: calc(48% - 40px);
        padding: 10px; }
        #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te {
          font-size: 12px;
          padding-left: 30px; }
          #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te::after {
            width: 15px;
            height: 15px;
            left: 5px; }
          #assignment .assi-box1 .pustion-box .pus-content .pus-item .pus-te::before {
            width: 10px;
            height: 5px;
            left: 8px;
            border-bottom: 3px solid #dfdfdf;
            border-left: 3px solid #dfdfdf; }
      #assignment .assi-box1 .pustion-box .pus-taitle {
        font-size: 16px;
        line-height: 22px; }
        #assignment .assi-box1 .pustion-box .pus-taitle::after {
          width: 50px;
          height: 50px;
          top: -5px;
          left: -5px; }
        #assignment .assi-box1 .pustion-box .pus-taitle::before {
          width: 50px;
          height: 50px;
          bottom: -5px;
          right: -5px; }
      #assignment .assi-box1 .box-in {
        flex-wrap: wrap;
        align-items: center;
        flex-direction: row-reverse;
        width: 100%;
        position: relative; }
      #assignment .assi-box1 .item-box {
        width: 90%;
        margin: auto; }
      #assignment .assi-box1 .icon-man {
        width: 35%;
        margin: 0 auto;
        z-index: 1;
        margin-right: 20%; }
      #assignment .assi-box1 .text {
        letter-spacing: 0.2em;
        padding: 0;
        margin-left: 10%;
        margin: auto;
        position: absolute;
        left: 0;
        right: 36%;
        bottom: 14%;
        width: 17%; }
    #assignment .assi-box2 .box-in {
      flex-wrap: wrap; }
    #assignment .assi-box2 .item {
      width: 100%;
      margin-bottom: 30px; }

  #experience {
    padding: 70px 0 40px 0; }
    #experience .icon {
      display: none; }
    #experience .exp-imgbox {
      max-width: 350px;
      top: -5%; }

  #package-flow .box-right .step .list {
    width: 82px; }
  #package-flow .box-right .step .text {
    width: calc(100% - 82px - 2em); }

  #company {
    padding-top: 20px; }
    #company .comp-flex {
      gap: 1em; }

  #contacts {
    padding: 40px 0; }

  footer {
    padding: 40px 0 80px; }
    footer .ft-text {
      margin: 0 auto 40px; }
    footer .credit {
      text-align: center; }

  .popup-req .book-flex {
    flex-direction: column-reverse; }
    .popup-req .book-flex .col-l {
      width: 100%; }
    .popup-req .book-flex .col-r {
      width: 80%;
      margin-bottom: 1.5em; }
    .popup-req .book-flex .cta-btn {
      margin: 1em auto; } }
#btn07 span:nth-of-type(1) {
  -webkit-animation: btn07-bar01 0.75s forwards;
  animation: btn07-bar01 0.75s forwards; }

@-webkit-keyframes btn07-bar01 {
  0% {
    -webkit-transform: translateY(20px) rotate(45deg); }
  50% {
    -webkit-transform: translateY(20px) rotate(0); }
  100% {
    -webkit-transform: translateY(0) rotate(0); } }
@keyframes btn07-bar01 {
  0% {
    transform: translateY(20px) rotate(45deg); }
  50% {
    transform: translateY(20px) rotate(0); }
  100% {
    transform: translateY(0) rotate(0); } }
#btn07 span:nth-of-type(2) {
  transition: all 0.25s 0.25s;
  opacity: 1; }

#btn07 span:nth-of-type(3) {
  -webkit-animation: btn07-bar03 0.75s forwards;
  animation: btn07-bar03 0.75s forwards; }

@-webkit-keyframes btn07-bar03 {
  0% {
    -webkit-transform: translateY(-20px) rotate(-45deg); }
  50% {
    -webkit-transform: translateY(-20px) rotate(0); }
  100% {
    -webkit-transform: translateY(0) rotate(0); } }
@keyframes btn07-bar03 {
  0% {
    transform: translateY(-20px) rotate(-45deg); }
  50% {
    transform: translateY(-20px) rotate(0); }
  100% {
    transform: translateY(0) rotate(0); } }
#btn07.active span:nth-of-type(1) {
  -webkit-animation: active-btn07-bar01 0.75s forwards;
  animation: active-btn07-bar01 0.75s forwards; }

@-webkit-keyframes active-btn07-bar01 {
  0% {
    -webkit-transform: translateY(0) rotate(0); }
  50% {
    -webkit-transform: translateY(20px) rotate(0); }
  100% {
    -webkit-transform: translateY(20px) rotate(45deg); } }
@keyframes active-btn07-bar01 {
  0% {
    transform: translateY(0) rotate(0); }
  50% {
    transform: translateY(20px) rotate(0); }
  100% {
    transform: translateY(20px) rotate(45deg); } }
#btn07.active span:nth-of-type(2) {
  opacity: 0; }

#btn07.active span:nth-of-type(3) {
  -webkit-animation: active-btn07-bar03 0.75s forwards;
  animation: active-btn07-bar03 0.75s forwards; }

@-webkit-keyframes active-btn07-bar03 {
  0% {
    -webkit-transform: translateY(0) rotate(0); }
  50% {
    -webkit-transform: translateY(-20px) rotate(0); }
  100% {
    -webkit-transform: translateY(-20px) rotate(-45deg); } }
@keyframes active-btn07-bar03 {
  0% {
    transform: translateY(0) rotate(0); }
  50% {
    transform: translateY(-20px) rotate(0); }
  100% {
    transform: translateY(-20px) rotate(-45deg); } }
@keyframes action {
  0% {
    background-position: 0 0; }
  100% {
    background-position: -1000px 0; } }
.form {
  background-color: #fff;
  padding: 2em 1em;
  border-radius: 0.5em;
  max-width: 800px;
  margin: auto; }

.cf7__list {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 60px; }

.cf7__list dt:nth-of-type(n + 2),
.cf7__list dd:nth-of-type(n + 2) {
  margin-top: 30px; }

.cf7__list dt {
  width: 35%;
  padding-top: 15px;
  text-align: left; }

.cf7__list dd {
  width: 65%; }

/* 必須・任意 */
.cf7__required,
.cf7__optional {
  margin-right: 15px;
  padding: 6px 14px;
  color: #fff;
  font-size: 12px;
  vertical-align: 1px; }

.cf7__required {
  background: #be1d1d; }

.cf7__optional {
  background: #878d8e; }

/* input・textarea */
.cf7__list dd input[type="text"],
.cf7__list dd input[type="tel"],
.cf7__list dd input[type="email"],
.cf7__list dd textarea {
  width: calc(100% - 40px);
  padding: 15px 20px;
  background: #f4f4f4; }

/* ドロップダウンメニュー */
.cf7__list dd select {
  position: relative; }

.cf7__list dd select {
  width: 100%;
  padding: 19px 20px;
  background: #f4f4f4;
  color: #a5a5a5;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none; }

span:has(select):after {
  position: absolute;
  top: 50%;
  right: 20px;
  z-index: 10;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 8px solid #000;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  pointer-events: none;
  content: ""; }

/* チェックボックス・ラジオボタン */
.cf7__list dd .wpcf7-checkbox,
.cf7__list dd .wpcf7-radio {
  display: block;
  padding: 15px 0 10px; }

/* 縦並び（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item {
  display: block;
  margin: 0;
  text-align: left; }

.cf7__list dd .wpcf7-list-item:nth-child(n + 2) {
  margin-top: 18px; }

/* マウスカーソル（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item label {
  cursor: pointer; }

/* チェックボックス・ラジオボタン */
input[type="checkbox"],
input[type="radio"] {
  position: relative;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  border: 1px solid #bcbcbc;
  vertical-align: -3px;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

/* チェックボックス */
input[type="checkbox"]:checked {
  border: 1px solid #000;
  background: #000; }

input[type="checkbox"]:checked:before {
  position: absolute;
  top: 2px;
  left: 5px;
  transform: rotate(50deg);
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: ""; }

/* ラジオボタン */
input[type="radio"] {
  border-radius: 50%; }

input[type="radio"]:checked:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #000;
  content: ""; }

/* プレースホルダー */
/* Google Chrome / Safari / Mozilla Firefox / Opera */
.cf7__list dd input[type="text"]::placeholder,
.cf7__list dd input[type="tel"]::placeholder,
.cf7__list dd input[type="email"]::placeholder,
.cf7__list dd textarea::placeholder {
  color: #a5a5a5; }

/* Microsoft Edge */
.cf7__list dd input[type="text"]::-ms-input-placeholder,
.cf7__list dd input[type="tel"]::-ms-input-placeholder,
.cf7__list dd input[type="email"]::-ms-input-placeholder,
.cf7__list dd textarea::-ms-input-placeholder {
  color: #a5a5a5; }

/* Internet Explorer */
.cf7__list dd input[type="text"]:-ms-input-placeholder,
.cf7__list dd input[type="tel"]:-ms-input-placeholder,
.cf7__list dd input[type="email"]:-ms-input-placeholder,
.cf7__list dd textarea:-ms-input-placeholder {
  color: #a5a5a5; }

/* 送信ボタン */
.cf7__button {
  text-align: center;
  position: relative; }
  .cf7__button .wpcf7-spinner {
    position: absolute;
    top: 50%;
    right: 0; }

input[type="submit"] {
  width: 260px;
  height: 60px;
  background: #000;
  color: #fff;
  transition: opacity 0.6s; }

input[type="submit"]:hover {
  opacity: 0.6; }

/* ajax-loader */
.wpcf7-spinner {
  vertical-align: middle; }

.caution {
  font-size: 0.8em;
  line-height: 1.4em;
  max-width: 600px;
  margin: auto;
  margin-bottom: 2em; }
  .caution h4 {
    font-weight: 600;
    margin-top: 1em; }
  .caution .pp {
    margin: 1em auto;
    text-decoration: underline; }

@media screen and (max-width: 767px) {
  .cf7__list dt {
    width: 100%;
    margin-bottom: 15px;
    padding-top: 0; }

  .cf7__list dd {
    width: 100%; }

  .cf7__list dd:nth-of-type(n + 2) {
    margin-top: 0; }

  .cf7__list dd .wpcf7-checkbox,
  .cf7__list dd .wpcf7-radio {
    padding: 15px 0 0; }

  /* 送信ボタン */
  input[type="submit"] {
    width: 180px;
    height: 56px; } }

/*# sourceMappingURL=style.css.map */
