@charset "UTF-8";
/* ==================================================

 変数

================================================== */
@media screen and (max-width: 1023px) {
  :root {
    --fs_ss: 1.2rem;
    --fs_sm: 1.2rem;
    --fs_md: 1.4rem;
    --fs_lg: 1.6rem;
    --fs_xl: 1.8rem;
    --fs_xxl: 2.0rem;
  }
}
@media screen and (min-width: 1024px) {
  :root {
    --fs_ss: 1.2rem;
    --fs_sm: 1.4rem;
    --fs_md: 1.6rem;
    --fs_lg: 1.8rem;
    --fs_xl: 2.0rem;
    --fs_xxl: 2.2rem;
  }
}
/* ==================================================

 サービスTOP

================================================== */
@media screen and (min-width: 1024px) {
  .service_wrap .article_top_wrap {
    background-image: url("../img/service/top_service_l.png");
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .article_top_wrap {
    background-image: url("../img/service/top_service_m.png");
  }
}
.service_wrap .conts_basis {
  padding-top: 0;
  padding-left: 40px;
  padding-right: 40px;
  padding-bottom: 80px;
}
@media screen and (max-width: 1199px) {
  .service_wrap .conts_basis {
    padding: 0 20px 80px;
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis {
    padding: 0 20px 60px;
  }
}
@media screen and (max-width: 767px) {
  .service_wrap .conts_basis {
    padding: 0 10px 40px;
  }
}
.service_wrap .conts_basis .service_list {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-content: stretch;
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000;
  animation-fill-mode: forwards;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .service_wrap .conts_basis .service_list {
    margin-top: 40px;
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis .service_list {
    margin-top: 30px;
  }
}
@media screen and (max-width: 767px) {
  .service_wrap .conts_basis .service_list {
    margin-top: 20px;
  }
}
.service_wrap .conts_basis .service_list .service_box {
  display: flex;
  position: relative;
  width: 32%;
  background-color: #fff;
  box-shadow: 0px 1px 3px 0px #ccdee5;
  transition: all 0.3s;
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000;
  animation-fill-mode: forwards;
  overflow: hidden;
}
.service_wrap .conts_basis .service_list .service_box:nth-child(n+4) {
  margin-top: 2%;
}
@media screen and (min-width: 1024px) {
  .service_wrap .conts_basis .service_list .service_box:not(:nth-child(3n)) {
    margin-right: 2%;
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis .service_list .service_box {
    width: 49%;
    border: none;
  }
  .service_wrap .conts_basis .service_list .service_box:nth-child(odd) {
    margin-right: 2%;
  }
  .service_wrap .conts_basis .service_list .service_box:nth-child(n+3) {
    margin-top: 2%;
  }
  .service_wrap .conts_basis .service_list .service_box figure {
    border: 1px #c7000b solid;
  }
}
@media screen and (max-width: 767px) {
  .service_wrap .conts_basis .service_list .service_box {
    width: 100%;
  }
  .service_wrap .conts_basis .service_list .service_box:not(:first-child) {
    margin-top: 4%;
  }
}
.service_wrap .conts_basis .service_list .service_box a {
  position: relative;
  padding: 20px;
  width: 100%;
}
.service_wrap .conts_basis .service_list .service_box a figure {
  transition: all 0.3s;
}
.service_wrap .conts_basis .service_list .service_box a .service_name {
  font-size: 2rem;
  position: relative;
  margin: 20px 0 10px;
  width: auto;
  transition: color 0.3s ease-out;
}
@media screen and (max-width: 767px) {
  .service_wrap .conts_basis .service_list .service_box a .service_name {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 479px) {
  .service_wrap .conts_basis .service_list .service_box a .service_name {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis .service_list .service_box a .service_name {
    color: #c7000b;
  }
}
.service_wrap .conts_basis .service_list .service_box a .service_name::after {
  position: absolute;
  bottom: -2px;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background-color: #c7000b;
  transform: scale(1, 1);
  transform-origin: left top;
  transition: transform 0.3s;
}
@media screen and (min-width: 1024px) {
  .service_wrap .conts_basis .service_list .service_box a .service_name::after {
    transform: scale(0, 1);
  }
}
.service_wrap .conts_basis .service_list .service_box::before, .service_wrap .conts_basis .service_list .service_box::after,
.service_wrap .conts_basis .service_list .service_box a::before, .service_wrap .conts_basis .service_list .service_box a::after {
  position: absolute;
  width: 0;
  height: 0;
  content: "";
  border: 2px transparent solid;
  visibility: hidden;
  box-sizing: content-box;
  transition: all 0.3s;
  z-index: 2;
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis .service_list .service_box::before, .service_wrap .conts_basis .service_list .service_box::after,
  .service_wrap .conts_basis .service_list .service_box a::before, .service_wrap .conts_basis .service_list .service_box a::after {
    visibility: visible;
  }
  .service_wrap .conts_basis .service_list .service_box::before, .service_wrap .conts_basis .service_list .service_box::after {
    height: 100%;
  }
  .service_wrap .conts_basis .service_list .service_box a::before, .service_wrap .conts_basis .service_list .service_box a::after {
    width: 100%;
  }
}
.service_wrap .conts_basis .service_list .service_box::before {
  top: 0;
  left: 0;
  border-left-color: #c7000b;
}
.service_wrap .conts_basis .service_list .service_box::after {
  bottom: 0;
  right: 0;
  border-right-color: #c7000b;
}
.service_wrap .conts_basis .service_list .service_box a::before {
  bottom: 0;
  left: 0;
  border-bottom-color: #c7000b;
}
.service_wrap .conts_basis .service_list .service_box a::after {
  top: 0;
  right: 0;
  border-top-color: #c7000b;
}
@media screen and (min-width: 1024px) {
  .service_wrap .conts_basis .service_list .service_box:hover::before, .service_wrap .conts_basis .service_list .service_box:hover::after {
    height: 100%;
    visibility: visible;
  }
  .service_wrap .conts_basis .service_list .service_box:hover a::before, .service_wrap .conts_basis .service_list .service_box:hover a::after {
    width: 100%;
    visibility: visible;
  }
  .service_wrap .conts_basis .service_list .service_box:hover figure {
    border: 1px #c7000b solid;
  }
  .service_wrap .conts_basis .service_list .service_box:hover .service_name {
    color: #c7000b;
  }
  .service_wrap .conts_basis .service_list .service_box:hover .service_name::after {
    transform: scale(1, 1);
  }
}
@media screen and (max-width: 1023px) {
  .service_wrap .conts_basis .service_list #ad_leap {
    margin-left: 0;
  }
}
.service_wrap .conts_basis .service_list #ad_leap a {
  pointer-events: none;
}