@charset "utf-8"; /* default PC */
/* animation */
.animation {
  opacity: 0;
  position: relative;
  top: 40px;
  transition: .5s;
}

.animation.active {
  opacity: 1;
  top: 0;
  transition: .5s;
}

/* main-view */
.main-view, .splide__track {
  height: calc(95svh - 200px);
  min-height: 400px;
  margin-top: 100px;
}

#splide01-slide01, #splide01-slide02, #splide01-slide03 {
  position: relative;
}

.splide__slide::before {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  display: block;
  height: 100%;
  transform: scale(1);
  transition: transform 8s linear;
  width: 100%;
}

.splide__slide.is-active::before {
  transform: scale(1.09);
}

#splide01-slide01::before {
  background-image: url(../image/contents/home/index_slider_01.jpg?202506);
}

#splide01-slide02::before {
  background-image: url(../image/contents/home/index_slider_02.jpg?202506);
}

#splide01-slide03::before {
  background-image: url(../image/contents/home/index_slider_03.jpg?202506);
}

button.splide__toggle {
  appearance: none;
  background: none;
  border: none;
  height: 27px;
  padding: 0;
  position: absolute;
  bottom: 43px;
  left: 0;
  right: -140px;
  margin: auto;
  width: 27px;
  -webkit-appearance: none;
}

/* contents */
#contents .inner {
  max-width: 1750px;
}

#contents .area {
  background-color: #fff;
  padding: 70px 0 100px;
  position: relative;
}

#contents .works-area h2, #contents .training-area h2, #contents .contact-area h2 {
  margin-bottom: 35px;
}

#contents .bg-blue {
  background-color: #2f3b77;
  position: relative;
}

#contents .bg-blue::before {
  background: url(../image/contents/home/bg_blue_ico.png) no-repeat center / contain;
  content: "";
  display: block;
  height: 648px;
  max-width: 100%;
  width: 1030px;
  position: absolute;
  right: 0;
  top: 0;
}

#contents .bg-gray {
  background-color: #f1f1f1;
  position: relative;
}

#contents .bg-blue h2 {
  color: #fff;
}

#contents .bg-blue h2 .en-ttl {
  color: #a7b3ec;
}

#contents .bg-txt-box .txt-2box, #contents .bg-txt-box .txt-3box {
  background-color: #fff;
}

#contents .bg-txt-box .txt-2box .ttl, #contents .bg-txt-box .txt-3box .ttl {
  font-size: 28px;
  font-weight: bold;
  letter-spacing: .05em;
  margin-bottom: 20px;
}

#contents .bg-txt-box .txt-2box .txt-box, #contents .bg-txt-box .txt-3box .txt-box {
  padding: 35px 45px 25px;
}

#contents .bg-txt-box, #contents .bg-txt-box {
  gap: 50px 0;
}

#contents .works-area .txt {
  color: #fff;
  margin-bottom: 10px;
}

#contents .works-area .txt:nth-of-type(2) {
  margin-bottom: 50px;
}

#contents .works-area .txt .look-orange {
  font-size: 134%;
  font-weight: bold;
  letter-spacing: .05em;
}

#contents .training-area .bg-txt-box .txt-3box .ttl {
  font-size: 24px;
  line-height: 1.5em;
  margin-bottom: 10px;
}

#contents .training-area .bg-txt-box .txt-3box .ttl br {
  display: none;
}

#contents .training-area .bg-txt-box .txt-box {
  padding: 20px 25px 15px;
}

#contents .requ-area .btn-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin: 0 auto;
  max-width: 1400px;
}

#contents .requ-area .link-btn.insta, #contents .requ-area .link-btn.line {
  align-items: center;
  background: url(../image/contents/home/bg_insta.jpg) no-repeat center / cover;
  display: flex;
  font-size: 18px;
  letter-spacing: .05em;
  padding: 61px 55px;
  width: 100%;
}

#contents .requ-area .link-btn.line {
  background: #0cb36d;
}

#contents .requ-area .link-btn.insta::after, #contents .requ-area .link-btn.line::after {
  height: 30px;
  right: 40px;
  width: 30px;
}

