@charset "UTF-8";
/* ========================================
    foundation
======================================== */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;700;900&display=swap");
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6,
p, blockquote, pre, abbr, address,
cite, code, del, dfn, em, img, ins,
kbd, q, samp, small, strong, sub, sup,
var, b, i, dl, dt, dd, ol, ul, li, li > ul,
a, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, figcaption,
footer, header, hgroup, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: bottom;
  background: transparent;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: inherit;
}

li {
  list-style-type: none;
}

@media screen and (max-width: 767px) {
  .spNone {
    display: none !important;
  }
}

.tabOnly {
  display: none !important;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .tabOnly {
    display: block !important;
  }
}

.pcNone {
  display: block !important;
}
@media screen and (min-width: 768px) {
  .pcNone {
    display: none !important;
  }
}

@-webkit-keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}

@keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}
html {
  scroll-behavior: smooth;
  height: -webkit-fill-available;
  font-size: 62.5%;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #000;
  width: 100%;
  font-size: 16px;
  font-weight: 400;
  font-family: "Noto Sans JP", YuGothic, "Yu Gothic", "メイリオ", Meiryo, "ヒラギノ角ゴシック", "Hiragino Sans", sans-serif;
  color: #000;
  background-color: #fff;
  min-height: 100vh;
  min-height: -webkit-fill-available;
}

