@charset "utf-8";

body {
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic,
    "メイリオ", Meiryo, sans-serif;
  -webkit-text-size-adjust: 100%;
  background-color: #fff;
  color: #414042;
}

.clearfix:after {
  content: " ";
  display: block;
  clear: both;
}

*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
}

/* ------------------------------------------
General
------------------------------------------ */
.pc {
  display: none !important;
}
.sp {
  display: block !important;
}
html.fixed {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
}
.wrapper {
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
}
.inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 9.333vw;
}

@media screen and (min-width: 769px) {
  html.fixed {
    padding-right: 17px;
  }
  .sp {
    display: none !important;
  }
  .pc {
    display: block !important;
  }
  .inner {
    padding: 0 20px;
  }
}
/* ------------------------------------------
Header
------------------------------------------ */
header {
  height: 51px;
}
.headerInner {
  max-width: 1920px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 35px;
  position: relative;
}
.head_infor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  position: relative;
  padding: 4px 10px 4px 0;
}
.head_cta {
  display: flex;
  align-items: center;
}
.head_cta .h_tel {
  font-size: 13px;
  font-weight: 700;
  margin-right: 5px;
  color: #0054a6;
}
.head_cta .h_tel a {
  line-height: 1.2;
  position: relative;
  transition: opacity 0.3s ease-in-out;
}
.head_cta .h_tel a::before {
  content: "";
  position: absolute;
  width: 9px;
  height: 11px;
  left: -10px;
  top: 3px;
  transition: opacity 0.3s ease-in-out;
  background: url(../img/ico_phone_sp.png) no-repeat 0 0 / 100% auto;
}
.head_cta .h_btn a {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  color: #fff;
  display: block;
  background: #0054a6;
  padding: 8px 9px 7px;
}
.hamburger {
  position: absolute;
  right: 19px;
  top: 50%;
  width: 16px;
  height: 9px;
  transform: translate(0, -50%);
  cursor: pointer;
  z-index: 99999;
}
.hamburger span {
  background: #000;
  display: block;
  position: absolute;
  height: 1px;
  width: 100%;
  left: 0;
  opacity: 1;
  transform: rotate(0deg);
  transition: all 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.hamburger span:nth-child(1) {
  top: 0;
}
.hamburger span:nth-child(2) {
  top: 4px;
}
.hamburger span:nth-child(3) {
  top: 8px;
}
.hamburger.active span:nth-child(1) {
  top: 7px;
  transform: rotate(135deg);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
  left: -60px;
}
.hamburger.active span:nth-child(3) {
  top: 7px;
  transform: rotate(-135deg);
}
.hamburger.active span {
  background: #fff;
}
.gnav {
  z-index: 9999;
  position: fixed;
  height: 100vh;
  top: 0;
  right: 0;
  background: linear-gradient(
    0deg,
    rgba(62, 156, 215, 1) 31%,
    rgba(0, 84, 166, 1) 100%
  );
  width: 50%;
  overflow: auto;
  flex-direction: column;
  justify-content: flex-start;
  transition: transform 0.8s;
  transform: translateX(100%);
  margin: 0;
  padding: 6.667vw 0 0;
}
.gnav.active {
  transform: translateX(0);
}
.gnav ul {
  padding: 5.333vw 0;
}
.gnav ul li {
  padding: 2.667vw 0;
  text-align: center;
}
.gnav ul li a {
  font-size: 3.5vw; /*2.933vw*/
  font-weight: 700;
  letter-spacing: -0.05em;
  color: #fff;
}
.overlay {
  width: 100%;
  height: 100vh;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  overflow: hidden;
  display: none;
  transition: ease 0.3s all;
}
.overlay.active {
  display: block;
}

@media screen and (min-width: 769px) {
  header {
    height: 138px;
  }
  .headerInner {
    padding: 0 20px;
  }
  .head_infor {
    padding: 16px 125px 16px 0;
  }
  .head_infor h1 {
    width: 280px;
  }
  .head_cta {
    padding: 0;
  }
  .head_cta .h_tel {
    font-size: 43px;
    margin-right: 17px;
  }
  .head_cta .h_tel a {
    pointer-events: none;
  }
  .head_cta .h_tel a::before {
    width: 28px;
    height: 35px;
    left: -33px;
    top: 10px;
    background: url(../img/ico_phone.png) no-repeat 0 0 / 100% auto;
  }
  .head_cta .h_tel a:hover,
  .head_cta .h_tel a:hover::before {
    opacity: 0.3;
  }
  .head_cta .h_btn a {
    font-size: 21px;
    letter-spacing: 0.075em;
    padding: 13px 9px;
  }
  .hamburger {
    width: 54px;
    height: 27px;
    right: 38px;
  }
  .hamburger span {
    height: 3px;
  }
  .hamburger span:nth-child(2) {
    top: 12px;
  }
  .hamburger span:nth-child(3) {
    top: 24px;
  }
  .gnav {
    width: 500px;
    padding: 75px 0 0;
  }
  .gnav ul {
    padding: 40px 0;
  }
  .gnav ul li {
    padding: 25px 0;
  }
  .gnav ul li a {
    font-size: 25px;
  }
}

@media screen and (max-width: 1170px) and (min-width: 769px) {
  .head_infor {
    padding: 16px 10.684vw 16px 0;
  }
  .head_infor h1 {
    width: 23.932vw;
  }
  .head_cta .h_tel {
    font-size: 3.675vw;
    margin-right: 1.453vw;
  }
  .head_cta .h_tel a::before {
    width: 2.393vw;
    height: 2.991vw;
    left: -2.821vw;
    top: 0.855vw;
  }
  .head_cta .h_btn a {
    font-size: 1.795vw;
    padding: 1.111vw 0.769vw;
  }
  .hamburger {
    right: 1.538vw;
    bottom: 4.701vw;
  }
}

@media screen and (max-width: 768px) {
  .head_infor h1 {
    width: 88px;
  }
}

@media screen and (max-width: 370px) {
  .head_infor {
    padding: 4px 5px 4px 0;
  }
  .head_infor h1 {
    width: 60px;
  }
  .head_cta .h_tel {
    font-size: 11px;
  }
  .head_cta .h_btn a {
    font-size: 11px;
    padding: 5px 6px 4px;
  }
  .hamburger {
    bottom: 14px;
  }
}

@media screen\0 {
  .head_cta .h_tel {
    margin-bottom: -14px;
  }
}

/* ------------------------------------------
Container
------------------------------------------ */
.sec_ttl {
  font-size: 3.333vw;
  font-weight: 700;
  color: #d35868;
  text-align: center;
  margin: 0 0 5.067vw;
}
.sec_ttl span {
  position: relative;
}
.sec_ttl span::after {
  content: "";
  position: absolute;
  width: 34.667vw;
  height: 0.267vw;
  left: 50%;
  bottom: -1.067vw;
  transform: translate(-50%, 0);
  background: #d35868;
}
.txt {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: -1px;
}
.sec_sub01 {
  margin-bottom: 4.4vw;
}

@media screen and (min-width: 769px) {
  .sec_ttl {
    font-size: 42px;
    letter-spacing: -0.05em;
    margin: 0 0 43px;
  }
  .sec_ttl span::after {
    width: 440px;
    height: 3px;
    bottom: -6px;
  }
  .txt {
    font-size: 25px;
    line-height: 1.9;
    letter-spacing: 0.025em;
  }
  .sec_sub01 {
    margin-bottom: 80px;
  }
}
/* MV */
.mv {
  overflow: hidden;
}
.mv_slide li,
.mv_slide li img {
  width: 100%;
}
.mv_slide.slick-dotted.slick-slider {
  margin-bottom: 4.533vw;
}
.mv_slide .slick-prev,
.mv_slide .slick-next {
  z-index: 10;
}
.mv_slide .slick-next {
  right: 9.333vw;
}
.mv_slide .slick-prev {
  left: 9.333vw;
}
.mv_slide .slick-prev,
.mv_slide .slick-next,
.mv_slide .slick-prev:before,
.mv_slide .slick-next:before {
  width: 4.267vw;
  height: 4.267vw;
}
.mv_slide .slick-prev:before,
.mv_slide .slick-next:before {
  content: "";
  display: block;
}
.mv_slide .slick-prev:before {
  background: url(../img/ico_prev.png) no-repeat 0 0 / 100% 100%;
}
.mv_slide .slick-next:before {
  background: url(../img/ico_next.png) no-repeat 0 0 / 100% 100%;
}
.mv_slide .slick-dots {
  bottom: -2.933vw;
}
.mv_slide .slick-dots li,
.mv_slide .slick-dots li button,
.mv_slide .slick-dots li button:before {
  width: 1.067vw;
  height: 1.067vw;
}
.mv_slide .slick-dots li {
  margin: 0 1.067vw;
}
.mv_slide .slick-dots li button {
  padding: 0.533vw;
}
.mv_slide .slick-dots li button:before {
  content: "";
  background: #000;
  opacity: 1;
  border-radius: 100%;
}
.slick-dots li.slick-active button:before {
  opacity: 0.75;
  background: #000;
}

@media screen and (min-width: 769px) {
  .mv_slide.slick-dotted.slick-slider {
    margin-bottom: 51px;
  }
  .mv_slide .slick-next {
    right: 150px;
  }
  .mv_slide .slick-prev {
    left: 150px;
  }
  .mv_slide .slick-prev,
  .mv_slide .slick-next,
  .mv_slide .slick-prev:before,
  .mv_slide .slick-next:before {
    width: 69px;
    height: 69px;
  }
  .mv_slide .slick-dots {
    bottom: -34px;
  }
  .mv_slide .slick-dots li {
    margin: 0 21px;
  }
  .mv_slide .slick-dots li,
  .mv_slide .slick-dots li button,
  .mv_slide .slick-dots li button:before {
    width: 19px;
    height: 19px;
  }
}

@media screen and (max-width: 1000px) and (min-width: 769px) {
  .mv_slide .slick-next {
    right: 50px;
  }
  .mv_slide .slick-prev {
    left: 50px;
  }
}

/* infor */
#infor {
  padding: 6.933vw 0 8.933vw;
  background: #fff url(../img/img_bg1_sp.png) no-repeat 0 0 / 100% auto;
}
.stg {
  font-size: 4vw;
  letter-spacing: 0;
  line-height: 1.5;
  font-weight: 700;
  margin: 0 0 3.067vw;
  font-family: "小塚E朁EPr6N B", "DFHSMinchoR Pro-6N", "ヒラギノE朁EPro W6",
    "Hiragino Mincho Pro", "HGS明朝E", "EE E明朝", serif;
}
.infor_diagram {
  max-width: 1340px;
  width: 100%;
  margin: 0 auto;
  padding: 6.933vw 0 0;
}
.id_ttl {
  font-size: 3.6vw;
  font-weight: 700;
  line-height: 0.8;
  letter-spacing: -0.075em;
  color: #fff;
  background: #299fb4;
  border-radius: 0.933vw 0.933vw 0 0;
  padding: 2.533vw 1.333vw 1.867vw;
}
.id_txt {
  font-size: 2vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.075em;
  color: #e6daa6;
  background: #898a8d;
  border-radius: 0 0 0.933vw 0.933vw;
  padding: 1.2vw 1.333vw;
}
.id_txt span {
  font-size: 1.467vw;
  line-height: 1.2;
  color: #fff;
  display: block;
}
.id_ttl,
.id_txt {
  text-align: center;
}