#contents .requ-area .link-btn.insta .en-txt, #contents .requ-area .link-btn.line .en-txt {
  font-size: 38px;
  font-weight: 900;
  margin-right: 30px;
}

#contents .requ-area .sub-txt {
  color: #2f3b77;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: .1em;
}

#contents .voice-area .voice-box .txt-3box {
  background-color: #fff;
  padding: 40px;
}

#contents .voice-area .voice-box .txt-3box p:nth-of-type(2) {
  margin-bottom: 0;
}

#contents .voice-area .voice-box .box-ttl {
  align-items: center;
  color: #2f3b77;
  display: flex;
  font-size: 28px;
  font-weight: bold;
  letter-spacing: .05em;
  margin-bottom: 25px;
  position: relative;
}

#contents .voice-area .voice-box .box-ttl::before {
  background: url(../image/contents/home/voice_img_01.png) no-repeat center / contain;
  content: "";
  display: block;
  height: 85px;
  margin-right: 25px;
  width: 85px;
}

#contents .voice-area .voice-box .txt-3box:nth-child(2) .box-ttl::before {
  background-image: url(../image/contents/home/voice_img_02.png);
}

#contents .voice-area .voice-box .txt-3box:nth-child(3) .box-ttl::before {
  background-image: url(../image/contents/home/voice_img_03.png);
}

#contents .greeting-area .inner {
  max-width: 1550px;
}

#contents .greeting-area p {
  color: #fff;
  line-height: 1.75em;
  margin-bottom: 8px;
}

#contents .greeting-area p.name {
  font-size: 22px;
  margin-bottom: 0;
}

#contents .philosophy-area .txt-4box {
  background-color: #fff;
  padding: 30px 40px;
}

#contents .philosophy-area .txt-4box p:last-child {
  margin-bottom: 0;
}

#contents .philosophy-area .txt-4box .ttl {
  color: #2f3b77;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: .05em;
  position: relative;
  text-align: center;
}

#contents .philosophy-area .txt-4box .ttl::before {
  background: url(../image/contents/home/ico_philosophy_01.svg) no-repeat center / contain;
  content: "";
  display: block;
  height: 55px;
  margin: 0 auto 10px;
  width: 55px;
}

#contents .philosophy-area .txt-4box:nth-child(2) .ttl::before {
  background-image: url(../image/contents/home/ico_philosophy_02.svg);
}

#contents .philosophy-area .txt-4box:nth-child(3) .ttl::before {
  background-image: url(../image/contents/home/ico_philosophy_03.svg);
}

#contents .philosophy-area .txt-4box:nth-child(4) .ttl::before {
  background-image: url(../image/contents/home/ico_philosophy_04.svg);
}

#contents .effort-area .txt {
  background-color: #fff;
  margin: 0 auto;
  max-width: 1000px;
  padding: 35px 20px;
}

#contents .contact-area {
  background: url(../image/contents/home/bg_contact.jpg?202506) no-repeat center / cover;
  padding: 80px 0;
}

#contents .contact-area .inner {
  background-color: #fff;
  max-width: 1400px;
  padding: 60px 40px;
}

#contents .contact-area .form-box {
  margin: 0 auto;
  max-width: 950px;
}

#contents .contact-area .txt-center {
  line-height: 1.9em;
}

#contents .contact-area a.tel-txt[href*="tel:"] {
  color: #f68d2f;
  font-weight: bold;
  font-size: 150%;
  padding: 0 3px 0 27px;
  position: relative;
}

#contents .contact-area a.tel-txt[href*="tel:"]::before {
  background-image: url(../image/contents/home/ico_tel_color.svg);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: 20px;
  width: 20px;
  position: absolute;
  left: 4px;
  top: 2px;
  bottom: 0;
  margin: auto;
}

#contents .table-01 th p, #contents .table-01 td p {
  margin-bottom: 0;
}

#contents .privacy-area {
  border: 2px solid #e0e0e0;
  height: 210px;
  overflow-y: scroll;
  margin: 50px auto 40px;
  padding: 25px 25px 5px;
}

#contents .privacy-area::-webkit-scrollbar {
  height: 5px;
  width: 0;
}

