@charset "UTF-8";
.pc-none {
  display: block;
}
@media only screen and (min-width: 1441px) {
  .pc-none {
    display: none;
  }
}

.tab-none {
  display: block;
}
@media only screen and (min-width: 769px) {
  .tab-none {
    display: none;
  }
}

.sp-none {
  display: block;
}
@media only screen and (min-width: 500px) {
  .sp-none {
    display: none;
  }
}

body {
  line-height: 1.8;
}
@media only screen and (min-width: 769px) {
  body {
    font-size: 16rem;
  }
}

@media (min-width: 768px) {
  body {
    line-height: 2;
  }
}
.col-1,
.col-2,
.col-3 {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-flex-flow: wrap;
      -ms-flex-flow: wrap;
          flex-flow: wrap;
  margin-top: 42px;
}
@media only screen and (min-width: 769px) {
  .col-1,
  .col-2,
  .col-3 {
    margin-top: 100rem;
  }
}
.col-1.col-wrap,
.col-2.col-wrap,
.col-3.col-wrap {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
.col-1.col-wrap > *,
.col-1.col-wrap img,
.col-2.col-wrap > *,
.col-2.col-wrap img,
.col-3.col-wrap > *,
.col-3.col-wrap img {
  width: 100%;
}
@media only screen and (min-width: 769px) {
  .col-1.col-wrap,
  .col-2.col-wrap,
  .col-3.col-wrap {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}

.col-1 img {
  max-width: 100%;
}

.col-2 {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}
.col-2 > *,
.col-2 img {
  width: 100%;
}
@media only screen and (min-width: 769px) {
  .col-2 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 40px;
  }
  .col-2 > * {
    width: calc((100% - 40px) / 2);
  }
  .col-2 img {
    width: 100%;
  }
}

.col-3 {
  gap: 28px;
}
@media only screen and (min-width: 769px) {
  .col-3 {
    gap: 12px;
  }
}
.col-3 > * {
  width: calc((100% - 56px) / 3);
}
@media only screen and (min-width: 769px) {
  .col-3 > * {
    width: calc((100% - 24px) / 3);
  }
}

main {
  padding-top: 0 !important;
}
main header {
  position: relative;
  padding-bottom: 460px;
}
@media only screen and (min-width: 769px) {
  main header {
    padding-bottom: 0;
  }
}
main header::before {
  content: "";
  display: block;
  background: -webkit-linear-gradient(top, #fff 120px, rgb(70, 177, 204) 121px, rgb(70, 177, 204) 100%);
  background: linear-gradient(to bottom, #fff 120px, rgb(70, 177, 204) 121px, rgb(70, 177, 204) 100%);
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  z-index: -5;
}
@media only screen and (min-width: 769px) {
  main header::before {
    all: unset;
  }
}
main header::after {
  position: absolute;
  bottom: 0;
  content: "";
  display: block;
  width: 100%;
  height: 460px;
  background: url(../img/img_09.jpg) no-repeat top center/cover;
  z-index: -2;
  opacity: 0.1;
}

.header-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.tu_header {
  position: relative;
  background: no-repeat center 118px/cover;
  background-image: url("../img/img_01_sp.jpg");
  height: 561px;
}
@media only screen and (min-width: 769px) {
  .tu_header {
    background-image: url("../img/img_01.jpg");
    background-position: top center;
    background-size: cover;
    background-repeat: no-repeat;
    min-height: 760rem;
  }
}
@media only screen and (min-width: 1081px) {
  .tu_header {
    min-height: 52.7777777778vw;
  }
}
@media only screen and (min-width: 1441px) {
  .tu_header {
    min-height: 760rem;
  }
}
@media only screen and (min-width: 769px) {
  .tu_header::before {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(23, 48, 22, 0.25);
  }
}
.tu_header img {
  width: 100%;
}

.header__ttl {
  position: absolute;
  top: 0;
  margin-top: 28px;
}
@media only screen and (min-width: 769px) {
  .header__ttl {
    margin-top: 0;
    left: 112rem;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl {
    left: 7.7777777778vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl {
    left: 112rem;
  }
}
.header__ttl--en {
  color: #000;
  font-size: 26px;
  font-family: "Heebo", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  letter-spacing: 0.06em;
  font-weight: bold;
  margin-inline: 16px;
}
@media only screen and (min-width: 769px) {
  .header__ttl--en {
    margin-inline: 0;
    color: #fff;
    font-size: 65rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl--en {
    font-size: 4.5138888889vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl--en {
    font-size: 65rem;
  }
}
.header__ttl--ensub {
  font-size: 18px;
  display: inline-block;
  margin-bottom: 12px;
}
@media only screen and (min-width: 769px) {
  .header__ttl--ensub {
    font-size: 43rem;
    margin-bottom: 14rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl--ensub {
    font-weight: 500;
    font-size: 2.9861111111vw;
    margin-bottom: 0.9722222222vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl--ensub {
    font-size: 43rem;
    margin-bottom: 14rem;
  }
}
.header__ttl--jp {
  margin-top: 500px;
}
@media only screen and (min-width: 769px) {
  .header__ttl--jp {
    margin-top: 56rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl--jp {
    margin-top: 3.8888888889vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl--jp {
    margin-top: 56rem;
  }
}
.header__ttl--jp span {
  position: relative;
  display: block;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: bold;
  background: #fff;
  letter-spacing: 0.02em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 12px;
  margin-left: 15px;
  font-size: 23px;
  padding-top: 6px;
  padding-bottom: 6px;
  padding-left: 12px;
}
@media only screen and (min-width: 769px) {
  .header__ttl--jp span {
    margin-top: 24rem;
    font-size: 42rem;
    padding-top: 12rem;
    padding-bottom: 14rem;
    padding-left: 18rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl--jp span {
    margin-top: 1.6666666667vw;
    font-size: 2.9166666667vw;
    padding-top: 0.8333333333vw;
    padding-bottom: 0.9722222222vw;
    padding-left: 1.25vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl--jp span {
    margin-top: 24rem;
    font-size: 42rem;
    padding-top: 12rem;
    padding-bottom: 14rem;
    padding-left: 18rem;
  }
}
.header__ttl--jp span::after {
  position: absolute;
  content: "";
  display: block;
  height: 100%;
  top: 0;
  background: -webkit-linear-gradient(335deg, #fff 50%, rgba(255, 255, 255, 0) calc(50% + 1px), rgba(255, 255, 255, 0) 100%);
  background: linear-gradient(115deg, #fff 50%, rgba(255, 255, 255, 0) calc(50% + 1px), rgba(255, 255, 255, 0) 100%);
  width: 36px;
  right: -36px;
}
@media only screen and (min-width: 769px) {
  .header__ttl--jp span::after {
    width: 36rem;
    right: -36rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__ttl--jp span::after {
    width: 2.5vw;
    right: -2.5vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__ttl--jp span::after {
    width: 36rem;
    right: -36rem;
  }
}
.header__lead {
  color: #fff;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.07em;
  margin-top: 24px;
  margin-inline: 15px;
  text-align: justify;
  font-size: 16px;
}
@media only screen and (min-width: 769px) {
  .header__lead {
    font-size: 22rem;
    margin-top: 28rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__lead {
    font-size: 1.5277777778vw;
    margin-top: 1.9444444444vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__lead {
    font-size: 22rem;
    margin-top: 28rem;
  }
}
.header__credit {
  position: absolute;
  bottom: 17px;
  color: #fff;
  right: 16px;
  letter-spacing: 0.07em;
  font-size: 11px;
  text-align: right;
  line-height: 1.6;
}
@media only screen and (min-width: 769px) {
  .header__credit {
    right: 32rem;
    font-size: 14rem;
  }
}
@media only screen and (min-width: 1081px) {
  .header__credit {
    font-size: 0.9722222222vw;
  }
}
@media only screen and (min-width: 1441px) {
  .header__credit {
    font-size: 14rem;
  }
}

@media only screen and (min-width: 769px) {
  @supports (height: 100svh) {
    .tu_header {
      height: calc(100svh - var(--heightHeaderPc));
    }
  }
  @supports not (height: 100svh) {
    .tu_header {
      height: calc(100vh - var(--heightHeaderPc));
    }
  }
}
main {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 400;
  line-height: 1;
  text-align: justify;
  font-size: 16px;
}
@media only screen and (min-width: 769px) {
  main {
    font-size: 16rem;
  }
}

.sec-content {
  padding-top: 60px;
}
@media only screen and (min-width: 769px) {
  .sec-content {
    padding-top: 100rem;
  }
}

.artice-ttl {
  position: relative;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.07em;
  width: 100%;
  text-align: center;
  font-size: 21px;
  padding-bottom: 14px;
}
@media only screen and (min-width: 769px) {
  .artice-ttl {
    font-size: 30rem;
    padding-bottom: 21rem;
  }
}
.artice-ttl::before {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  background: #f7f7f7;
  z-index: -1;
  height: 26px;
}
@media only screen and (min-width: 769px) {
  .artice-ttl::before {
    height: 39rem;
  }
}
.artice-ttl::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  background: -webkit-linear-gradient(left, #46b1cc 50%, #000 calc(50% + 1px), #000 100%);
  background: linear-gradient(to right, #46b1cc 50%, #000 calc(50% + 1px), #000 100%);
  height: 5px;
}
@media only screen and (min-width: 769px) {
  .artice-ttl::after {
    height: 7rem;
  }
}

.ttl-q {
  position: relative;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: bold;
  letter-spacing: 0.07em;
  padding-left: 40px;
  margin-top: 24px;
  line-height: 1.5;
  font-size: 18px;
}
@media only screen and (min-width: 769px) {
  .ttl-q {
    padding-left: 50rem;
    margin-top: 32rem;
    line-height: 2;
    font-size: 23rem;
  }
}
.ttl-q::before {
  position: absolute;
  top: 13px;
  left: 0;
  content: "";
  display: block;
  width: 36px;
  height: 2px;
  background: #000;
}
@media only screen and (min-width: 769px) {
  .ttl-q::before {
    top: 23rem;
    width: 46rem;
    height: 2rem;
  }
}
.ttl-q + p {
  margin-top: 20px;
}
@media only screen and (min-width: 769px) {
  .ttl-q + p {
    margin-top: 20rem;
  }
}

figcaption {
  letter-spacing: 0.07em;
  font-size: 14px;
  line-height: 1.7;
  margin-top: 8px;
  font-weight: 500;
  color: #666666;
}
@media only screen and (min-width: 769px) {
  figcaption {
    font-size: 14rem;
    margin-top: 10rem;
    line-height: 1.6;
  }
}

.contents_width .artice-ttl + .ttl-q {
  margin-top: 54rem;
}
.contents_width .artice-ttl + p {
  margin-top: 30rem;
}
@media only screen and (min-width: 769px) {
  .contents_width .artice-ttl + p {
    margin-top: 60rem;
  }
}
.contents_width p {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
@media only screen and (min-width: 769px) {
  .contents_width p {
    font-size: 16rem;
    line-height: 2;
  }
}
.contents_width p + p {
  margin-top: 16rem;
}

.box-border {
  margin-top: 50px;
  padding: 27px;
  border: 1px solid #000;
  margin-inline: 5px;
  background: #fff;
}
@media only screen and (min-width: 769px) {
  .box-border {
    margin-top: 95rem;
    margin-inline: 0;
    padding: 56rem;
  }
}
.box-border p {
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.6;
}
@media only screen and (min-width: 769px) {
  .box-border p {
    margin-top: 16rem;
    font-size: 16rem;
    line-height: 1.8;
  }
}
.box-ttl {
  font-size: 20px;
  font-weight: bold;
}
@media only screen and (min-width: 769px) {
  .box-ttl {
    font-size: 23rem;
  }
}

.w300 {
  width: 100%;
}
@media only screen and (min-width: 769px) {
  .w300 {
    width: calc((100% - 40rem) / 3 - 4rem);
  }
}

.w610 {
  width: 100%;
}
@media only screen and (min-width: 769px) {
  .w610 {
    width: calc((100% - 40rem) / 3 * 2);
  }
}

.sec-product {
  margin-top: 56px;
}
@media only screen and (min-width: 769px) {
  .sec-product {
    margin-top: 170rem;
  }
}
.sec-product h2 {
  background: #343434;
  font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 23px;
  font-weight: bold;
  letter-spacing: 0.07em;
  color: #fff;
  text-align: center;
  padding: 14px;
}
@media only screen and (min-width: 769px) {
  .sec-product h2 {
    font-size: 30rem;
  }
}
.sec-product h3 {
  position: relative;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.07em;
  padding-left: 0;
  padding-bottom: 12px;
  line-height: 1.5;
}
@media only screen and (min-width: 769px) {
  .sec-product h3 {
    font-size: 23rem;
    font-weight: 900;
    padding-left: 12rem;
  }
}
.sec-product h3::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #000;
}
.sec-product h4 {
  font-weight: 900;
  margin-top: 20px;
}
@media only screen and (min-width: 769px) {
  .sec-product h4 {
    margin-top: 26rem;
  }
}
@media only screen and (min-width: 769px) {
  .sec-product .col-2 {
    gap: 0;
  }
}
@media only screen and (min-width: 769px) {
  .sec-product figure {
    width: 44.8%;
  }
}
.sec-product .box-product {
  border: 1px solid #707070;
  margin-top: 10px;
  padding: 30px 16px;
}
@media only screen and (min-width: 769px) {
  .sec-product .box-product {
    padding: 74rem 55rem;
  }
}
.sec-product .box-product .col-2 {
  margin-top: 42px;
}
.sec-product .product__item:not(:first-of-type) {
  margin-top: 63px;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__item:not(:first-of-type) {
    margin-top: 90rem;
  }
}
.sec-product .product__summary {
  font-size: 15px;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__summary {
    font-size: 16rem;
    width: 52%;
  }
}
.sec-product .product__summary p {
  font-size: 15px;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__summary p {
    font-size: 16rem;
  }
}
.sec-product .product__link {
  text-align: center;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__link {
    text-align: right;
  }
}
.sec-product .product__spec {
  margin-top: 6px;
  font-size: 15px;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__spec {
    font-size: 15rem !important;
  }
}
.sec-product .product__spec small {
  font-size: 13px;
}
@media only screen and (min-width: 769px) {
  .sec-product .product__spec small {
    font-size: 13rem;
  }
}

.btn-bl {
  position: relative;
  bottom: 0;
  right: 0;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 230px;
  height: 50px;
  background: #46b1cc;
  color: #fff;
  font-weight: 500;
  border-radius: 25px;
  margin-top: 20rem;
  letter-spacing: 0.07em;
}
@media only screen and (min-width: 769px) {
  .btn-bl {
    border-radius: 25rem;
  }
}
.btn-bl:hover {
  background: #89cdde;
}
.btn-bl::after {
  position: absolute;
  right: 24px;
  top: 50%;
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  -webkit-transform: translateY(-50%) rotate(225deg);
          transform: translateY(-50%) rotate(225deg);
}

.link-btn {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 40px;
}
@media only screen and (min-width: 769px) {
  .link-btn {
    margin-top: 60rem;
  }
}
.link-btn .btn-bl {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  padding-inline: 50px;
  padding-block: 10px;
  line-height: 1.5;
  border-radius: 40px;
  font-size: 14px;
}
@media only screen and (min-width: 500px) {
  .link-btn .btn-bl {
    font-size: 16px;
  }
}
@media only screen and (min-width: 769px) {
  .link-btn .btn-bl {
    width: 500rem;
    height: 60rem;
    border-radius: 30rem;
    text-align: center;
  }
}

.sec-contact {
  margin-top: 60px;
  margin-bottom: 60px;
  padding-block: 60px;
  background: #f8f8f8;
}
@media only screen and (min-width: 769px) {
  .sec-contact {
    margin-top: 100rem;
    margin-bottom: 0;
  }
}
.sec-contact .col-2 {
  margin-top: 0;
  gap: 18px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.sec-contact .col-2 figure {
  width: 60%;
}
@media only screen and (min-width: 769px) {
  .sec-contact .col-2 {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 10%;
    width: min(745rem, 100%);
    margin-inline: auto;
  }
  .sec-contact .col-2 figure {
    width: 40%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .sec-contact .col-2 img {
    width: 100%;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) {
  .sec-contact .col-2 div {
    width: 50%;
  }
}
.sec-contact .contact-ttl {
  font-size: 19px;
  letter-spacing: 0.07em;
  font-weight: 700;
  padding-bottom: 12px;
  border-bottom: 1px solid #707070;
  margin-top: 6px;
  text-align: center;
}
@media only screen and (min-width: 769px) {
  .sec-contact .contact-ttl {
    font-size: 23rem;
    text-align: left;
    padding-bottom: 6rem;
  }
}
.sec-contact .contact__summary {
  margin-top: 14px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
}
@media only screen and (min-width: 769px) {
  .sec-contact .contact__summary {
    font-size: 16rem;
    margin-top: 8rem;
  }
}
.sec-contact .contact__summary a {
  color: #46b1cc;
  font-weight: 700;
}

@media only screen and (min-width: 769px) {
  .article-single-share_wrap {
    margin-top: 24rem;
  }
  .article-single-share_wrap > div {
    padding: 18rem;
    background: #fff;
    border-radius: 35rem;
    -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0 0 20rem;
            box-shadow: rgba(0, 0, 0, 0.1) 0 0 20rem;
  }
  .bg-grid {
    position: relative;
  }
  .bg-grid::before {
    position: absolute;
    content: "";
    display: block;
    background: url(../img/bg_01.svg);
    width: 100%;
    z-index: -1;
  }
  .bg-grid_01.bg-grid::before {
    bottom: 310rem;
    height: 540rem;
  }
  .bg-grid_02.bg-grid::before {
    top: 638rem;
    height: 1230rem;
  }
  .bg-grid_04.bg-grid::before {
    bottom: 805rem;
    height: 1210rem;
  }
  .bg-grid_05.bg-grid::before {
    bottom: 330rem;
    height: 1140rem;
  }
  .bg-grid.bg-grid_03::after {
    position: absolute;
    content: "";
    display: block;
    background: url(../img/bg_01.svg);
    width: 100%;
    z-index: -1;
    bottom: 324rem;
    height: 1195rem;
  }
}/*# sourceMappingURL=style.css.map */