@media screen and (min-width: 769px) {
  #infor {
    padding: 196px 0 86px;
    margin-bottom: 20px;
    background: #fff url(../img/img_bg1.png) no-repeat 0 0 / 100% auto;
  }
  .stg {
    font-size: 34px;
    letter-spacing: 0.025em;
    margin: 0 0 30px;
  }
  .infor_diagram {
    padding: 59px 20px 0;
  }
  .id_ttl {
    font-size: 45px;
    border-radius: 12px 12px 0 0;
    padding: 30px 10px 24px;
  }
  .id_txt {
    font-size: 25px;
    border-radius: 0 0 12px 12px;
    padding: 15px 10px 16px;
  }
  .id_txt span {
    font-size: 18px;
  }
  .id_ttl,
  .id_txt {
    max-width: 956px;
    width: 100%;
    margin: 0 auto;
  }
}

@media screen and (max-width: 768px) {
  .infor_diagram figure {
    width: 86.667vw;
    margin: 0 auto;
  }
  .id_ttl,
  .id_txt {
    margin: 0 11.733vw;
  }
}

/* effect */
#effect {
  padding: 8.267vw 0 17.333vw;
  background: #e1f4fd url(../img/img_bg3.png) no-repeat 0 0 / 100% auto;
}
#effect .sec_ttl {
  margin: 0 0 5.067vw;
}
#effect .sec_sub01 {
  margin: 0 0 4.133vw;
}
#effect .sec_sub02 {
  margin: 0 0 4.267vw;
}
#effect .txt {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0;
  text-align: center;
  margin: 0 0 4.533vw;
}
.ef_block {
  position: relative;
}
.ef_block:not(:last-child) {
  margin: 0 0 14.133vw;
}
.ef_block .eb_content {
  width: 56vw;
  text-align: center;
  background: rgba(255, 255, 255, 0.8);
  bottom: -7.6vw;
  position: absolute;
}
.ef_block:nth-child(2n-1) .eb_content {
  left: -5.333vw;
}
.ef_block:nth-child(2n) .eb_content {
  right: -5.333vw;
}
.ef_block .eb_content p {
  font-size: 2.933vw;
  font-weight: 500;
  letter-spacing: -1px;
  line-height: 1.3;
  padding: 3.2vw 0.667vw 2.4vw 15.067vw;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.ef_block .eb_content p::before {
  content: "";
  position: absolute;
  width: 9.067vw;
  height: 11.467vw;
}
.ef_block .eb_content .point1::before {
  background: url(../img/img_point1.png) no-repeat 0 0 / 100% auto;
}
.ef_block .eb_content .point2::before {
  background: url(../img/img_point2.png) no-repeat 0 0 / 100% auto;
}
.ef_block .eb_content .point3::before {
  background: url(../img/img_point3.png) no-repeat 0 0 / 100% auto;
}
.ef_block .eb_content .point4::before {
  background: url(../img/img_point4.png) no-repeat 0 0 / 100% auto;
}

@media screen and (min-width: 769px) {
  #effect {
    padding: 108px 0 92px;
  }
  #effect .sec_ttl {
    margin: 0 0 55px;
  }
  #effect .sec_sub01 {
    margin: 0 0 53px;
  }
  #effect .sec_sub02 {
    margin: 0 0 28px;
  }
  #effect .txt {
    font-size: 25px;
    line-height: 1.9;
    margin: 0 0 52px;
  }
  .ef_block:not(:last-child) {
    margin: 0 0 36px;
  }
  .ef_block figure {
    max-width: 765px;
    width: 100%;
  }
  .ef_block:nth-child(2n-1) figure {
    margin: 0 0 0 auto;
  }
  .ef_block:nth-child(2n) figure {
    margin: 0 auto 0 0;
  }
  .ef_block .eb_content {
    max-width: 423px;
    width: 100%;
    bottom: 66px;
  }
  .ef_block:nth-child(2n-1) .eb_content {
    left: 0;
  }
  .ef_block:nth-child(2n) .eb_content {
    right: 0;
  }
  .ef_block .eb_content p {
    font-size: 24px;
    line-height: 1.5;
    padding: 136px 10px 17px;
  }
  .ef_block .eb_content p::before {
    width: 79px;
    height: 99px;
    left: 50%;
    top: 22px;
    transform: translate(-50%, 0);
  }
}