#contents .privacy-area::-webkit-scrollbar-track {
  background: #e0e0e0;
}

#contents .privacy-area::-webkit-scrollbar-thumb {
  background: #e0e0e0;
}

#contents .privacy-area li p {
  margin-bottom: 3px;
}

#contents .privacy-area p, #contents .privacy-area ul {
  font-size: 17px;
  margin-bottom: 30px;
}

#contents .privacy-area p.txt-mb {
  margin-bottom: 15px;
}

#contents .privacy-area h2 {
  font-size: 24px;
  margin-bottom: 20px;
}

#contents .privacy-area h3 {
  font-size: 21px;
}

span.wpcf7-form-control.wpcf7-radio {
  display: flex;
  gap: 35px;
}

@media screen and (min-width: 960px) {
  .mobile-view .main-view, .mobile-view .splide__track {
    margin-top: 170px;
  }
}

@media screen and (max-width: 1500px) {
  #contents .philosophy-area .txt-4box {
    padding: 30px;
  }

  #contents .voice-area .voice-box .txt-3box {
    padding: 40px 30px;
  }

  #contents .training-area .bg-txt-box .txt-3box .ttl br {
    display: block;
  }
}

@media screen and (max-width: 1400px) {
  #contents .requ-area .link-btn.insta, #contents .requ-area .link-btn.line {
    align-items: baseline;
    flex-direction: column;
    gap: 20px 0;
    padding: 40px 40px 37px;
  }

  #contents .bg-blue::before {
    height: calc(100vw / 2.2);
    width: calc(100vw / 1.4);
  }

  #contents .voice-area .voice-box .box-ttl {
    font-size: 27px;
  }
}

@media screen and (max-width: 1300px) {
  #contents .voice-area .voice-box .txt-3box {
    padding: 40px 25px;
  }

  #contents .voice-area .voice-box .box-ttl::before {
    height: 70px;
    margin-right: 20px;
    width: 70px;
  }

  #contents .voice-area .voice-box .box-ttl {
    font-size: 26px;
  }
}

/* view-1140 notePC,Tablet */
@media screen and (max-width: 1140px) {
  #contents .contact-area a.tel-txt[href*="tel:"] {
    padding-left: 24px;
  }

  #contents .contact-area a.tel-txt[href*="tel:"]::before {
    height: 17px;
    width: 17px;
    top: 4px;
  }

  #contents .effort-area .txt {
    padding: 30px;
  }

  #contents .contact-area .inner {
    padding: 50px 40px 45px;
  }

  #contents .contact-area {
    padding: 70px 0;
  }

  #contents .privacy-area h3 {
    font-size: 19px;
    margin-bottom: 10px;
    padding: 3px 12px 4px;
  }

  #contents .privacy-area p, #contents .privacy-area ul {
    font-size: 15px;
    margin-bottom: 25px;
  }

  #contents .privacy-area h2 {
    font-size: 21px;
  }

  #contents .philosophy-area .txt-4box {
    padding: 30px 20px;
  }

  #contents .philosophy-area .txt-4box .ttl {
    font-size: 20px;
  }

  #contents .greeting-area p.name {
    font-size: 20px;
  }

  #contents .voice-area .voice-box .box-ttl::before {
    height: 65px;
    margin-right: 15px;
    width: 65px;
  }

  #contents .voice-area .voice-box .box-ttl {
    font-size: 23px;
  }

  #contents .voice-area .voice-box {
    gap: 30px 0;
  }

  #contents .voice-area .voice-box .txt-3box {
    margin-right: 20px;
    width: calc(100% / 2 - 10px);
  }

  #contents .voice-area .voice-box .txt-3box:nth-child(2) {
    margin-right: 0;
  }

  #contents .requ-area .link-btn.insta::after, #contents .requ-area .link-btn.line::after {
    right: 25px;
  }

  #contents .requ-area .link-btn.insta, #contents .requ-area .link-btn.line {
    font-size: 16px;
    gap: 10px 0;
    padding: 30px 55px;
  }

  #contents .requ-area .link-btn.insta .en-txt, #contents .requ-area .link-btn.line .en-txt {
    font-size: 32px;
  }

  #contents .requ-area .sub-txt {
    font-size: 21px;
  }

  #contents .mb-50 {
    margin-bottom: 40px;
  }

  #contents .training-area .bg-txt-box .txt-3box .ttl {
    font-size: 20px;
  }

  #contents .area {
    padding: 60px 0 85px;
  }

  #contents .bg-txt-box .txt-2box .txt-box, #contents .bg-txt-box .txt-3box .txt-box {
    padding: 25px 20px 15px;
  }

  #contents .bg-txt-box, #contents .bg-txt-box {
    gap: 35px 0;
  }

  #contents .bg-txt-box .txt-2box .ttl, #contents .bg-txt-box .txt-3box .ttl {
    font-size: 23px;
  }
}

