@charset "UTF-8";
@font-face {
  font-family: "notosansjp";
  font-weight: 400;
  src: url(../../../products/_assets/font/notosansjp/NotoSansJP-Regular.ttf)
    format("truetype");
}
@font-face {
  font-family: "notosansjp";
  font-weight: 500;
  src: url(../../../products/_assets/font/notosansjp/NotoSansJP-Medium.ttf)
    format("truetype");
}
@font-face {
  font-family: "notosansjp";
  font-weight: 700;
  src: url(../../../products/_assets/font/notosansjp/NotoSansJP-Bold.ttf)
    format("truetype");
}
@font-face {
  font-family: "notosansjp";
  font-weight: 900;
  src: url(../../../products/_assets/font/notosansjp/NotoSansJP-Black.ttf)
    format("truetype");
}
@font-face {
  font-family: "worksans";
  font-weight: 400;
  src: url(../../../products/_assets/font/worksans/WorkSans-Regular.ttf)
    format("truetype");
}
@font-face {
  font-family: "worksans";
  font-weight: 500;
  src: url(../../../products/_assets/font/worksans/WorkSans-Medium.ttf)
    format("truetype");
}
@font-face {
  font-family: "worksans";
  font-weight: 700;
  src: url(../../../products/_assets/font/worksans/WorkSans-Bold.ttf) format("truetype");
}
@font-face {
  font-family: "worksans";
  font-weight: 900;
  src: url(../../../products/_assets/font/worksans/WorkSans-Black.ttf)
    format("truetype");
}
/*
 * サイト内パラメータ設定ファイル
 */
/*
 * 関数定義用ファイル
 */
/*
 * メディアクエリ用mixin
 */
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role="list"],
ol[role="list"] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
html {
  scroll-padding-top: calc(60ox + 10px) !important;
}
@media screen and (min-width: 48.0625em) {
  html {
    scroll-padding-top: 110px !important;
  }
}

ol {
  padding: 0;
}

em {
  font-style: normal;
}

img {
  max-width: none !important;
  width: 100%;
}

.featureBcp {
  line-height: 1.5;
  overflow: hidden;
}
.l-container {
  padding-inline: 7.5vw;
  margin-inline: auto;
  width: 100%;
}
@media screen and (min-width: 48.0625em) {
  .l-container {
    width: min(
      100%,
      min(71.8562874251vw, 960px) + min(1.1976047904vw, 16px) * 2
    );
    padding-inline: min(1.1976047904vw, 16px);
  }
}

.c-inner {
  width: min(100%, 1336px) !important;
}

.mv {
  width: 100%;
  height: auto;
  aspect-ratio: 320/419;
  background: url("../../../feature/_assets/images/bcp/mv-bg-sp.png") center/contain
    no-repeat;
}
@media screen and (min-width: 48.0625em) {
  .mv {
    margin-inline: auto;
    width: min(100vw, 1336px);
    aspect-ratio: 1336/437;
    background-image: url("../../../feature/_assets/images/bcp/mv-bg-pc.png");
  }
}
.mv .mv_inr {
  padding-top: 20vw;
  padding-inline: 7.8125vw;
}
@media screen and (min-width: 48.0625em) {
  .mv .mv_inr {
    padding-top: min(7.3353293413vw, 98px);
    padding-inline: min(13.997005988vw, 187px);
  }
}
.mv .mv-hero {
  display: grid;
  row-gap: 5vw;
  color: #fff;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 48.0625em) {
  .mv .mv-hero {
    row-gap: min(1.5718562874vw, 21px);
  }
}
.mv .mv-hero p {
  font-size: 4.375vw;
  font-weight: 700;
}
@media screen and (min-width: 48.0625em) {
  .mv .mv-hero p {
    font-size: min(1.0479041916vw, 14px);
  }
}
.mv .mv-hero h1 {
  font-size: 7.5vw;
  font-weight: 700;
  color: #fff;
}
@media screen and (min-width: 48.0625em) {
  .mv .mv-hero h1 {
    font-size: min(2.994011976vw, 40px);
  }
}