@media screen and (max-width: 768px) {
  .ef_block .eb_content p {
    min-height: 16.8vw;
  }
  .ef_group {
    padding: 0 5.333vw;
  }
  .ef_block .eb_content p::before {
    left: 4.133vw;
    top: 50%;
    transform: translate(0, -50%);
  }
}

/* use */
#use {
  background: #e1f4fd;
  padding: 0 0 4vw;
}
#use .sec_ttl {
  margin: 0 0 6.133vw;
}
#use .txt {
  font-size: 2.667vw;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
}
#use .sec_sub01 {
  margin-bottom: 5.333vw;
}
.use_list {
  margin-bottom: 2.8vw;
}
.use_list li {
  position: relative;
}
.use_list li p {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
  color: #fff;
  width: 36.267vw;
  text-align: center;
  padding: 3.467vw 1.333vw;
  background: rgba(39, 170, 225, 0.75);
  position: absolute;
  top: 5.867vw;
}
.use_list li:nth-child(2n-1) p {
  left: 0;
}
.use_list li:nth-child(2n) p {
  right: 0;
}

@media screen and (min-width: 769px) {
  #use {
    padding: 0 0 32px;
  }
  #use .sec_ttl {
    margin: 0 0 53px;
  }
  #use .sec_sub01 {
    margin-bottom: 70px;
  }
  #use .txt {
    font-size: 25px;
    line-height: 1.9;
  }
  .use_list {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 44px;
  }
  .use_list li {
    width: calc((100% - 30px) / 2);
  }
  .use_list li:nth-child(2n-1) {
    margin-right: 30px;
    padding-left: 41px;
  }
  .use_list li:nth-child(2n) {
    padding-right: 41px;
  }
  .use_list li:nth-child(2) {
    margin-top: 127px;
  }
  .use_list li:nth-child(3) {
    margin-top: -93px;
  }
  .use_list li:nth-child(4) {
    margin-top: 35px;
  }
  .use_list li p {
    font-size: 24px;
    letter-spacing: 0.025em;
    max-width: 315px;
    padding: 22px 10px;
    top: 33px;
  }
}