body.fixed {
  position: fixed;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

p, li, a, dt, dd {
  font-weight: 400;
  color: #282031;
}

p, li, a, dt, dd {
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
}

/* ========================================
    layout
======================================== */
.l-inner {
  max-width: 108rem;
  width: 100%;
  margin: 0 auto;
  padding-left: clamp(2rem, 2.9411764706vw, 4rem);
  padding-right: clamp(2rem, 2.9411764706vw, 4rem);
}
@media screen and (max-width: 1000px) {
  .l-inner {
    padding-left: 4rem;
    padding-right: 4rem;
  }
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

.l-main {
  padding-top: 7.3rem;
}
@media screen and (max-width: 1240px) {
  .l-main {
    padding-top: 0;
  }
}

.l-wrapper {
  overflow: hidden;
}

/* ========================================
    object / component
======================================== */
/* ========================================
    object / project
======================================== */
.cta {
  background-image: url(../img/cta_bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .cta {
    background-image: url(../img/cta_bg_sp.jpg);
  }
}
@media screen and (max-width: 767px) {
  .cta--B {
    background-image: url(../img/cta_bg_sp02.jpg);
  }
}
.cta::before, .cta::after {
  content: "";
  width: 100%;
  height: 1.1rem;
  background: -webkit-gradient(linear, left top, right top, from(#E36117), to(#E5C822));
  background: -webkit-linear-gradient(left, #E36117 0%, #E5C822 100%);
  background: linear-gradient(90deg, #E36117 0%, #E5C822 100%);
  position: absolute;
  left: 0;
  z-index: 2;
}
.cta::before {
  top: 0;
}
.cta::after {
  bottom: 0;
}
.cta_inner {
  padding-top: clamp(4.6rem, 10vw, 10rem);
  padding-bottom: clamp(4.6rem, 10vw, 10rem);
}
.cta h2 {
  width: clamp(31.4rem, 77.4vw, 77.4rem);
  margin: 0 auto 2rem;
}
@media screen and (max-width: 767px) {
  .cta h2 {
    margin: 0 auto 3rem;
  }
}
.cta .content {
  width: clamp(33rem, 79.4vw, 79.4rem);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .cta .content {
    width: 100%;
  }
}
.cta a {
  display: block;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
}
@media screen and (max-width: 767px) {
  .cta a {
    -webkit-filter: drop-shadow(0 0.3rem 0.6rem rgba(0, 0, 0, 0.36));
    filter: drop-shadow(0 0.3rem 0.6rem rgba(0, 0, 0, 0.36));
  }
}
.cta a:hover {
  -webkit-transform: scale(1.01);
  transform: scale(1.01);
}

.p-footer {
  background-color: #F2F3F8;
}
@media screen and (max-width: 767px) {
  .p-footer {
    margin-bottom: 9.4rem;
  }
}
.p-footer_inner {
  padding-bottom: 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-footer_inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0.7rem;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding-top: 1.6rem;
  }
}
.p-footer .logo {
  width: clamp(12rem, 17.8vw, 17.8rem);
}
@media screen and (max-width: 767px) {
  .p-footer .logo {
    width: 18.5rem;
  }
}
.p-footer .copyright {
  width: auto;
  line-height: 1;
  color: #959595;
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .p-footer .copyright {
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.4615384615;
    text-align: center;
  }
}

.p-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  gap: 3rem;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 7.3rem;
  background-color: #fff;
}
@media screen and (max-width: 1240px) {
  .p-header {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    background-color: initial;
    padding: 0;
    height: auto;
  }
}
.p-header .logo {
  width: clamp(12rem, 11.3235294118vw, 15.4rem);
  padding-left: 1.6rem;
  position: relative;
}
@media screen and (max-width: 1240px) {
  .p-header .logo {
    display: none;
  }
}
.p-header .navi {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 3.6rem;
}
@media screen and (max-width: 1240px) {
  .p-header .navi {
    display: none;
  }
}
.p-header .naviList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 2.4rem;
}
.p-header .naviList a {
  font-size: clamp(1.3rem, 1.1029411765vw, 1.5rem);
}
.p-header .btnWrap {
  width: clamp(15rem, 20.6vw, 20.6rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.p-header .btnWrap a {
  display: block;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
}
.p-header .btnWrap a:hover {
  opacity: 0.7;
}
.p-header .spNavi {
  display: none;
  width: 4rem;
  height: 4rem;
}
@media screen and (max-width: 1240px) {
  .p-header .spNavi {
    display: block;
  }
}
.p-header .spNavi .hamburger-menu {
  width: 4rem;
  height: 4rem;
  position: relative;
  z-index: 10;
  border: none;
  background-color: #171C61;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}
.p-header .spNavi .hamburger-menu__bar {
  display: inline-block;
  width: 2.1rem;
  height: 0.1rem;
  background: #fff;
  position: absolute;
  top: 1.2rem;
  left: 1rem;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
.p-header .spNavi .hamburger-menu__bar:first-child {
  top: 1.2rem;
}
.p-header .spNavi .hamburger-menu__bar:nth-child(2) {
  top: 2rem;
}
.p-header .spNavi .hamburger-menu__bar:last-child {
  top: 2.8rem;
}
.p-header .spNavi .hamburger-menu--open .hamburger-menu__bar {
  top: 50%;
}
.p-header .spNavi .hamburger-menu--open .hamburger-menu__bar:first-child {
  -webkit-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
}
.p-header .spNavi .hamburger-menu--open .hamburger-menu__bar:last-child {
  -webkit-transform: translateY(-50%) rotate(-45deg);
  transform: translateY(-50%) rotate(-45deg);
  width: 24px;
}
.p-header .spNavi .hamburger-menu--open .hamburger-menu__bar:nth-child(2) {
  display: none;
}
.p-header .spNavi .navigation {
  display: none;
  background: rgba(255, 255, 255, 0.95);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  z-index: 2;
  overflow-y: scroll;
  padding: 8rem 3rem;
}
.p-header .spNavi .navigation__logo {
  width: 22.6rem;
  margin: 0 auto 3.7rem;
}
.p-header .spNavi .navigation__list {
  list-style: none;
  margin: 0 auto;
  width: 23rem;
}
.p-header .spNavi .navigation__list-item:not(:last-child) {
  border-bottom: solid 1px #CCCCCC;
}
.p-header .spNavi .navigation__link {
  display: block;
  font-size: 1.8rem;
  font-family: "Noto Sans JP", YuGothic, "Yu Gothic", "メイリオ", Meiryo, "ヒラギノ角ゴシック", "Hiragino Sans", sans-serif;
  font-weight: 400;
  line-height: 1;
  text-align: left;
  padding: 2rem 0;
  position: relative;
  color: #171C61;
  text-align: center;
}
@media (hover: hover) and (pointer: fine) {
  .p-header .spNavi .navigation__link:hover {
    background: #333;
  }
}
.p-header .spNavi .btnWrap {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 767px) {
  .p-header .spNavi .btnWrap {
    display: block;
  }
}
.p-header .spNavi .btnWrap a {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .p-header .spNavi .btnWrap a {
    width: 100%;
  }
}

/* ========================================
    object / page
======================================== */
.fixedBox {
  position: fixed;
  bottom: 3rem;
  right: 1.7rem;
  width: 26rem;
  z-index: 5;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 767px) {
  .fixedBox {
    width: 100%;
    bottom: 0;
    right: 0;
    opacity: 1;
    visibility: visible;
  }
}
.fixedBox.fixed {
  opacity: 1;
  visibility: visible;
}
.fixedBox a {
  display: block;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
}
.fixedBox a:hover {
  opacity: 0.7;
}

.kv {
  background-image: url(../img/kv_bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .kv {
    background-image: url(../img/kv_bg_sp.jpg);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
}
.kv_inner {
  padding-top: 2rem;
}
@media screen and (max-width: 767px) {
  .kv_inner {
    padding-top: 4.6rem;
    padding-bottom: 8.5rem;
    padding-left: 0.3rem;
    padding-right: 0.7rem;
  }
}
.kv .detail {
  width: clamp(38rem, 75.1830161054vw, 102.7rem);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .kv .detail {
    width: clamp(32rem, 97.4358974359vw, 38rem);
  }
}
.kv .area {
  width: 26rem;
  position: absolute;
  bottom: 15.4rem;
  right: 1.7rem;
}
.kv .btnCall {
  width: 26rem;
  position: absolute;
  bottom: 1.5rem;
  right: 1.7rem;
}
@media screen and (max-width: 767px) {
  .kv .btnCall {
    display: none;
  }
}
.kv .btnCall a {
  display: block;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
}
.kv .btnCall a:hover {
  opacity: 0.7;
}

.solution {
  background-image: url(../img/solution_bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.solution_inner {
  padding-top: clamp(6rem, 10vw, 10rem);
  padding-bottom: clamp(6rem, 10vw, 10rem);
}
.solution h2 {
  width: clamp(33.4rem, 89.2vw, 89.2rem);
  margin: 0 auto clamp(2.2rem, 6vw, 6rem);
}
@media screen and (max-width: 767px) {
  .solution h2 {
    width: 100%;
  }
}
.solution_list {
  max-width: 65.8rem;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 3rem 2.6rem;
}
.solution_list .slick-track {
  padding-bottom: 0.3rem;
}
.solution_list .slick-slide {
  margin: 0 0.7rem;
}
.solution_list .slick-prev,
.solution_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.solution_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -1.1rem;
}
.solution_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -1.1rem;
}
.solution_list .slick-arrow:before {
  content: "";
}
.solution_listItem {
  width: calc((100% - 2.6rem) / 2);
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}

.canDo_head {
  background-color: #292E76;
  padding: 2.9rem 0;
}
.canDo_head h2 {
  width: clamp(28.8rem, 74.7vw, 74.7rem);
  margin: 0 auto;
}
.canDo_content {
  padding: 3.8rem 0 4.9rem;
  background-color: #171C61;
}
@media screen and (max-width: 767px) {
  .canDo_content {
    padding: 3.8rem 0 6rem;
  }
}
.canDo_content h3 {
  width: clamp(35.2rem, 50vw, 50rem);
  margin: 0 auto 3rem;
}
.canDo_photoBox {
  width: 200vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.7rem;
}
@media screen and (max-width: 767px) {
  .canDo_photoBox {
    width: 3790px;
    gap: 2.9rem;
  }
}
.canDo_photoBox .loopImage {
  width: 100vw;
  -webkit-animation: infinity-scroll-left 40s infinite linear 0.5s both;
  animation: infinity-scroll-left 40s infinite linear 0.5s both;
}
@media screen and (max-width: 767px) {
  .canDo_photoBox .loopImage {
    width: 1895px;
  }
}

.maker_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(6.7rem, 10vw, 10rem);
}
.maker h2 {
  width: clamp(19.2rem, 25.6vw, 25.6rem);
  margin: 0 auto 4.7rem;
}
.maker_logoBox {
  width: 200vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .maker_logoBox {
    width: 3150px;
  }
}
.maker_logoBox .loopImage {
  width: 100vw;
  -webkit-animation: infinity-scroll-left 40s infinite linear 0.5s both;
  animation: infinity-scroll-left 40s infinite linear 0.5s both;
}
@media screen and (max-width: 767px) {
  .maker_logoBox .loopImage {
    width: 1575px;
  }
}

.strenghts {
  background-image: url(../img/strengths_bg_top.png), url(../img/strengths_bg_bottom.png);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: top center, bottom center;
}
.strenghts_inner {
  padding-top: clamp(6rem, 10vw, 10rem);
  padding-bottom: clamp(4.4rem, 10vw, 10rem);
  padding-left: 3rem;
  padding-right: 3rem;
}
.strenghts h2 {
  width: clamp(31rem, 54.4vw, 54.4rem);
  margin: 0 auto 3rem;
}
@media screen and (max-width: 767px) {
  .strenghts h2 {
    margin: 0 auto 3.6rem;
  }
}
.strenghts_read {
  font-size: clamp(1.6rem, 2vw, 2rem);
  line-height: 1.45;
  text-align: center;
  margin: 0 auto 5.4rem;
}
@media screen and (max-width: 767px) {
  .strenghts_read {
    margin-bottom: 7rem;
    line-height: 2.0625;
  }
}
.strenghts_detail {
  margin-bottom: clamp(3.6rem, 5vw, 5rem);
}
.strenghts_list .slick-track {
  padding-bottom: 0.3rem;
}
.strenghts_list .slick-slide {
  margin: 1.6rem;
}
.strenghts_list .slick-prev,
.strenghts_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.strenghts_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -0.5rem;
}
.strenghts_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -0.5rem;
}
.strenghts_list .slick-arrow:before {
  content: "";
}
.strenghts_list li {
  -webkit-box-shadow: 0 0 1.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0 1.6rem rgba(0, 0, 0, 0.16);
}
.strenghts_list li:not(:last-child) {
  margin-bottom: 5rem;
}

.price_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(6.6rem, 8vw, 8rem);
}
.price h2 {
  width: clamp(19.2rem, 25.6vw, 25.6rem);
  margin: 0 auto clamp(3.6rem, 6vw, 6rem);
}
.price_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 2.6rem;
  margin-bottom: clamp(2.1rem, 8vw, 8rem);
}
.price_list .slick-track {
  padding-bottom: 0.3rem;
}
.price_list .slick-slide {
  margin: 1.6rem;
}
.price_list .slick-prev,
.price_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.price_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -0.5rem;
}
.price_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -0.5rem;
}
.price_list .slick-arrow:before {
  content: "";
}
.price_listItem {
  width: calc((100% - 5.2rem) / 3);
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}
.price_catch {
  width: clamp(29.4rem, 89.4vw, 89.4rem);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .price_catch {
    width: 29.4rem;
  }
}

.casestudy {
  background-color: #F2F3F8;
}
.casestudy_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(6rem, 10vw, 10rem);
}
.casestudy h2 {
  width: clamp(9.6rem, 12.8vw, 12.8rem);
  margin: 0 auto clamp(4.4rem, 6vw, 6rem);
}
.casestudy_list {
  width: clamp(31.6rem, 70vw, 70rem) !important;
  margin: 0 auto;
}
.casestudy_list .slick-slide {
  margin: 0 3rem;
}
@media screen and (max-width: 767px) {
  .casestudy_list .slick-slide {
    margin: 0 0.7rem;
  }
}
.casestudy_list .slick-list {
  margin: 0 calc(50% - 50vw);
}
@media screen and (max-width: 767px) {
  .casestudy_list .slick-list {
    margin: initial;
    padding: 0;
  }
}
.casestudy_list .slick-prev,
.casestudy_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .casestudy_list .slick-prev,
  .casestudy_list .slick-next {
    width: 3.5rem;
    height: 3.5rem;
  }
}
.casestudy_list .slick-prev {
  background-image: url(../img/btn_prev.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -5rem;
}
@media screen and (max-width: 767px) {
  .casestudy_list .slick-prev {
    background-image: url(../img/btn_prev02.png);
    left: -1.5rem;
  }
}
.casestudy_list .slick-next {
  background-image: url(../img/btn_next.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -5rem;
}
@media screen and (max-width: 767px) {
  .casestudy_list .slick-next {
    background-image: url(../img/btn_next02.png);
    right: -1.5rem;
  }
}
.casestudy_list .slick-arrow:before {
  content: "";
}
.casestudy_item {
  width: clamp(31.6rem, 70vw, 70rem) !important;
  -webkit-box-shadow: 0 0 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0 0.6rem rgba(0, 0, 0, 0.16);
}

.voice {
  background-image: url(../img/voice_bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
}
@media screen and (max-width: 767px) {
  .voice {
    background-size: 100%;
    background-image: url(../img/voice_bg_sp.jpg);
  }
}
.voice_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(4.4rem, 11vw, 11rem);
}
.voice h2 {
  width: clamp(12rem, 16vw, 16rem);
  margin: 0 auto clamp(2.8rem, 6vw, 6rem);
}
.voice_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.6rem;
}
.voice_list .slick-track {
  padding-bottom: 0.3rem;
}
.voice_list .slick-slide {
  margin: 1.6rem;
}
.voice_list .slick-prev,
.voice_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.voice_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -0.5rem;
}
.voice_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -0.5rem;
}
.voice_list .slick-arrow:before {
  content: "";
}
.voice_listItem {
  width: calc((100% - 5.2rem) / 3);
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}