.about {
  padding-block: 16.25vw 12.5vw;
}
@media screen and (min-width: 48.0625em) {
  .about {
    padding-block: min(4.5658682635vw, 61px) min(5.9131736527vw, 79px);
  }
}
.about h2 {
  font-size: 5vw;
  font-weight: 700;
  text-align: center;
  letter-spacing: normal;
}
@media screen and (min-width: 48.0625em) {
  .about h2 {
    font-size: min(2.3952095808vw, 32px);
  }
}
.about ul.about_list {
  margin-top: 10vw;
  display: grid;
  row-gap: 10vw;
}
@media screen and (min-width: 48.0625em) {
  .about ul.about_list {
    display: flex;
    column-gap: min(0.8982035928vw, 12px);
    margin-top: min(2.994011976vw, 40px);
  }
}
@media screen and (min-width: 48.0625em) {
  .about ul.about_list li {
    flex: 1;
  }
}
.about ul.about_list figure.about_img {
  padding: 3.125vw;
  display: grid;
  row-gap: 3.4375vw;
  justify-items: center;
  background-color: #f3f8f9;
  border-radius: 3.75vw;
}
@media screen and (min-width: 48.0625em) {
  .about ul.about_list figure.about_img {
    padding: min(1.7215568862vw, 23px);
    row-gap: min(1.7215568862vw, 23px);
    border-radius: min(0.8982035928vw, 12px);
  }
}
.about ul.about_list figure.about_img figcaption {
  font-size: 5vw;
  font-weight: 700;
}
@media screen and (min-width: 48.0625em) {
  .about ul.about_list figure.about_img figcaption {
    font-size: min(1.497005988vw, 20px);
  }
}
.about .about_txt {
  margin-top: 5vw;
  font-size: 5vw;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .about .about_txt {
    margin-top: min(1.7215568862vw, 23px);
    font-size: min(1.1976047904vw, 16px);
  }
}
.about .about_listBottom {
  position: relative;
  padding: 66.25vw 5vw 5vw;
  margin-top: 14.0625vw;
  background: #f3f8f9 url("../images/bcp/about_bottom-img.svg") center
    11.5625vw/72.1875vw no-repeat;
  border-radius: 3.75vw;
}
@media screen and (min-width: 48.0625em) {
  .about .about_listBottom {
    padding: min(2.994011976vw, 40px);
    margin-top: min(4.1167664671vw, 55px);
    background-size: min(27.994011976vw, 374px);
    background-position: bottom right min(3.0688622754vw, 41px);
  }
}
.about .about_listBottom::before {
  position: absolute;
  inset: -1.875vw 0 auto;
  margin-inline: auto;
  content: "";
  display: block;
  width: 36.875vw;
  height: auto;
  aspect-ratio: 118/21;
  background-color: #00838b;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media screen and (min-width: 48.0625em) {
  .about .about_listBottom::before {
    top: max(-0.5988023952vw, -8px);
    width: min(8.7574850299vw, 117px);
  }
}
.about .about_listBottom p {
  font-size: 5vw;
  letter-spacing: normal;
}
@media screen and (min-width: 48.0625em) {
  .about .about_listBottom p {
    font-size: min(1.1976047904vw, 16px);
  }
}
.about .about_listBottom .em {
  margin-top: 2.5vw;
  font-size: 6.25vw;
  font-weight: 700;
  letter-spacing: normal;
  color: #00838b;
}
@media screen and (min-width: 48.0625em) {
  .about .about_listBottom .em {
    margin-top: min(1.1976047904vw, 16px);
    font-size: min(1.7964071856vw, 24px);
  }
}
.about .about_listBottom .em em {
  position: relative;
  z-index: 0;
}
.about .about_listBottom .em em::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.4em;
  background-color: #ffc248;
  z-index: -1;
}
.about .about_resolution {
  margin-top: 15.625vw;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolution {
    display: grid;
    justify-items: center;
    margin-top: min(5.5389221557vw, 74px);
  }
}
.about .about_resolutionImg {
  display: grid;
  justify-items: center;
  row-gap: 5.3125vw;
  width: 100%;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionImg {
    row-gap: min(0.748502994vw, 10px);
    width: min(53.3682634731vw, 713px);
  }
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionImg img {
    margin-left: min(1.7215568862vw, 23px);
  }
}
.about .about_resolutionImg figcaption {
  font-size: 4.375vw;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionImg figcaption {
    font-size: min(1.7964071856vw, 24px);
  }
}
.about .about_resolutionArrow {
  width: 42.5vw;
  margin-inline: auto;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionArrow {
    width: min(13.9221556886vw, 186px);
  }
}
.about .about_resolutionTxt {
  display: grid;
  row-gap: 2.5vw;
  margin-top: 5vw;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionTxt {
    row-gap: min(1.1976047904vw, 16px);
    margin-top: 0;
  }
}
.about .about_resolutionTxt p {
  font-size: 4.375vw;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionTxt p {
    font-size: min(1.7964071856vw, 24px);
  }
}
.about .about_resolutionTxt p em {
  font-size: 7.5vw;
  font-weight: 700;
  line-height: 1.5;
  color: #00838b;
}
@media screen and (min-width: 48.0625em) {
  .about .about_resolutionTxt p em {
    font-size: min(2.994011976vw, 40px);
  }
}