@media screen and (max-width: 768px) {
  .use_list {
    padding: 0 10.267vw;
  }
  .use_list li {
    margin: 0 0 3.467vw;
  }
  .use_list li:last-child {
    margin: 0;
  }
}

/* service */
#service {
  padding: 10.933vw 0 5.6vw;
  background: #f6fbfe url(../img/img_bg2.png) no-repeat 0 0 / 100% auto;
}
#service .sec_sub01 {
  margin: 0 0 5.467vw;
}
#service .sec_ttl {
  margin: 0 0 8.4vw;
}
#service .txt {
  text-align: center;
  margin: 0 0 6.533vw;
}
.ser_list1,
.ser_list2 {
  display: flex;
  flex-wrap: wrap;
}
.ser_list1 {
  margin: 0 0 7.467vw;
}
.ser_list1 li {
  width: calc(100% / 3);
}
@media screen\0 {
  .ser_list1 li {
    width: 33.333%;
  }
}
.ser_list2 li {
  width: calc(100% / 2);
}
.list_ttl {
  margin: 0 0 3.733vw;
}

@media screen and (min-width: 769px) {
  #service {
    padding: 132px 0 42px;
  }
  #service .sec_sub01 {
    margin: 0 0 41px;
  }
  #service .sec_ttl {
    margin: 0 0 59px;
  }
  #service .txt {
    margin: 0 0 66px;
  }
  .ser_list1 {
    margin: 0 0 72px;
  }
  .ser_list2 li {
    width: calc(100% / 4);
  }
  .list_ttl {
    margin: 0 0 57px;
  }
}

@media screen and (max-width: 768px) {
  .ser_list2 li img {
    width: 100%;
  }
}

/* demonstration */
#demonstration {
  background: #f6fbfe;
  padding: 4vw 0 11.6vw;
}
#demonstration .sec_ttl {
  margin: 0 0 5.6vw;
}
.dg_block .tag {
  font-size: 3.2vw;
  font-weight: 700;
  letter-spacing: 0.075em;
  color: #fff;
  text-align: center;
  background: #1c75bc;
  padding: 0.933vw 1.333vw;
  margin: 0 0 2.133vw;
  position: relative;
}
.dg_block .note_sm {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -1px;
  color: #231f20;
}
.dg_block .note {
  font-size: 2.8vw;
  font-weight: 500;
  line-height: 0.9;
  color: #231f20;
  letter-spacing: -1px;
  text-indent: -1.867vw;
}
.dg_block .note span {
  font-weight: 700;
  color: #0054a6;
}
.dg_block .col_r .img {
  display: flex;
}
.dg_block .col_r .img figure {
  position: relative;
}
.dg_block .col_r .img .arr {
  margin-right: 6vw;
}
.dg_block .col_r .img .arr::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -4.133vw;
  width: 2.267vw;
  height: 4.4vw;
  transform: translate(0, -50%);
  background: url(../img/ico_arr.png) no-repeat 0 0 / 100% auto;
}
.dg_block .col_r .img span {
  font-size: 2.933vw;
  font-weight: 700;
  letter-spacing: -1px;
  color: #231f20;
  display: inline-block;
  margin-top: 1.333vw;
}