.comparison {
  background-color: #F2F3F8;
}
.comparison_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(6rem, 15vw, 15rem);
}
.comparison h2 {
  width: clamp(9.6rem, 12.8vw, 12.8rem);
  margin: 0 auto clamp(3.5rem, 6vw, 6rem);
}
.comparison_table {
  max-width: 80.7rem;
  margin: 0 auto;
}

.question_inner {
  padding-top: clamp(6rem, 6.4vw, 6.4rem);
}
.question h2 {
  width: clamp(31.2rem, 69.7vw, 69.7rem);
  margin: 0 auto clamp(2.2rem, 6.4vw, 6.4rem);
}
.question_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 2.8rem 2.6rem;
}
.question_list .slick-slide {
  margin: 0.6rem;
}
.question_list .slick-prev,
.question_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.question_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: -2rem;
}
.question_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: -2rem;
}
.question_list .slick-arrow:before {
  content: "";
}
.question_listItem {
  width: calc((100% - 5.2rem) / 3);
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}

.message_inner {
  padding-top: clamp(6rem, 10vw, 10rem);
  padding-bottom: clamp(6.5rem, 10vw, 10rem);
  padding-left: clamp(3rem, 9.7vw, 9.7rem);
  padding-right: clamp(3rem, 9.7vw, 9.7rem);
}
.message h2 {
  width: clamp(16.8rem, 22.4vw, 22.4rem);
  margin: 0 auto -1.8rem;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .message h2 {
    margin: 0 auto -1.2rem;
  }
}
.message_content {
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}