.service {
  padding-block: 12.5vw;
  background-color: #f3f8f9;
}
@media screen and (min-width: 48.0625em) {
  .service {
    padding-block: min(5.9880239521vw, 80px);
  }
}
.service .service_title {
  display: grid;
  justify-items: center;
  row-gap: 2.5vw;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .service .service_title {
    row-gap: min(0.9730538922vw, 13px);
  }
}
.service .service_title p {
  font-size: 4.375vw;
  font-weight: 700;
}
@media screen and (min-width: 48.0625em) {
  .service .service_title p {
    font-size: min(1.1976047904vw, 16px);
  }
}
.service .service_title h2 {
  position: relative;
  width: fit-content;
  font-size: 7.5vw;
  font-weight: 700;
  color: #00838b;
  z-index: 0;
}
@media screen and (min-width: 48.0625em) {
  .service .service_title h2 {
    font-size: min(2.994011976vw, 40px);
  }
}
.service .service_title h2::after {
  position: absolute;
  bottom: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.5em;
  background-color: #ffc248;
  z-index: -1;
}
.service .service_block {
  display: grid;
  row-gap: 5vw;
  padding: 10vw 2.5vw 2.5vw;
  margin-top: 7.5vw;
  background-color: #dbefef;
  border-radius: 3.75vw;
}
@media screen and (min-width: 48.0625em) {
  .service .service_block {
    row-gap: min(1.871257485vw, 25px);
    padding: min(2.994011976vw, 40px);
    margin-top: min(2.994011976vw, 40px);
    border-radius: min(0.8982035928vw, 12px);
  }
}
.service .service_blockTtl {
  font-size: 4.375vw;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTtl {
    font-size: min(1.1976047904vw, 16px);
  }
}
.service .service_blockTtl em {
  display: block;
  font-size: 7.5vw;
  font-weight: 700;
  color: #00838b;
  line-height: 1.5;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTtl em {
    font-size: min(2.994011976vw, 40px);
  }
}
.service ul.service_blockList {
  display: grid;
  row-gap: 7.5vw;
}
@media screen and (min-width: 48.0625em) {
  .service ul.service_blockList {
    row-gap: min(1.1976047904vw, 16px);
  }
}
.service ul.service_blockList li {
  display: grid;
  row-gap: 4.0625vw;
  padding: 7.5vw 5vw;
  background-color: #fff;
  border-radius: 3.75vw;
}
@media screen and (min-width: 48.0625em) {
  .service ul.service_blockList li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: min(4.4910179641vw, 60px);
    padding: min(2.6946107784vw, 36px) min(2.994011976vw, 40px)
      min(2.3952095808vw, 32px);
  }
}
.service ul.service_blockList .img {
  width: 100%;
}
@media screen and (min-width: 48.0625em) {
  .service ul.service_blockList .img {
    width: min(27.6946107784vw, 370px);
  }
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt {
    display: flex;
    flex-direction: column;
    row-gap: min(1.1976047904vw, 16px);
    width: min(27.619760479vw, 369px);
  }
}
.service .service_blockTxt .logo {
  width: 100%;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt .logo {
    width: auto;
    order: 1;
  }
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt .logo::before {
    content: "";
    display: block;
    margin-bottom: min(1.497005988vw, 20px);
    width: 100%;
    height: min(0.0748502994vw, 1px);
    background-color: #00838b;
  }
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt .logo img {
    width: auto;
    height: min(3.5928143713vw, 48px);
  }
}
.service .service_blockTxt h4 {
  margin-top: 4.0625vw;
  font-size: 7.1875vw;
  font-weight: 700;
  color: #00838b;
  line-height: 1.5;
  letter-spacing: normal;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt h4 {
    margin-top: 0;
    font-size: min(2.3952095808vw, 32px);
    order: 0;
  }
}
.service .service_blockTxt h4.ls {
  letter-spacing: -0.0417em;
}
.service .service_blockTxt .txt {
  margin-top: 2.5vw;
  font-size: 4.375vw;
  line-height: 1.4;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockTxt .txt {
    margin-top: 0;
    font-size: min(1.1976047904vw, 16px);
    order: 2;
  }
}
.service .service_blockBtn {
  margin-top: 7.5vw;
  width: 70vw !important;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    width: 100% !important;
    height: min(4.7904191617vw, 64px) !important;
    order: 3;
  }
}
.service .service_blockBtn::after {
  width: 7.5vw;
  height: 7.5vw;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockBtn::after {
    width: min(2.3952095808vw, 32px);
    height: min(2.3952095808vw, 32px);
  }
}
.service .service_blockBtn span {
  font-size: 5vw !important;
}
@media screen and (min-width: 48.0625em) {
  .service .service_blockBtn span {
    font-size: min(1.1976047904vw, 16px) !important;
  }
}