@media screen and (min-width: 769px) {
  #demonstration {
    padding: 40px 0 96px;
  }
  #demonstration .sec_ttl {
    margin: 0 0 48px;
  }
  .dg_block {
    display: flex;
    justify-content: space-between;
    padding: 28px 0;
  }
  .dg_block:not(:last-child) {
    border-bottom: 1px dashed #808285;
  }
  .dg_block .col_l {
    width: 412px;
    padding-right: 15px;
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
  .dg_block .col_r {
    width: calc(100% - 412px);
  }
  .dg_block .tag {
    font-size: 27px;
    line-height: 1.4;
    letter-spacing: 0.025em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: left;
    width: 314px;
    height: 126px;
    border-radius: 4px 0 0 4px;
    position: relative;
    margin: 0 49px 18px 0;
    padding: 10px;
  }
  .dg_block .tag::after {
    content: "";
    position: absolute;
    width: 50px;
    top: 0;
    bottom: 0;
    right: -49px;
    background: url(../img/ico_arr_tag.png) no-repeat 0 0 / 100% auto;
  }
  .dg_block .tag .scale_txt {
    letter-spacing: -5px;
    margin: 0 -5px;
  }
  .dg_block .note_sm {
    font-size: 19px;
    line-height: 1.2;
  }
  .dg_block .note {
    font-size: 22px;
    line-height: 1.3;
    text-indent: -14px;
  }
  .dg_block .note span {
    font-size: 26px;
    display: block;
    padding-left: 14px;
    margin-top: 2px;
  }
  .dg_block .col_r .img .arr {
    margin-right: 55px;
  }
  .dg_block .col_r .img .arr::after {
    width: 21px;
    height: 41px;
    right: -39px;
  }
  .dg_block .col_r .img span {
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: 0;
    margin-top: 13px;
  }
}

@media screen and (max-width: 1200px) and (min-width: 769px) {
  .dg_block .col_l {
    width: 40%;
  }
  .dg_block .col_r {
    width: 60%;
  }
  .dg_block .tag {
    font-size: 2.25vw;
    width: 26.167vw;
  }
  .dg_block .tag .scale_txt {
    letter-spacing: -0.417vw;
    margin: 0 -0.417vw;
  }
  .dg_block .note_sm {
    font-size: 1.583vw;
  }
  .dg_block .note {
    font-size: 1.833vw;
    text-indent: -1.167vw;
  }
  .dg_block .note span {
    font-size: 2.167vw;
    padding-left: 1.167vw;
  }
  .dg_block .col_r .img span {
    font-size: 2.167vw;
  }
}

@media screen and (max-width: 768px) {
  .dg_block {
    margin: 0 0 5.467vw;
  }
  .dg_block:last-child {
    margin: 0;
  }
  .dg_block .tag {
    border-radius: 6.667vw;
  }
  .dg_block .note_sm {
    margin: 0.933vw 0 0;
  }
  .dg_block .note {
    margin: 1.733vw 0 0;
  }
}

/* evidence */
#evidence {
  padding: 9.733vw 0 6.533vw;
  background: #eff9fe url(../img/img_bg4.png) no-repeat 0 0 / 100% auto;
}
#evidence .sec_ttl {
  margin: 0 0 6.533vw;
}
#evidence .sec_sub01 {
  margin: 0 0 8.267vw;
}
.eg_block {
  display: flex;
}
.eg_content {
  width: 47.467vw;
  padding-right: 2vw;
}
.eg_img {
  width: calc(100% - 47.467vw);
}
.eg_ttl,
.eg_txt {
  font-size: 2.933vw;
  line-height: 1.7;
  color: #231f20;
}
.eg_ttl {
  font-weight: 700;
  border-bottom: 2px solid #231f20;
  padding: 0.4vw 0 0.667vw;
  margin: 0 0 0.4vw;
}
.eg_txt {
  font-weight: 500;
  letter-spacing: -1px;
}
.eg_txt1 {
  margin: 0 0 3.6vw;
}

@media screen and (min-width: 769px) {
  #evidence {
    padding: 121px 0 49px;
  }
  #evidence .sec_ttl {
    margin: 0 0 53px;
  }
  #evidence .sec_sub01 {
    margin: 0 0 90px;
  }
  .evid_group {
    display: flex;
    flex-wrap: wrap;
  }
  .eg_block {
    width: calc((100% - 50px) / 2);
  }
  .eg_block:nth-child(2n) {
    margin-left: 50px;
  }
  .eg_block:nth-child(1),
  .eg_block:nth-child(1) {
    margin-bottom: 90px;
  }
  .eg_content {
    width: 324px;
    padding-right: 14px;
  }
  .eg_img {
    width: calc(100% - 324px);
  }
  .eg_ttl {
    font-size: 20px;
    line-height: 1.75;
    padding: 2px 0 4px;
    margin: 0 0 5px;
  }
  .eg_txt {
    font-size: 18px;
    line-height: 1.72;
  }
  .eg_txt1 {
    margin: 0 0 21px;
  }
}
@media screen and (max-width: 1000px) and (min-width: 769px) {
  .eg_block {
    width: 554px;
    margin: 0 auto 50px !important;
  }
  .eg_block:nth-child(2n) {
    flex-direction: row-reverse;
  }
  .eg_block:nth-child(2n) .eg_content {
    padding: 0 0 0 14px;
  }
}

@media screen and (max-width: 768px) {
  .eg_block:nth-child(2n) {
    flex-direction: row-reverse;
  }
  .eg_block:not(:last-child) {
    margin: 0 0 9.2vw;
  }
  .eg_block:nth-child(2n) .eg_content {
    padding: 0 0 0 2vw;
  }
  .eg_txt .sct {
    letter-spacing: -0.4vw;
  }
}