/* view-959 Mobile,Tablet */
@media screen and (max-width: 959px) {
  #contents .requ-area .btn-box {
    grid-template-columns: 100%;
    max-width: 600px;
  }

  #contents .effort-area .txt {
    text-align: left;
  }

  #contents .effort-area .txt br {
    display: none;
  }

  span.wpcf7-form-control.wpcf7-radio {
    display: block;
  }

  span.wpcf7-form-control.wpcf7-radio span {
    margin-bottom: 5px;
  }

  #contents .philosophy-area .flex {
    gap: 20px 0;
  }

  button.splide__toggle {
    bottom: 23px;
  }

  .main-view, .splide__track {
    height: 45vh;
    min-height: 300px;
    margin-top: 71px;
  }
}

@media screen and (max-width: 767px) {
  #contents .contact-area .txt-center {
    text-align: left;
  }

  #contents .voice-area .voice-box .txt-3box {
    margin: 0;
    width: 100%;
  }

  #contents .works-area .txt .look-orange {
    font-size: 125%;
  }

  #contents .works-area .txt {
    line-height: 1.75em;
    text-align: left;
  }

  #contents .works-area .txt br {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  #contents .training-area .bg-txt-box .txt-3box .ttl .br-1300 {
    display: none;
  }
}

/* view-559 Mobile */
@media screen and (max-width: 559px) {
  #contents .requ-area .btn-box {
    gap: 40px;
  }

  .splide__slide.is-active::before {
    transform: scale(1.12);
  }

  #contents .effort-area .txt {
    padding: 25px 15px;
  }

  #contents .philosophy-area .flex {
    margin-bottom: 40px;
  }

  #contents .privacy-area h3 {
    font-size: 18px;
    padding: 2px 12px 3px;
  }

  #contents .privacy-area h2 {
    font-size: 20px;
    margin-bottom: 15px;
  }

  #contents .privacy-area {
    margin: 40px auto 30px;
    padding: 20px 15px 5px;
  }

  #contents .contact-area .inner {
    padding: 40px 15px 30px;
  }

  #contents .contact-area {
    padding: 60px 0;
  }

  #contents .voice-area .voice-box .txt-3box {
    padding: 30px 15px;
  }

  #contents .voice-area .voice-box .box-ttl::before {
    height: 60px;
    width: 60px;
  }

  #contents .voice-area .voice-box .box-ttl {
    font-size: 21px;
    margin-bottom: 20px;
  }

  #contents .requ-area .link-btn.insta .en-txt, #contents .requ-area .link-btn.line .en-txt {
    font-size: 30px;
  }

  #contents .requ-area .link-btn.insta, #contents .requ-area .link-btn.line {
    align-items: baseline;
    flex-direction: column;
    gap: 10px 0;
    padding: 30px 40px 27px;
  }

  #contents .requ-area .sub-txt {
    font-size: 19px;
  }

  #contents .area {
    padding: 50px 0 70px;
  }

  #contents .bg-txt-box .txt-2box .txt-box, #contents .bg-txt-box .txt-3box .txt-box {
    padding: 20px 15px 10px;
  }

  #contents .bg-txt-box .txt-2box .ttl, #contents .bg-txt-box .txt-3box .ttl {
    font-size: 22px;
    margin-bottom: 15px;
  }

  #contents .bg-blue::before {
    height: calc(100vw / 1.7);
    width: calc(100vw / 1.1);
  }

  .main-view, .splide__track {
    margin-top: 65px;
  }
}