.otherSolution {
  padding-block: 12.5vw;
  text-align: center;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution {
    padding-block: min(5.9880239521vw, 80px);
  }
}
.otherSolution .otherSolution_inr {
  display: grid;
  justify-items: center;
}
.otherSolution .otherSolution_ttl {
  font-size: 5vw;
  font-weight: 700;
  line-height: 152%;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution .otherSolution_ttl {
    font-size: min(1.7964071856vw, 24px);
  }
}
.otherSolution .otherSolution_desc {
  margin-top: 4.375vw;
  font-size: 3.75vw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution .otherSolution_desc {
    margin-top: min(0.5988023952vw, 8px);
    font-size: min(1.497005988vw, 20px);
  }
}
.otherSolution .otherSolution_link {
  display: block;
  margin-top: 5vw;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution .otherSolution_link {
    margin-top: min(1.7964071856vw, 24px);
  }
}
.otherSolution .otherSolution_link p {
  width: fit-content;
  color: #00838b;
  font-size: 6.25vw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution .otherSolution_link p {
    font-size: min(1.497005988vw, 20px);
  }
}
.otherSolution .otherSolution_link p::after {
  content: "";
  display: block;
  height: 0.3125vw;
  width: 100%;
  background-color: currentColor;
}
@media screen and (min-width: 48.0625em) {
  .otherSolution .otherSolution_link p::after {
    height: min(0.0748502994vw, 1px);
  }
}