/* other */
#other {
  padding: 3.067vw 0 4.267vw;
  background: #eff9fe;
}
#other .sec_ttl {
  margin: 0 0 5.6vw;
}
.other_tbl {
  background: #fff;
  color: #231f20;
}
.other_tbl tr {
  border-bottom: 1px solid #58595b;
}
.other_tbl tr:first-child {
  border-top: 2px solid #58595b;
  border-bottom: 2px solid #58595b;
}
.other_tbl th:first-child {
  background: #d4e9f4;
}
.other_tbl th,
.other_tbl td {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -1px;
}
.other_tbl th {
  padding: 1.2vw 1.467vw 1.067vw 2vw;
}
.other_tbl td {
  padding: 1.2vw 0.667vw 1.467vw 1.6vw;
}
.other_tbl tr:first-child th {
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
  padding: 1.467vw 0 1.467vw 2vw;
}
.ttl1 {
  width: 19%;
}
.ttl2 {
  width: 22%;
}
.ttl3 {
  width: 11%;
}
.ttl4 {
  width: 48%;
}

@media screen and (min-width: 769px) {
  #other {
    padding: 40px 0 36px;
  }
  #other .sec_ttl {
    margin: 0 0 63px;
  }
  .other_tbl th,
  .other_tbl td {
    font-size: 18px;
  }
  .other_tbl th {
    padding: 12px 0 10px 23px;
  }
  .other_tbl td {
    padding: 12px 5px 10px 28px;
  }
  .other_tbl tr:first-child th {
    font-size: 20px;
    padding: 12px 0 19px 23px;
  }
  .ttl1 {
    width: 19%;
  }
  .ttl2 {
    width: 20%;
  }
  .ttl3 {
    width: 15%;
  }
  .ttl4 {
    width: 46%;
  }
}

/* construction */
#construction {
  padding: 10.4vw 0 2.667vw;
  background: #f7fcfe url(../img/img_bg5.png) no-repeat 0 0 / 100% auto;
}
#construction .sec_ttl {
  margin: 0 0 6.667vw;
}
#construction .sec_sub01 {
  margin-bottom: 6.4vw;
}
#construction .txt {
  text-align: center;
  margin: 0 0 6.933vw;
}
.construc_group {
  margin: 0 0 1.867vw;
}
.construc_group .step {
  display: flex;
  margin: 0 0 3.867vw;
}
.construc_group .step .step_img {
  width: 36vw;
}
.construc_group .step .step_content {
  width: calc(100% - 36vw);
  padding-right: 1.333vw;
}
.construc_group .step .step_content ul li {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.03em;
  padding-left: 2.267vw;
  position: relative;
}
.construc_group .step .step_content ul li::before {
  content: "■";
  position: absolute;
  font-size: 2.267vw;
  left: 0;
  top: 2px;
}
.step_list {
  display: flex;
  flex-wrap: wrap;
}
.step_list li {
  width: calc((100% - 6.4vw) / 2);
  margin: 0 6.4vw 3.733vw 0;
}
.step_list li:nth-child(2n) {
  margin: 0;
}
.step_list li figure {
  position: relative;
}
.step_list li figure::after {
  content: "";
  position: absolute;
  width: 2.267vw;
  height: 4.4vw;
  top: 50%;
  right: -4.4vw;
  transform: translate(0, -50%);
  background: url(../img/ico_arr.png) no-repeat 0 0 / 100% auto;
}
.step_list li:nth-child(2n) figure::after {
  display: none;
}
.step_ttl i {
  display: inline-block;
  vertical-align: bottom;
  margin-right: 8px;
  width: 2.933vw;
  height: 4.133vw;
}
.step_ttl {
  font-size: 3.333vw;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: 0.025em;
  padding: 0.4vw 0 2.133vw;
  margin: 0 0 2.133vw;
  border-bottom: 1px solid #58595b;
}
.step_list li .step_ttl {
  font-size: 3.333vw;
  letter-spacing: 0;
  border: none;
  padding: 0;
  margin: 0 0 11px;
}
.step_ttl .num1 {
  height: 3.867vw;
  background: url(../img/ico_num1.png) no-repeat 0 0 / 100% auto;
}
.step_ttl .num2 {
  background: url(../img/ico_num2.png) no-repeat 0 0 / 100% auto;
}
.step_ttl .num3 {
  background: url(../img/ico_num3.png) no-repeat 0 0 / 100% auto;
}
.step_ttl .num4 {
  background: url(../img/ico_num4.png) no-repeat 0 0 / 100% auto;
}
.step_ttl .num5 {
  background: url(../img/ico_num5.png) no-repeat 0 0 / 100% auto;
}
.cc_ttl {
  margin: 0 0 1.867vw;
}
.cc_ttl p {
  padding: 4.933vw 0 1.733vw;
  border-bottom: 1px solid #58595b;
}
.cc_content p {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 769px) {
  #construction {
    padding: 145px 0 20px;
  }
  #construction .sec_ttl {
    margin: 0 0 76px;
  }
  #construction .sec_sub01 {
    margin-bottom: 52px;
  }
  #construction .txt {
    margin: 0 0 75px;
  }
  .construc_group {
    margin: 0 0 57px;
  }
  .construc_group .step {
    margin: 0 0 53px;
  }
  .construc_group .step .step_img {
    width: 420px;
  }
  .construc_group .step .step_content {
    width: calc(100% - 420px);
    padding-right: 20px;
  }
  .construc_group .step .step_content ul li {
    font-size: 25px;
    line-height: 1.8;
    padding-left: 20px;
  }
  .construc_group .step .step_content ul li::before {
    font-size: 19px;
    top: 6px;
  }
  .construc_group .step_list li {
    width: calc((100% - 132px) / 4);
  }
  .construc_group .step_list li:not(:last-child) {
    margin-right: 44px;
  }
  .step_ttl {
    font-size: 30px;
    padding: 19px 0 20px;
    margin: 0 0 32px;
  }
  .step_list li .step_ttl {
    font-size: 25px;
    margin: 0 0 11px;
  }
  .step_ttl i {
    width: 24px;
    height: 32px;
    margin-right: 8px;
  }
  .step_ttl .num1 {
    height: 34px;
  }
  .step_list li figure::after {
    width: 21px;
    height: 41px;
    right: -34px;
  }
  .cc_ttl {
    margin: 0 0 12px;
  }
  .cc_ttl p {
    padding: 0 0 13px;
  }
  .cc_content {
    display: flex;
  }
  .cc_content figure {
    width: 217px;
  }
  .cc_content p {
    font-size: 26px;
    line-height: 1.8;
    letter-spacing: 0.025em;
    width: calc(100% - 217px);
    padding-right: 30px;
  }
}