.flow {
  background-image: url(../img/flow_bg_top.png), url(../img/flow_bg_bottom.png);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: top center, bottom center;
}
@media screen and (max-width: 767px) {
  .flow {
    background-image: url(../img/flow_bg_top_sp.png), url(../img/flow_bg_bottom_sp.png);
  }
}
.flow_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(6rem, 10vw, 10rem);
}
.flow h2 {
  width: clamp(12rem, 16vw, 16rem);
  margin: 0 auto clamp(3.2rem, 7vw, 7rem);
}
.flow_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 3.4rem 2rem;
  margin-bottom: clamp(3rem, 5vw, 5rem);
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .flow_list {
    overflow: visible;
  }
}
.flow_list .slick-slide {
  margin: 0.6rem 4.7rem;
}
.flow_list .slick-prev,
.flow_list .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: block;
  width: 4.2rem;
  height: 4.2rem;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
}
.flow_list .slick-prev {
  background-image: url(../img/btn_prev02.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: 0;
}
.flow_list .slick-next {
  background-image: url(../img/btn_next02.png);
  background-repeat: no-repeat;
  background-size: contain;
  right: 0;
}
.flow_list .slick-arrow:before {
  content: "";
}
.flow_listItem {
  width: calc((100% - 6rem) / 4);
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  position: relative;
}
.flow_listItem::before {
  content: "";
  width: 1.4rem;
  height: 2.1rem;
  background-color: #171C61;
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  position: absolute;
  top: 50%;
  right: -1.8rem;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .flow_listItem::before {
    display: none;
  }
}
.flow_comment {
  width: clamp(33rem, 71.2vw, 71.2rem);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .flow_comment {
    width: 100%;
  }
}

.candoReform_inner {
  padding-top: clamp(6rem, 11vw, 11rem);
  padding-bottom: clamp(4.1rem, 10vw, 10rem);
}
.candoReform h2 {
  width: clamp(21.6rem, 57.6vw, 57.6rem);
  margin: 0 auto clamp(2.8rem, 5.5vw, 5.5rem);
}
.candoReform_photo {
  width: clamp(33rem, 84.5vw, 84.5rem);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .candoReform_photo {
    width: 100%;
  }
}

.contact {
  background-color: #F2F3F8;
}
.contact_inner {
  padding-top: clamp(6rem, 10vw, 10rem);
  padding-bottom: clamp(6rem, 9.5vw, 9.5rem);
}
.contact_head {
  margin-bottom: clamp(5.1rem, 7.2vw, 7.2rem);
}
.contact_head h2 {
  width: clamp(14.4rem, 19.2vw, 19.2rem);
  margin: 0 auto 2.6rem;
}
.contact_head .read {
  width: clamp(33rem, 65.6vw, 65.6rem);
  line-height: 1.5625;
  text-align: center;
  margin: 0 auto;
}
.contact_formBox {
  max-width: 79rem;
  margin: 0 auto;
}
.contact_formBox .formList {
  max-width: 55.8rem;
  margin: 0 auto;
}
.contact_formBox .item:not(:last-child) {
  margin-bottom: 3rem;
}
.contact_formBox .item input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.contact_formBox .item input[type=text],
.contact_formBox .item input[type=email],
.contact_formBox .item input[type=tel],
.contact_formBox .item select,
.contact_formBox .item textarea {
  width: 100%;
  height: 4.3rem;
  padding: 1rem 1.2rem 0.8rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background-color: #F8F8F8;
  -webkit-box-shadow: inset 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: inset 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.contact_formBox .item textarea {
  height: clamp(19rem, 30.7vw, 30.7rem);
  -webkit-box-shadow: inset 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
  box-shadow: inset 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16);
}
.contact_formBox .item ::-webkit-input-placeholder {
  font-size: 1.6rem;
  color: #CBCBCB;
}
.contact_formBox .item ::-moz-placeholder {
  font-size: 1.6rem;
  color: #CBCBCB;
}
.contact_formBox .item :-ms-input-placeholder {
  font-size: 1.6rem;
  color: #CBCBCB;
}
.contact_formBox .item ::-ms-input-placeholder {
  font-size: 1.6rem;
  color: #CBCBCB;
}
.contact_formBox .item ::placeholder {
  font-size: 1.6rem;
  color: #CBCBCB;
}
.contact_formBox .item label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.4rem;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 1.2rem;
}
@media screen and (max-width: 767px) {
  .contact_formBox .item label {
    width: 100%;
    margin-bottom: 1.4rem;
  }
}
.contact_formBox .item label.mb22 {
  margin-bottom: 2.2rem;
}
.contact_formBox .item label .required {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  color: #BF0000;
}
.contact_formBox .item .inputBox {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.contact_formBox .item .inputBox--flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3rem;
  gap: 1.3rem clamp(2.5rem, 3vw, 3rem);
}
.contact_formBox .item .inputBox--flex .flex > p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1.1rem;
}
.contact_formBox .item .inputBox--flex .wide input {
  width: clamp(7.4rem, 15.8vw, 15.8rem);
}
.contact_formBox .item .inputBox--flex .small input {
  width: clamp(4.8rem, 10vw, 10rem);
}
.contact_formBox .item .inputBox--flex .smallAge input {
  width: clamp(4.8rem, 5.2vw, 5.2rem);
}
.contact_formBox .item .inputBox input:not(:last-child) {
  margin-bottom: 0.7rem;
}
.contact_formBox .privacyBox {
  padding-top: clamp(3.7rem, 7.6vw, 7.6rem);
  margin-bottom: clamp(3rem, 4vw, 4rem);
}
.contact_formBox .privacyBox h3 {
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 1.7rem;
}
.contact_formBox .privacyBox .desc {
  max-width: 70rem;
  margin: 0 auto 3.2rem;
  line-height: 1.75;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .contact_formBox .privacyBox .desc {
    padding: 0 2rem;
    margin: 0 auto 3.6rem;
  }
}
.contact_formBox .privacyBox .read {
  font-weight: 400;
}
.contact_formBox .privacyBox_content {
  height: 30rem;
  padding: 1.7rem 1.3rem 1.4rem 3.5rem;
  margin-bottom: 3.2rem;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .contact_formBox .privacyBox_content {
    margin-bottom: 2rem;
  }
}
.contact_formBox .privacyBox_content .inner {
  height: 100%;
  overflow-y: scroll;
  scrollbar-color: #333;
  scrollbar-width: auto;
  padding: 0 2.5rem 1.7rem 0;
}
.contact_formBox .privacyBox_content .inner::-webkit-scrollbar {
  width: 0.6rem;
}
.contact_formBox .privacyBox_content .inner::-webkit-scrollbar-track {
  background-color: #DDDDDD;
  border-radius: 1rem;
}
.contact_formBox .privacyBox_content .inner::-webkit-scrollbar-thumb {
  background-color: #A3A3A3;
  border-radius: 1rem;
}
.contact_formBox .privacyBox_content .inner p, .contact_formBox .privacyBox_content .inner li, .contact_formBox .privacyBox_content .inner a {
  color: #2D2D2D;
}
.contact_formBox .privacyBox_content .inner li {
  margin-top: 2.6rem;
}
.contact_formBox .privacyBox_content .inner li a {
  word-wrap: break-word;
}
.contact_formBox .privacyBox .agree {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 0.8rem;
}
.contact_formBox .privacyBox .agree .wpcf7-list-item {
  margin: 0;
  /* チェックマークのスタイル */
  /* 選択時のカスタムアイコン */
  /* チェックが入った時にチェックマークを表示 */
}
.contact_formBox .privacyBox .agree .wpcf7-list-item > label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.9rem;
}
.contact_formBox .privacyBox .agree .wpcf7-list-item .wpcf7-list-item-label {
  position: relative;
  padding-left: 2.8rem;
  cursor: pointer;
}
.contact_formBox .privacyBox .agree .wpcf7-list-item .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 1.9rem;
  height: 1.9rem;
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16) inset;
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16) inset;
  margin: 0 !important;
  border: none;
  outline: none;
  border-radius: 0.4rem;
}
@media screen and (max-width: 767px) {
  .contact_formBox .privacyBox .agree .wpcf7-list-item .wpcf7-list-item-label::before {
    top: 1.7rem;
  }
}
.contact_formBox .privacyBox .agree .wpcf7-list-item input[type=checkbox] {
  display: none;
}
.contact_formBox .privacyBox .agree .wpcf7-list-item input[type=checkbox] + .wpcf7-list-item-label:after {
  content: "\f00c";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 1.3rem;
  position: absolute;
  top: 0.5rem;
  left: 0.3rem;
  color: #fff; /* チェックマークの色 */
  display: none; /* 最初は非表示 */
}
@media screen and (max-width: 767px) {
  .contact_formBox .privacyBox .agree .wpcf7-list-item input[type=checkbox] + .wpcf7-list-item-label:after {
    top: 1.8rem;
  }
}
.contact_formBox .privacyBox .agree .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label:before {
  background-color: #2196F3; /* 選択時の背景色 */
}
.contact_formBox .privacyBox .agree .wpcf7-list-item input[type=checkbox]:checked + .wpcf7-list-item-label:after {
  display: block;
}
.contact_formBox .privacyBox .agree span {
  display: block;
  line-height: 1.4444444444;
  font-size: 1.8rem;
}
.contact_formBox .submitBox {
  width: 31.8rem;
  height: 5.7rem;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.contact_formBox .submitBox::after {
  content: "";
  background-image: url(../img/icon_submit_arrow.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 0.7rem;
  height: 1.3rem;
  position: absolute;
  top: 50%;
  right: 1.7rem;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
.contact_formBox .submitBox input {
  padding: 1.4rem;
  width: 100%;
  height: 100%;
  color: #fff;
  background-color: #171C61;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1;
  border: solid 0.3rem #fff;
  border-radius: 10rem;
  -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16), 0 0 0.6rem rgba(0, 0, 0, 0.16) inset;
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.16), 0 0 0.6rem rgba(0, 0, 0, 0.16) inset;
}
.contact_formBox .submitBox .wpcf7-spinner {
  display: none;
}
.contact_formBox .wpcf7 form.invalid .wpcf7-response-output, .contact_formBox .wpcf7 form.unaccepted .wpcf7-response-output, .contact_formBox .wpcf7 form.payment-required .wpcf7-response-output {
  background-color: #fff;
  border: none;
}
.contact_formBox .wpcf7 form.sent .wpcf7-response-output {
  border: none;
  background-color: #fff;
}

.company_inner {
  padding-top: clamp(5.5rem, 9.5vw, 9.5rem);
  padding-bottom: clamp(3.4rem, 10vw, 10rem);
}
.company h2 {
  width: 8rem;
  margin: 0 auto 4.4rem;
}
.company_info {
  max-width: 71.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 3.6rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .company_info {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 4.4rem;
  }
}
.company_info .detail {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.company_info .detail dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3rem;
}
@media screen and (max-width: 767px) {
  .company_info .detail dl {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0.8rem;
  }
}
.company_info .detail dl:not(:last-child) {
  border-bottom: solid 0.1rem #D0D0D0;
  padding-bottom: 1.7rem;
  margin-bottom: 0.9rem;
}
.company_info .detail dt, .company_info .detail dd {
  color: #2D2D2D;
}
.company_info .detail dt {
  width: 10rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .company_info .detail dt {
    line-height: 1;
  }
}
.company_info .detail dd {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
@media screen and (max-width: 767px) {
  .company_info .detail dd {
    line-height: 1.625;
  }
}
.company_info .map {
  width: 27rem;
  height: 32rem;
}
.company_info .map iframe {
  width: 100%;
  height: 100%;
}

/* ========================================
    object / utility
======================================== */