@media screen and (max-width: 1000px) and (min-width: 769px) {
  .construc_group .step_list li {
    width: calc((100% - 44px) / 2);
    margin: 0 44px 44px 0;
  }
  .construc_group .step_list li:nth-child(2),
  .construc_group .step_list li:nth-child(4) {
    margin: 0 0 44px;
  }
  .construc_group .step_list li:nth-child(2) figure::after,
  .construc_group .step_list li:nth-child(4) figure::after {
    display: none;
  }
  .construc_group .step_list li figure img {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .cc_ttl {
    display: flex;
  }
  .cc_ttl figure {
    width: 16vw;
  }
  .cc_ttl p {
    width: calc(100% - 18.667vw);
    margin-right: 2.667vw;
  }
}

/* voice */
#voice {
  padding: 5.867vw 0 21.733vw;
  background: #f7fcfe url(../img/img_bg6.png) no-repeat bottom center / 100%
    auto;
}
#voice .sec_ttl {
  margin: 0 0 6.667vw;
}
.voice_block {
  display: flex;
}
.vb_img {
  width: 32vw;
}
.vb_content {
  width: calc(100% - 32vw);
  padding-right: 2.667vw;
}
.vb_content .ttl {
  font-size: 3.333vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.042em;
  padding: 0.133vw 0 2.4vw;
  margin: 0 0 2.533vw;
  border-bottom: 1px solid #58595b;
}
.vb_content .txt {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.vb_img p {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.1;
  margin: 1.733vw 0 0;
}

@media screen and (min-width: 769px) {
  #voice {
    padding: 44px 0 224px;
  }
  #voice .sec_ttl {
    margin: 0 0 68px;
  }
  .vb_img {
    width: 392px;
  }
  .vb_content {
    width: calc(100% - 392px);
    padding-right: 40px;
  }
  .vb_content .ttl {
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: 0.025em;
    padding: 9px 0 16px;
    margin: 0 0 21px;
  }
  .vb_content .txt {
    font-size: 25px;
    line-height: 1.8;
    letter-spacing: -2px;
  }
  .vb_img p {
    font-size: 20px;
    letter-spacing: -1px;
    margin: 12px 0 0;
  }
}

/* contact */
#contact {
  padding: 1.867vw 0 75px;
  background: url(../img/img_bg7.png) repeat-y 0 0 / 100% auto;
}
#contact .sec_ttl {
  color: #fff;
  margin: 0 0 3.733vw;
}
#contact .sec_ttl span::after {
  background: #fff;
}
.contact_box {
  max-width: 1660px;
  width: 100%;
  padding: 0 9.333vw;
  margin: 0 auto;
}
.cb_inner {
  background: #fff;
}
.cb_banner {
  margin: 0 0 46px;
  position: relative;
}
.cb_banner img {
  width: 100%;
}
.cb_banner a {
  cursor: pointer;
  position: absolute;
  width: 43%;
  height: 15.789%;
  bottom: 9.09%;
  left: 28.688%;
  cursor: pointer;
}
.cb_banner a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
.contact_form th {
  font-size: 2.933vw;
  font-weight: 700;
  line-height: 1.6;
  color: #0054a6;
  letter-spacing: 0.025em;
}
.contact_form th .require {
  color: #be1e2d;
}
.contact_form input[type="text"],
.contact_form input[type="tel"],
.contact_form input[type="email"],
.contact_form textarea {
  background: #e6e7e8;
  border: 1px solid #231f20;
  padding: 5px;
  width: 100%;
}
.contact_form input[type="text"],
.contact_form input[type="tel"],
.contact_form input[type="email"] {
  height: 4.267vw;
}
.contact_form textarea {
  resize: none;
  height: 13.6vw;
}
.contact_form .check {
  text-align: center;
  margin: 3.2vw 0 5.467vw;
}
.contact_form .check label {
  font-size: 2.933vw;
  font-weight: 500;
}
.contact_form .contact_frame {
  font-size: 2.933vw;
  font-weight: 700;
  line-height: 1.6;
  color: #0054a6;
  text-align: center;
  margin: 0 0 5.467vw;
}
.contact_form .c_ttl {
  font-size: 2.933vw;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  margin: 0 0 2.4vw;
}
.contact_form .c_list {
  margin: 0 0 4.133vw;
}
.contact_form .c_list li {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.5;
  padding-left: 2.267vw;
  margin: 0 0 0.133vw;
  position: relative;
}
.contact_form .c_list li::after {
  content: "・";
  position: absolute;
  font-size: 2.933vw;
  left: 0;
  top: 0.267vw;
}
.contact_form .btn {
  font-size: 2.933vw;
  font-weight: 700;
  color: #fff;
  width: 16vw;
  height: 4.667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 4.133vw;
  background: #0054a6;
  border-radius: 0.667vw;
  cursor: pointer;
  transition: opacity 0.3s ease-in-out;
}
.agency_box {
  border-top: 1px solid #58595b;
  padding: 4.933vw 10.667vw 9.733vw;
}
.agency_ttl {
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.075em;
  color: #231f20;
  text-align: center;
  margin: 0 0 0.533vw;
}
.agency_img {
  text-align: center;
  margin: 0 0 3.067vw;
}
.agency_img img {
  margin: 0 auto;
}
.agency_tbl tr {
  border: 1px solid #58595b;
}
.agency_tbl th {
  font-size: 2.933vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.025em;
  width: 31%;
  color: #fff;
  background: #1c75bc;
  padding: 1.733vw 2.667vw 1.067vw;
  border-bottom: 1px solid #fff;
}
.agency_tbl tr:last-child th {
  border: 1px solid #58595b;
}
.agency_tbl td {
  width: 69%;
  font-size: 2.933vw;
  font-weight: 500;
  line-height: 1.2;
  color: #231f20;
  letter-spacing: 0.075em;
  padding: 1.733vw 2.8vw 1.067vw;
}

@media screen and (min-width: 769px) {
  #contact {
    padding: 43px 0 75px;
  }
  #contact .sec_ttl {
    margin: 0 0 76px;
  }
  .contact_box {
    padding: 0 20px;
  }
  .cb_inner {
    padding: 0 0 60px;
  }
  .contact_form,
  .agency_box {
    max-width: 1140px;
    width: 100%;
    margin: 0 auto;
  }
  .agency_box {
    padding: 27px 0 0;
  }
  .cb_banner {
    margin: 0 0 46px;
  }
  .cb_banner a {
    width: 41.111%;
    height: 19.523%;
    bottom: 9.047%;
    left: 29.382%;
  }
  .cb_banner a:hover::after {
    opacity: 0.3;
  }
  .contact_form tr,
  .agency_tbl tr {
    border: 1px solid #58595b;
  }
  .contact_form th {
    font-size: 21px;
    width: 35%;
    background: #1c75bc;
    color: #fff;
    border-bottom: 1px solid #fff;
    padding: 18px 22px;
  }
  .contact_form tr:last-child th {
    border: 1px solid #58595b;
  }
  .contact_form td {
    width: 65%;
    padding: 18px 20px 13px;
  }
  .contact_form tr:last-child td {
    padding: 18px 20px 24px;
  }
  .contact_form input[type="text"],
  .contact_form input[type="tel"],
  .contact_form input[type="email"] {
    height: 43px;
  }
  .contact_form textarea {
    height: 229px;
  }
  .contact_form .check {
    margin: 49px 0 27px;
  }
  .contact_form .check label {
    font-size: 18px;
    font-weight: 700;
  }
  .contact_form .contact_frame {
    font-size: 20px;
    background: #1c75bc;
    color: #fff;
    padding: 14px 10px;
    margin: 0 0 41px;
  }
  .contact_form .c_ttl {
    font-size: 26px;
    margin: 0 0 35px;
  }
  .contact_form .c_list {
    max-width: 600px;
    width: 100%;
    margin: 0 auto 73px;
  }
  .contact_form .c_list li {
    font-size: 19px;
    line-height: 1.2;
    padding-left: 15px;
    margin: 0 0 10px;
  }
  .contact_form .c_list li::after {
    font-size: 19px;
    top: 0;
  }
  .contact_form .btn {
    font-size: 26px;
    width: 243px;
    height: 56px;
    border-radius: 9px;
    margin: 0 auto 54px;
  }
  .contact_form .btn:hover {
    opacity: 0.7;
  }
  .agency_ttl {
    font-size: 28px;
    margin: 0 0 24px;
  }
  .agency_img {
    margin: 0 0 44px;
  }
  .agency_tbl th {
    font-size: 21px;
    width: 35%;
    padding: 18px 41px 12px;
  }
  .agency_tbl td {
    font-size: 21px;
    font-weight: 700;
    width: 65%;
    padding: 18px 37px 12px;
  }
}

@media screen and (max-width: 1180px) and (min-width: 769px) {
  .cb_inner {
    padding: 0 10px 60px;
  }
}

@media screen and (max-width: 768px) {
  .contact_form {
    padding: 0 10.667vw;
  }
  .contact_form th,
  .contact_form td {
    display: block;
    width: 100%;
  }
  .contact_form th {
    margin: 0 0 0.267vw;
  }
  .contact_form td {
    margin: 0 0 1.733vw;
  }
  .check input {
    width: 2.267vw;
    height: 2.267vw;
    margin-right: 0.4vw;
  }
}

/* The Modal (background) */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.4);
}

/* Modal Content */
.modal-content {
  margin: auto;
  height: 100vh;
  color: #fff;
  position: relative;
}

.modal-content p {
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  letter-spacing: 0.2em;
  font-size: 30px;
  background-color: #989896;
  width: 100%;
  padding: 25px 0;
  border-top: 0.75px dotted #000;
  border-bottom: 0.75px dotted #000;
}
