@charset "UTF-8";

/* 日本語 */
/*
---------------------------
@use '../foundation/variable' as *;

objectの場合
@use '../../foundation/variable' as *;
---------------------------
*/
/*---------------------------
変数
---------------------------*/
/*whith*/
/*color*/
/*
背景色の場合
@include gradient-background($gradient-primary);

テキストの場合
@include gradient-text($gradient-accent);

*/
/*font-size*/
/*
font-size: fz(12) ;

*/
/* z-index */
/*---------------------------
mixin
---------------------------*/
/* ブレイクポイントメディアクエリ用 */
/* 
@include mq(md) {
    display: block;
    } 
*/
/* flex */
/* 
    @include flex();
    */
/* 
        @include flex-center;
    */
.fv__bg {
  display: block;
  width: 100%;
  max-width: 100%;
  height: clamp(50vh, 92dvh, 110vh);
  background-color: #ffe0ec;
  /* background-image: -webkit-gradient(linear, left top, right top, from(rgb(93, 186, 220)), to(rgb(26, 116, 181)));
  background-image: -webkit-linear-gradient(left, rgb(93, 186, 220), rgb(26, 116, 181));
  background-image: linear-gradient(90deg, rgb(93, 186, 220), rgb(26, 116, 181)); */
  position: absolute;
  -webkit-clip-path: polygon(0 14%, 100% 0, 100% 80%, 0 100%);
  clip-path: polygon(0 14%, 100% 0, 100% 80%, 0 100%);
  top: 0;
  left: 0;
  z-index: -5;
}

@media screen and (max-width: 1024px) {
  .fv__bg {
    height: 80dvh;
  }
}

@media screen and (max-width: 767px) {
  .fv__bg {
    height: 70dvh;
    -webkit-clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
    clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
  }
}

/* デフォルト: 表示 */
.responsive-br {
  display: inline;
}

/* 500px〜900pxの間で非表示 */
@media screen and (max-width: 767px) {
  .responsive-br {
    display: none;
  }
}

/*---------------------------
side-wapper
---------------------------*/
.side__wapper {
  width: 260px;
  position: fixed;
  top: 460px;
  right: -200px;
  z-index: 50;
  background-color: transparent;
}

@media only screen and (max-width: 1050px) {
  .side__wapper {
    top: 30%;
  }
}

@media screen and (max-width: 1024px) {
  .side__wapper {
    top: 20%;
  }
}

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

.side__contact-container {
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

.side__contact-item {
  width: 100%;
  height: 70px;
  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;
  -webkit-box-flex: 0;
  -webkit-flex-grow: 0;
  -ms-flex-positive: 0;
  flex-grow: 0;
  -webkit-margin-after: 7px;
  margin-block-end: 7px;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .side__contact-item {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media screen and (max-width: 767px) {
  .side__contact-item {
    height: 55px;
  }
}

.side__contact-item--blue {
  background-color: #eea7c1;
  border-bottom: 7px solid #ffc5d1;
  border-radius: 8px 0px 0px 8px;
}

@media (any-hover: hover) {
  .side__contact-item--blue:hover {
    margin-left: 0;
    background: #eea7c1;
    border-bottom: 3px solid #ffc5d1;
  }
}

.side__contact-item--green {
  background-color: #06c755;
  border-bottom: 7px solid #05a948;
  border-radius: 8px 0px 0px 8px;
}

@media (any-hover: hover) {
  .side__contact-item--green:hover {
    background: #06c755;
    border-bottom: 3px solid #05a948;
  }
}

.side__contact-item--red {
  background-color: #1B98D2;
  border-bottom: 7px solid #4DBEF1;
  border-radius: 8px 0px 0px 8px;
}

@media (any-hover: hover) {
  .side__contact-item--red:hover {
    background: #1B98D2;
    border-bottom: 3px solid #4DBEF1;
  }
}

@media (any-hover: hover) {
  .side__contact-item:hover {
    margin-left: -200px;
  }
}

.side__contact-item .side__contact-link {
  display: block;
  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;
  width: 100%;
  /* 横幅を親要素いっぱいに */
  height: 100%;
  /* 高さを親要素いっぱいに */
}

.side__contact-item .side__contact-img {
  display: inline-block;
  -webkit-margin-start: 18px;
  margin-inline-start: 18px;
  width: 35px;
  height: 35px;
  -o-object-fit: contain;
  object-fit: contain;
}

.side__contact-item--green.side__contact-item .side__contact-img {
  -webkit-margin-start: 15px;
  margin-inline-start: 15px;
}

.side__contact-item--red.side__contact-item .side__contact-img {
  width: 28px;
  height: 28px;
  -webkit-margin-start: 20px;
  margin-inline-start: 20px;

}

.side__contact-item .side__contact-text {
  display: inline-block;
  -webkit-margin-start: 20px;
  margin-inline-start: 20px;
  color: #fff;
  font-size: clamp(14px, 2vw, 17px);
  line-height: 1.6;
  font-weight: bold;
  letter-spacing: 0.85px;
}

.side__contact-item .side__contact-tel {
  display: inline-block;
  font-size: clamp(14px, 2vw, 22px);
  font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Yu Gothic", YuGothic, Verdana, Meiryo, sans-serif;
  line-height: 0;
}

.side__wapper-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .side__wapper-sp {
    max-width: 100%;
    width: 100%;
    display: block;
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 55px;
    background-color: #fff;
    z-index: 50;
    display: none;
    /* 初期状態で非表示 */
    opacity: 0;
    /* 完全に透明 */
    transition: opacity 0.3s ease;
    /* なめらかなフェード表示 */
  }

  .side__wapper-sp.visible {
    display: block;
    /* 表示 */
    opacity: 1;
    /* 不透明 */
  }
}

@media only screen and (max-width: 330px) {
  .side__wapper-sp {
    display: none;
  }
}

.side__contact-container-sp {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.side__contact-long-link-sp {
  width: 100%;
  height: 100%;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  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;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 20px;
  background-color: #1B98D2;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .side__contact-long-link-sp {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .side__contact-long-link-sp:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .side__contact-long-link-sp {
    -webkit-padding-start: 15px;
    padding-inline-start: 15px;
  }
}

@media screen and (max-width: 440px) {
  .side__contact-long-link-sp {
    gap: 0;
  }
}

.side__contact-tel-sp {
  display: inline-block;
  -webkit-margin-start: 10px;
  margin-inline-start: 10px;
}

@media only screen and (max-width: 391px) {
  .side__contact-tel-sp {
    -webkit-margin-start: 3px;
    margin-inline-start: 3px;
  }
}

.side__contact-img-sp {
  display: inline-block;
  -o-object-fit: contain;
  object-fit: contain;
  vertical-align: -7px;
  width: 32px;
  height: auto;
}

.side__contact-long-link-sp .side__contact-img-sp {
  width: 22px;
}

.side__contact-text-sp {
  color: #fff;
  display: inline-block;
  -webkit-margin-start: 10px;
  margin-inline-start: 10px;
  font-size: clamp(12px, 2vw, 16px);
  line-height: 1.6;
  font-weight: bold;
  letter-spacing: 0.85px;
}

span>span.side__contact-tel-sp {
  font-size: clamp(20px, 2.5vw, 25px);
  line-height: 1.1;
}

.side__contact-item-sp {
  width: 60px;
  height: 100%;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  /* サイズを縮小しない */
  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;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .side__contact-item-sp {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

.side__contact-item-sp--green {
  background-color: #06c755;
  display: table;
}

@media (any-hover: hover) {
  .side__contact-item-sp--green:hover {
    opacity: 0.7;
  }
}

.side__contact-item-sp--red {
  background-color: #f7b1cb;
  display: table;
}

@media (any-hover: hover) {
  .side__contact-item-sp--red:hover {
    opacity: 0.7;
  }
}

@media (any-hover: hover) {
  .side__contact-item-sp:hover {
    margin-left: 0;
  }
}

.side__contact-link-sp {
  display: table-cell;
  width: 100%;
  height: 100%;
  text-align: center;
  vertical-align: middle;
}

/*---------------------------
fv
---------------------------*/
.fv__wapper {
  width: calc(100% - 100px);
  max-width: 1480px;
  margin-inline: auto;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: end;
  -ms-flex-pack: end;
  justify-content: end;
  -webkit-padding-before: 180px;
  padding-block-start: 180px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

@media only screen and (max-width: 1350px) {
  .fv__wapper {
    width: calc(100% - 100px);
  }
}

@media screen and (max-width: 767px) {
  .fv__wapper {
    width: 100%;
    -webkit-padding-before: 60px;
    padding-block-start: 60px;
  }
}

@media screen and (max-width: 440px) {
  .fv__wapper {
    width: 100%;
  }
}

.fv__img-wapper,
.fv__img {
  width: clamp(300px, 75vw, 1090px);
  /* レスポンシブで幅を調整 */
  height: clamp(200px, 120vw, 660px);
  /* 高さも同様に調整 */
  -o-object-fit: cover;
  object-fit: cover;
  object-position: top;
  border-radius: 19.5px;
}

@media screen and (max-width: 767px) {

  .fv__img-wapper,
  .fv__img {
    width: 100%;
  }

  .fv__img-wapper,
  .fv__img {
    border-radius: 0px;
  }
}

.fv__img-wapper {
  -webkit-margin-end: 55px;
  margin-inline-end: 55px;
}

@media screen and (max-width: 767px) {
  .fv__img-wapper {
    -webkit-margin-end: 0px;
    margin-inline-end: 0px;
  }
}

.fv__container {
  width: 100%;
  max-width: 100%;
  position: absolute;
  top: 60%;
  left: 0px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 2;
}

@media only screen and (max-width: 1350px) {
  .fv__container {
    left: 0;
  }
}

@media only screen and (max-width: 1150px) {
  .fv__container {
    top: 83%;
  }
}

@media screen and (max-width: 1024px) {
  .fv__container {
    top: 85%;
  }
}

@media screen and (max-width: 767px) {
  .fv__container {
    top: 85%;
    left: 20px;
    width: calc(100% - 25px);
  }
}

@media screen and (max-width: 440px) {
  .fv__container {
    top: 85%;
    left: 10px;
    width: calc(100% - 10px);
  }
}

.fv__heading-item {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.fv__heading {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: clamp(20px, 5vw, 36.9px);
  /* レスポンシブなフォントサイズ */
  font-weight: bold;
  line-height: 1.4;
  position: relative;
  text-shadow: -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff, 2px 2px 0 #fff, 0px -2px 0 #fff, 0px 2px 0 #fff, -2px 0px 0 #fff, 2px 0px 0 #fff;
  -webkit-transform: skewX(-5deg);
  transform: skewX(-5deg);
}

.fv__heading-color {
  color: #F7B1CB;
}

.fv__title-content {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 20px;
}

@media screen and (max-width: 767px) {
  .fv__title-content {
    -webkit-margin-before: 10px;
    margin-block-start: 10px;
    gap: 10px;
  }
}

.fv__title-text {
  display: inline-block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: clamp(26px, 8vw, 70px);
  /* フォントサイズを調整 */
  font-weight: bold;
  line-height: 1.4;
  background-color: #fff;
  color: #F7B1CB;
  padding-inline: clamp(5px, 3vw, 30px) clamp(5px, 4vw, 30px);
  /* 内側余白を調整 */
  -webkit-clip-path: polygon(1% 0, 100% 0, 99% 100%, 0% 100%);
  clip-path: polygon(1% 0, 100% 0, 99% 100%, 0% 100%);
  -webkit-transform: skewX(-5deg);
  transform: skewX(-5deg);
}

.fv__content {
  width: 100%;
  -webkit-margin-before: 21px;
  margin-block-start: 21px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 23px;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .fv__content {
    gap: 15px;
  }
}

.fv__content-item {
  position: relative;
  width: clamp(80px, 28vw, 226px);
  /* サイズをレスポンシブに調整 */
  height: clamp(80px, 28vw, 226px);
  /* 高さも同様 */
  border-radius: 50%;
  /* background-image: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#FFD64E));
  background-image: -webkit-linear-gradient(top, #FFFFFF 0%, #FFD64E 100%);
  background-image: linear-gradient(to bottom, #FFFFFF 0%, #FFD64E 100%); */
  background-color: #ffdeea;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .fv__content-item {
    width: clamp(80px, 29.5vw, 226px);
    height: clamp(80px, 29.5vw, 226px);
  }
}

.fv__content-item::before {
  content: "";
  position: absolute;
  top: 10px;
  /* 内側10px */
  left: 10px;
  right: 10px;
  bottom: 10px;
  border: 1px solid #ffaeae;
  /* ボーダーの色と幅 */
  border-radius: 50%;
  /* 円形 */
  background-color: transparent;
  /* 透明な背景 */
  z-index: 1;
  /* 他の要素より前に表示 */
  pointer-events: none;
  /* クリックなどに影響しないように */
}

@media screen and (max-width: 767px) {
  .fv__content-item::before {
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
  }
}

.fv__content-text {
  font-size: clamp(12px, 3vw, 25px);
  /* フォントサイズをレスポンシブに調整 */
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 1.12px;
  -webkit-transform: skewX(-7deg);
  transform: skewX(-7deg);
}

.fv__content-text--big {
  font-size: clamp(14px, 5vw, 36px);
  /* 大きなサイズもレスポンシブ対応 */
  line-height: 1.2;
}

.fv__content-text--big.num {
  font-size: clamp(16px, 7.2vw, 50px);
  /* 大きなサイズもレスポンシブ対応 */
  line-height: 1.2;
}

.fv__content-text--medium {
  font-size: clamp(10px, 3.5vw, 30px);
  /* 中間サイズを調整 */
}

@media screen and (max-width: 440px) {
  .fv__content-text {
    line-height: 1.4;
    text-wrap: balance;
    text-align: center;
  }
}

.fv__scrolldown {
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  position: absolute;
  bottom: 10px;
  right: 20px;
  gap: 5px;
}

@media only screen and (max-width: 1023px) {
  .fv__scrolldown {
    bottom: 0;
  }
}

@media screen and (max-width: 1024px) {
  .fv__scrolldown {
    bottom: 100px;
  }
}

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

.fv__scrolldown-text {
  font-size: 0.625rem;
  line-height: 1.6;
}

.fv__scrolldown-bar {
  position: relative;
}

.fv__scrolldown-bar span {
  display: inline-block;
}

.fv__scrolldown-bar .bar {
  width: 2px;
  height: 70px;
  background: #444444;
}

.fv__scrolldown-bar .circle {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50%;
  width: 10px;
  height: auto;
  aspect-ratio: 1;
  background-color: #444444;
  border-radius: 50%;
  -webkit-animation: 2s ease-in-out backwards infinite scrollDown;
  animation: 2s ease-in-out backwards infinite scrollDown;
}

@-webkit-keyframes scrollDown {
  0% {
    top: 0;
    opacity: 1;
  }

  80% {
    top: 60px;
    opacity: 0.5;
  }

  100% {
    top: 60px;
    opacity: 0.3;
  }
}

@keyframes scrollDown {
  0% {
    top: 0;
    opacity: 1;
  }

  80% {
    top: 60px;
    opacity: 0.5;
  }

  100% {
    top: 60px;
    opacity: 0.3;
  }
}

/*---------------------------
concept
---------------------------*/
.concept {
  width: 100%;
  padding-top: 100px;
  margin-top: 40px;
}

@media only screen and (max-width: 1150px) {
  .concept {
    padding-top: 210px;
  }
}

@media screen and (max-width: 1024px) {
  .concept {
    padding-top: 80px;
    margin-top: 100px;
  }
}

@media screen and (max-width: 767px) {
  .concept {
    padding-top: 60px;
    margin-top: 60px;
  }
}

.concept__inner {
  width: calc(100% - 25px);
  -webkit-padding-end: 25px;
  padding-inline-end: 25px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 80px;
  color: #333333;
}

@media only screen and (max-width: 1250px) {
  .concept__inner {
    gap: 40px;
  }
}

@media only screen and (max-width: 1179px) {
  .concept__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

@media screen and (max-width: 767px) {
  .concept__inner {
    gap: 40px;
    width: 100%;
    -webkit-padding-end: 0;
    padding-inline-end: 0;
  }
}

.concept__img-wapper {
  width: 100%;
  /* 親要素の幅を全幅にする場合 */
  min-width: 660px;
  /* 必要に応じて制限 */
  height: 638px;
  border-radius: 0 320px 80px 0;
  overflow: hidden;
  /* 画像がはみ出ないようにする */
}

@media screen and (max-width: 1024px) {
  .concept__img-wapper {
    width: 80%;
    height: auto;
  }
}

@media screen and (max-width: 767px) {
  .concept__img-wapper {
    width: 100%;
    min-width: auto;
    height: 360px;
    border-radius: 0;
  }
}

.concept__img {
  width: 102%;
  /* 親要素にフィット */
  height: 100%;
  /* 親要素にフィット */
  -o-object-fit: cover;
  object-fit: cover;
  /* 親要素内で画像をカバー */
  -o-object-position: right top;
  object-position: right top;
  /* 右上を基準に表示 */
  border-radius: 0 40px 40px 0;
}

@media only screen and (max-width: 1179px) {
  .concept__img {
    height: 650px;
  }
}

@media screen and (max-width: 767px) {
  .concept__img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    margin-left: -35px;
    overflow: hidden;
    border-radius: 0 140px 40px 0;
  }

}

@media only screen and (max-width: 1179px) {
  .concept__item-wapper {
    width: calc(100% - 50px);
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -webkit-align-items: start;
    -ms-flex-align: start;
    align-items: start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-inline: 25px;
  }
}

@media screen and (max-width: 767px) {
  .concept__item-wapper {
    width: 100%;
    padding-inline: 20px;
  }


}

@media screen and (max-width:1380px) {
  figure.concept__img-wapper {
    width: 50%;
  }

  .concept__inner {
    gap: 40px;
  }
}

@media screen and (max-width: 1180px) {
  figure.concept__img-wapper {
    width: 100%;
  }
}

.concept__heading {
  -webkit-margin-before: 16px;
  margin-block-start: 16px;
}

.concept__title {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(30px, 7vw, 35px);
  line-height: 1.4;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .concept__title {
    font-size: clamp(24px, 5vw, 20px);
  }
}

.concept__text-wapper {
  width: 100%;
}

@media only screen and (max-width: 1250px) {
  .concept__text-wapper {
    width: 100%;
    padding-inline: 0;
    -webkit-padding-before: 40px;
    padding-block-start: 40px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

@media screen and (max-width: 767px) {
  .concept__text-wapper {
    -webkit-padding-before: 20px;
    padding-block-start: 20px;
  }
}


.concept__text {
  width: 100%;
  max-width: 640px;
  display: inline-block;
  -webkit-margin-before: 14px;
  margin-block-start: 14px;
  font-size: 1rem;
  line-height: 2;
  font-weight: bold;
}

@media only screen and (max-width: 1250px) {
  .concept__text {
    max-width: 90%;
  }
}

@media screen and (max-width: 767px) {
  .concept__text {
    max-width: 100%;
    font-size: 0.95rem;
  }
}

/*---------------------------
point
---------------------------*/
.point {
  width: 100%;
  padding-top: 100px;
  padding-bottom: 120px;
  background: linear-gradient(to right, #fff8f8 65%, #ffffff 35%);
}

@media screen and (max-width: 767px) {
  .point {
    padding-top: 60px;
    padding-bottom: 80px;
  }
}

.point span.logoname {
  font-family: "Libre Franklin", sans-serif;
  color: #1B98D2;
  margin-left: 10px;
  font-weight: 900;
}

.point__bg {
  display: inline-block;
  width: 100%;
  height: auto;
  position: relative;
}

/* .point__bg::before {
  display: inline-block;
  content: "";
  position: absolute;
  top: -175px;
  left: 0;
  width: 100%;
  height: 125%;
  background: -webkit-gradient(linear, left top, right top, color-stop(60%, #f2fcff), color-stop(50%, #ffffff));
  background: -webkit-linear-gradient(left, #f2fcff 60%, #ffffff 50%);
  background: linear-gradient(to right, #f2fcff 60%, #ffffff 50%);
  z-index: -5;
} */

.point__inner {
  width: calc(100% - 100px);
  max-width: 1180px;
  margin-inline: auto;
}

.point__inner img.concept__icon {
  width: 36px;
}

@media screen and (max-width: 1024px) {
  .point__inner {
    width: calc(100% - 50px);
    padding-inline: 0;
  }
}

@media screen and (max-width: 767px) {
  .point__inner {
    width: 100%;
    padding-inline: 20px;
  }

  .point__inner img.concept__icon {
    width: 24px;
  }

}

.point__heading {
  -webkit-margin-before: 16px;
  margin-block-start: 16px;
}

.point__title {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(30px, 6.5vw, 34px);
  line-height: 1.4;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .point__title {
    font-size: clamp(20px, 4.5vw, 21px);
  }
}

.point__wapper {
  width: 100%;
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 50px;
}

/*---------------------------
merit
---------------------------*/
.home .merit {
  width: 100%;
  /* height: 966px;
  background-image: url("../images/merit-bg.webp"); */
  background-size: cover;
  border-radius: 35px;
  position: relative;
  margin-top: 100px;
  padding-bottom: 100px;
}

@media only screen and (max-width: 1295px) {
  .merit {
    height: auto;
    -webkit-padding-after: 50px;
    padding-block-end: 50px;
  }
}

@media only screen and (max-width: 768px) {
  .home .merit {
    padding-bottom: 0px;
  }
}

.merit::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  /* コンテンツより下に配置 */
  /* background-image: -webkit-gradient(linear, left top, left bottom, from(#016bbe), color-stop(37%, #0190c7), to(#0162be));
  background-image: -webkit-linear-gradient(top, #016bbe 0%, #0190c7 37%, #0162be 100%);
  background-image: linear-gradient(to bottom, #016bbe 0%, #0190c7 37%, #0162be 100%); */
  background-color: #FFF6F6;
  opacity: 0.8;
  /* 半透明 */
  pointer-events: none;
  /* 背景がクリックなどをブロックしない */
  border-radius: 35px 35px 0px 0px;
}

.merit::after {
  display: inline-block;
  content: "SERVICE";
  position: absolute;
  top: 50px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  font-size: clamp(80px, 20vw, 230px);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 18.03px;
  color: #FFA9A9;
  overflow: hidden;
  z-index: 1;
  opacity: 0.2;
  letter-spacing: 1px;
  font-family: "Viga", sans-serif;
  font-weight: 500;
}

@media only screen and (max-width: 1023px) {
  .merit::after {
    width: 100%;
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  .merit::after {
    font-size: 29vw;
    line-height: 1.5;
    letter-spacing: 2px;
  }
}


.merit__inner {
  position: relative;
  z-index: 2;
  padding: 0 20px;
}

.merit__heading-item {
  -webkit-padding-before: 180px;
  padding-block-start: 180px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .merit__heading-item {
    -webkit-padding-before: 80px;
    padding-block-start: 80px;
  }
}

.merit__heading-item .heading-item__top {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.625rem;
  line-height: 1.4;
  font-weight: bold;
  background-color: #1B98D2;
  border-radius: 18px;
  padding-inline: 25px;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .merit__heading-item .heading-item__top {
    font-size: 1.1rem;
    line-height: 1.8;
  }
}

.merit__heading-item .heading-item__bottom {
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: bold;
  color: #333333;
  text-align: center;
  line-height: 1.7;

}

@media screen and (max-width: 767px) {
  .merit__heading-item .heading-item__bottom {
    font-size: 1.2rem;

  }
}

.merit__wapper {
  width: calc(100% - 50px);
  max-width: 1250px;
  margin-inline: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 10% 2%;
}



@media only screen and (max-width: 1080px) {
  .merit__wapper {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .merit__wapper {
    max-width: 100%;
    gap: 20px;
  }
}

.merit__item {
  width: 23%;
  -webkit-margin-before: 50px;
  margin-block-start: 50px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -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;
  gap: 10px;
  background-color: #fff;
  border-radius: 27px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 40px 25px;
}

@media screen and (max-width: 767px) {
  .merit__item {
    width: 100%;
    -webkit-margin-before: 30px;
    margin-block-start: 30px;
  }
}

@media only screen and (max-width: 687px) {
  .merit__item {
    max-width: unset;
  }
}

.service-01 .merit__img-wapper {
  width: 100%;
  max-width: 106px;
  aspect-ratio: 133 / 141;
}

.service-02 .merit__img-wapper {
  width: 100%;
  max-width: 136px;
  aspect-ratio: 184 / 141;
}

.service-03 .merit__img-wapper {
  width: 100%;
  max-width: 116px;
  aspect-ratio: 134 / 141;
}

.service-04 .merit__img-wapper {
  width: 100%;
  max-width: 116px;
  aspect-ratio: 150 / 141;
}

.service-05 .merit__img-wapper {
  width: 100%;
  max-width: 116px;
  aspect-ratio: 134 / 141;
}

.service-06 .merit__img-wapper {
  width: 100%;
  max-width: 103px;
  aspect-ratio: 144 / 141;
}

.service-07 .merit__img-wapper {
  width: 100%;
  max-width: 153px;
  aspect-ratio: 191 / 141;
}

@media only screen and (max-width: 1080px) {
  .merit__img-wapper {
    max-width: 70px;
  }
}

.merit__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.merit__title {
  font-size: clamp(20px, 6vw, 21px);
  line-height: 1.5;
  font-weight: bold;
  text-align: center;
}

/*---------------------------
voice
---------------------------*/
.voice {
  width: 100%;
  -webkit-margin-before: 250px;
  margin-block-start: 250px;
  position: relative;
}

@media only screen and (max-width: 1260px) {
  .voice {
    -webkit-margin-before: 110px;
    margin-block-start: 110px;
  }
}

/*---------------------------
about
---------------------------*/
.about {
  width: 100%;
  -webkit-margin-before: 110px;
  margin-block-start: 110px;
  position: relative;
}

@media screen and (max-width: 767px) {
  .about {
    -webkit-margin-before: 80px;
    margin-block-start: 80px;
  }
}

.about__bg {
  display: block;
  width: 100%;
  height: 786px;
  background-image: -webkit-gradient(linear, left top, right top, from(#005BBC), color-stop(37%, #0095C7), to(#0062BC));
  background-image: -webkit-linear-gradient(left, #005BBC 0%, #0095C7 37%, #0062BC 100%);
  background-image: linear-gradient(90deg, #005BBC 0%, #0095C7 37%, #0062BC 100%);
  position: absolute;
  -webkit-clip-path: polygon(0 12%, 100% 0, 100% 80%, 0 100%);
  clip-path: polygon(0 12%, 100% 0, 100% 80%, 0 100%);
  top: 0;
  left: 0;
}

@media screen and (max-width: 1024px) {
  .about__bg {
    height: 100%;
    -webkit-clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
    clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
  }
}

.about__inner {
  position: relative;
  z-index: 2;
  width: calc(100% - 50px);
  max-width: 1300px;
  margin-inline: auto;
  padding-inline: 25px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 20px;
}

@media screen and (max-width: 1024px) {
  .about__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
    -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;
  }
}

@media screen and (max-width: 767px) {
  .about__inner {
    width: 100%;
    gap: 0;
  }
}

.about__body {
  width: 100%;
  -webkit-padding-before: 188px;
  padding-block-start: 188px;
}

@media screen and (max-width: 1024px) {
  .about__body {
    -webkit-padding-before: 50px;
    padding-block-start: 50px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -webkit-align-items: start;
    -ms-flex-align: start;
    align-items: start;
    -webkit-padding-start: 100px;
    padding-inline-start: 100px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
}

@media screen and (max-width: 767px) {
  .about__body {
    margin-inline: auto;
    width: 100%;
    -webkit-padding-before: 30px;
    padding-block-start: 30px;
    -webkit-padding-start: 0;
    padding-inline-start: 0;
  }
}

.about__heading {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: clamp(20px, 5vw, 27px);
  line-height: 1.6;
  font-weight: bold;
  background-color: #fff;
  border-radius: 5.6px;
  padding-inline: 10px;
  color: #1F7BB7;
}

.about__title {
  -webkit-margin-before: 14px;
  margin-block-start: 14px;
  font-size: clamp(24px, 4vw, 46px);
  line-height: 1.4;
  font-weight: bold;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .about__title {
    font-size: clamp(20px, 6vw, 30px);
  }
}

.about__text {
  width: 100%;
  max-width: 592px;
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  color: #fff;
}

.about__button {
  -webkit-margin-before: 66px;
  margin-block-start: 66px;
  width: 100%;
  max-width: 498px;
  height: 72px;
  background-color: #fff;
  border-radius: 38px;
  display: grid;
  place-items: center;
  color: #1F7BB7;
  font-size: clamp(20px, 5vw, 27px);
  line-height: 1.6;
  font-weight: bold;
  position: relative;
  border: 2px solid #1F7BB7;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .about__button {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

.about__button::after {
  display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 5px;
  left: 4px;
  background-color: #fff;
  z-index: -1;
  border-radius: 38px;
}

@media (any-hover: hover) {
  .about__button:hover {
    background-color: #1F7BB7;
    color: #fff;
    -webkit-box-shadow: #1b98d2 5px 7px 5px 0;
    box-shadow: #1b98d2 5px 7px 5px 0;
  }
}

@media screen and (max-width: 1024px) {
  .about__button {
    -webkit-margin-before: 30px;
    margin-block-start: 30px;
    max-width: 60%;
    height: 58px;
    font-size: clamp(14px, 4.5vw, 19px);
    line-height: 1.4;
  }
}

@media screen and (max-width: 767px) {
  .about__button {
    max-width: 80%;
  }
}

@media screen and (max-width: 440px) {
  .about__button {
    max-width: 90%;
  }
}

.about__media-wapper {
  width: 100%;
  max-width: 641px;
  height: 631px;
  overflow: hidden;
}

@media screen and (max-width: 1024px) {
  .about__media-wapper {
    width: 80%;
    height: auto;
    aspect-ratio: 16/9;
    max-width: none;
  }
}

@media screen and (max-width: 767px) {
  .about__media-wapper {
    width: 100%;
    aspect-ratio: 4/3;
  }
}

.about__media-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 20px;
}

@media screen and (max-width: 1024px) {
  .about__media-img {
    -o-object-position: left top;
    object-position: left top;
    border-radius: 20px;
  }
}

/*---------------------------
flow
---------------------------*/
/* セクション全体 */
.flow-section {
  padding: 80px 20px 60px;
  background: #fff;
  max-width: 1180px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .flow-section {
    padding: 60px 20px 20px;
  }
}

.flow-section img.concept__icon_red {
  width: 26px;
}

/* 左右2カラム */
.flow-container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin: 0 auto;
  align-items: flex-start;
}

/* 左画像 */
.flow-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* 右コンテンツ */
.flow-content {
  flex: 1;
  min-width: 300px;
}

/* ラベル */
.flow-label {
  color: #ff7492;
  font-weight: bold;
  margin-bottom: 5px;
  font-size: 14px;
  letter-spacing: 0.1em;
}

h2.flow__title {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(30px, 6.5vw, 30px);
  line-height: 1.4;
  font-weight: bold;
  margin-bottom: 10px;
}

/* タイトル */
.flow-title {
  font-size: 24px;
  margin-bottom: 10px;
  font-weight: bold;
}

/* 説明文 */
.flow-description {
  margin-bottom: 30px;

}

/* ステップ一覧 */
.flow-list {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* 各ステップ */
.flow-list li {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 60px;
  position: relative;
  align-items: center;
}

/* サークル番号 */
.circle {
  flex-shrink: 0;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 1px solid #ff7492;
  color: #ff7492;
  text-align: center;
  line-height: 66px;
  font-weight: bold;
  font-size: 24px;
  background: #fff;
  position: relative;
}

/* 最後だけ赤背景・白字 */
.circle.final {
  background: #ff7492;
  color: #fff;
}

/* ステップ説明文 */
.flow-list li p {
  margin: 0;
  line-height: 1.7;
  font-size: 15px;
  color: #333;
  flex: 1;
}

/* ▼矢印（2段） */
.flow-list li:not(.last)::after,
.flow-list li:not(.last)::before {
  content: "";
  position: absolute;
  left: 25px;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 13px solid #ff7492;
}

.flow-list li:not(.last)::after {
  bottom: -42px;
}

.flow-list li:not(.last)::before {
  bottom: -30px;
  border-top: 13px solid #ffcdc9;
}

.flow-image {
  width: 40%;
}

@media screen and (max-width: 767px) {
  .flow-image {
    width: 100%;
  }
}

/*---------------------------
faq
---------------------------*/
.faq {
  width: 100%;
  position: relative;
  background: #FFF6F6;
  padding-top: 100px;
}

@media screen and (max-width: 1280px) {
  .faq {
    padding: 100px 20px;
  }

}

@media screen and (max-width: 767px) {
  .faq {
    padding: 60px 20px;
  }

}

.faq__contents {
  max-width: 1180px;
  margin: 0 auto;
}

.faq__contents img.concept__icon_red {
  width: 23px;
}

.u-bg__dark-blue.faq--bg {
  -webkit-clip-path: polygon(0 10%, 100% 0, 100% 100%, 0% 100%);
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0% 100%);
  -webkit-margin-before: -135px;
  margin-block-start: -135px;
  -webkit-padding-after: 60px;
  padding-block-end: 60px;
}

.faq__heading {
  -webkit-padding-before: 100px;
  padding-block-start: 100px;
}

@media screen and (max-width: 767px) {
  .faq__heading {
    -webkit-padding-before: 150px;
    padding-block-start: 150px;
  }
}

.faq__inner {
  margin-block-start: 30px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 20px;
}

@media only screen and (max-width: 1280px) {
  .faq__contents {}
}

@media screen and (max-width: 767px) {
  .faq__inner {
    width: 100%;
    -webkit-margin-before: 30px;
    margin-block-start: 30px;
    padding-inline: 0px;
  }
}

.faq__items {
  background: #1B98D2;
  border-radius: 18px;
}

.faq__item {
  font-size: clamp(14px, 2.5vw, 19px);
  line-height: 1.3;
}

.faq__question {
  padding-block: 20px 24px;
  position: relative;
  cursor: pointer;
}

.faq__question::before,
.faq__question::after {
  content: "";
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  background: #fff;
}

.faq__question::before {
  right: 20px;
  width: 20px;
  height: 2px;
}

.faq__question::after {
  right: 29px;
  width: 2px;
  height: 20px;
}

.faq__question p {
  padding-inline: 47px 50px;
  color: #fff;
  -webkit-padding-start: 70px;
  padding-inline-start: 70px;
  font-size: clamp(14px, 2.5vw, 19px);
  line-height: 1.4;
  font-weight: 700;
}

.faq__question p::before {
  display: inline-block;
  content: "Q.";
  position: absolute;
  top: 43%;
  left: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  font-size: 1.6rem;
  line-height: 1.6;
  font-weight: 500;
  color: #fff;
  -webkit-padding-start: 25px;
  padding-inline-start: 25px;
}

.faq__answer {
  display: none;
  padding-block: 18px 20px;
  background-color: #fff;
  border-radius: 17.5px;
  font-size: 0.9375rem;
  line-height: 1.6;
  font-weight: 600;
  position: relative;
  padding-inline: 70px 50px;
}

.faq__answer::before {
  content: "A.";
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #1b98d2;
  font-weight: 500;
  -webkit-padding-start: 32px;
  padding-inline-start: 32px;
}

/*---------------------------
contact
---------------------------*/
.contact {
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-padding-before: 100px;
  padding-block-start: 100px;
  padding-block-end: 100px;
  background: #FFF6F6;
}

@media screen and (max-width: 767px) {
  .contact {
    -webkit-padding-before: 40px;
    padding-block-start: 40px;
  }
}

.contact__inner {
  width: calc(100% - 50px);
  max-width: 1180px;
  height: 501px;
  margin-inline: auto;
  padding-inline: 25px;
  /* background-image: url("../images/contact-bg.png"); */
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  border-radius: 50px;
  position: relative;
}

.contact__inner::before {
  content: "";
  position: absolute;
  border-radius: 50px;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #1B98D2;
  opacity: 0.9;
  /* 半透明 */
  pointer-events: none;
  /* 背景がクリックなどをブロックしない */
}

@media screen and (max-width: 1024px) {
  .contact__inner {
    height: auto;
    padding-block: 50px;
  }
}

@media screen and (max-width: 767px) {
  .contact__inner {
    width: 100%;
    padding-inline: 20px;
  }
}

.contact__wapper {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.contact__heading {
  color: #fff;
  text-align: center;
}

.contact__heading-en {
  display: inline-block;
  font-size: clamp(14px, 2.5vw, 19px);
  font-weight: bold;
  line-height: 1.6;
  background-color: #fff;
  border-radius: 17.5px;
  padding-inline: 10px;
  color: #1F7BB7;
}

.contact__heading-ja {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(26px, 5vw, 40px);
  line-height: 1.4;
  font-weight: bold;
  color: #fff;
}

.contact__heading-text {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: 0.9375rem;
  line-height: 1.6;
  font-weight: 500;
  color: #fff;
}

.contact__item {
  width: 100%;
  max-width: 1042px;
  height: 242px;
  margin-inline: auto;
  -webkit-margin-before: 30px;
  margin-block-start: 30px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 36px;
  background-color: #fff;
  border-radius: 20px;
}

@media screen and (max-width: 1024px) {
  .contact__item {
    width: calc(100% - 50px);
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    height: auto;
    padding: 25px;
  }
}

@media screen and (max-width: 767px) {
  .contact__item {
    width: 100%;
    gap: 15px;
  }
}

.contact__tel-wapper {
  text-align: center;
}

.contact__tel-wapper .contact__tel {
  display: inline-block;
  width: 100%;
  font-size: clamp(32px, 5vw, 45px);
  line-height: 1.4;
  font-weight: bold;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .contact__tel-wapper .contact__tel {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .contact__tel-wapper .contact__tel:hover {
    opacity: 0.7;
  }
}

.contact__tel-wapper .cotact__tel-item {
  display: inline-block;
  background-image: url(../images/tel.svg);
  width: 35px;
  height: 35px;
  background-size: contain;
  background-repeat: no-repeat;
  -webkit-margin-end: 0px;
  margin-inline-end: 0px;
  vertical-align: -1px;
}

@media screen and (max-width: 767px) {
  .contact__tel-wapper .cotact__tel-item {
    -webkit-margin-end: 0;
    margin-inline-end: 0;
    width: 28px;
    height: 28px;
  }
}

.contact__content-text {
  font-size: clamp(12px, 2vw, 15px);
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .contact__content-text {
    text-align: center;
  }
}

.contact__btn-wapper {
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
}

@media screen and (max-width: 1024px) {
  .contact__btn-wapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

.content__btn {
  display: block;
  width: 100%;
  min-width: 247px;
  height: 72px;
  color: #fff;
  border-radius: 3px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 10px;
  font-size: clamp(14px, 2.5vw, 19px);
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .content__btn {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .content__btn:hover {
    opacity: 0.8;
  }
}

.content__btn--line {
  background-color: #06C755;
}

.content__btn--mail {
  background-color: #ff7492;
}

@media screen and (max-width: 767px) {
  .content__btn {
    min-width: 180px;
    height: 50px;
  }
}

.contact__icon {
  display: inline-block;
  vertical-align: middle;
  width: 24px;
  height: 24px;
  color: #fff;
}

.contact__content-text {
  -webkit-margin-before: 15px;
  margin-block-start: 15px;
  font-size: 0.9375rem;
  line-height: 1.5;
}

/*---------------------------
form
---------------------------*/
.form {
  position: relative;
}

@media screen and (max-width: 767px) {
  .form {
    margin-top: 0px;
  }
}

.form__container {
  width: 100%;
  height: 100%;
  padding-top: 110px;
  -webkit-padding-after: 110px;
  padding-block-end: 110px;
  background: #1b98d2;
}

@media screen and (max-width: 767px) {
  .form__container {
    padding-top: 80px;
    -webkit-padding-after: 80px;
    padding-block-end: 80px;
  }
}

.form__inner {
  width: calc(100% - 50px);
  max-width: 1300px;
  margin-inline: auto;
  padding-inline: 0;
}

@media screen and (max-width: 767px) {
  .form__inner {
    width: calc(100% - 40px);
  }
}

.form__heading {
  text-align: center;
  color: #fff;
  -webkit-padding-before: 77px;
  padding-block-start: 77px;
}

@media screen and (max-width: 767px) {
  .form__heading {
    -webkit-padding-before: 0;
    padding-block-start: 0;
  }
}

.form__title {
  font-size: clamp(26px, 6vw, 45px);
  line-height: 1.6;
  font-weight: bold;
  letter-spacing: 2.75px;
}

.form__title-item {
  display: inline-block;
  width: 51px;
  -webkit-margin-end: 23px;
  margin-inline-end: 23px;
}

@media screen and (max-width: 767px) {
  .form__title-item {
    -webkit-margin-end: 10px;
    margin-inline-end: 10px;
    width: 40px;
  }
}

@media screen and (max-width: 440px) {
  .form__title-item {
    width: 30px;
  }
}

.form__subtitle {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(13px, 2.5vw, 19px);
  line-height: 1.7;
  font-weight: 500;
  letter-spacing: 0.4px;
}

.form__wapper {
  width: 100%;
  max-width: 1042px;
  height: 100%;
  margin-inline: auto;
  -webkit-margin-before: 24px;
  margin-block-start: 24px;
  padding-block: 67px;
  background-color: #fff;
  border-radius: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

@media screen and (max-width: 767px) {
  .form__wapper {
    max-width: 100%;
    width: 100%;
    padding-inline: 25px;
    padding-block: 40px;
  }
}

@media screen and (max-width: 440px) {
  .form__wapper {
    width: 100%;
    padding-inline: 15px;
  }
}

.form__group {
  width: 100%;
  max-width: 810px;
  margin-inline: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding-block: 20px;
  border-width: 0 0 1px 0;
  /* 下側だけにボーダー */
  border-style: solid;
  border-image-source: linear-gradient(to right, #1b98d2 214px, #e7eaf4 214px);
  border-image-slice: 1;
  /* 下方向だけ適用する場合も全体を1に */
}

.form__group:first-child {
  -webkit-padding-before: 0;
  padding-block-start: 0;
}

@media screen and (max-width: 1024px) {
  .form__group {
    max-width: none;
    width: calc(100% - 50px);
    margin-inline: 25px;
    padding-block: 15px;
    border-image-source: linear-gradient(to right, #1b98d2 150px, #e7eaf4 150px);
  }
}

@media screen and (max-width: 767px) {
  .form__group {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    border-image-source: linear-gradient(to right, #1b98d2 100%, #e7eaf4 100%);
    margin-inline: 0;
    width: 100%;
  }
}

@media screen and (max-width: 440px) {
  .form__group {
    width: 100%;
    margin-inline: auto;
  }
}

.form__label {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 214px;
  -ms-flex: 0 0 214px;
  flex: 0 0 214px;
  /* 固定幅で伸縮しない */
  font-size: 1.0625rem;
  line-height: 2.8;
  font-weight: bold;
}

@media screen and (max-width: 1024px) {
  .form__label {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 150px;
    -ms-flex: 0 0 150px;
    flex: 0 0 150px;
    font-size: 0.8125rem;
  }
}

@media screen and (max-width: 767px) {
  .form__label {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    -webkit-margin-after: 10px;
    margin-block-end: 10px;
  }
}

.wpcf7-form-control-wrap {
  /* all: unset; */
  display: block;
}

.wpcf7-spinner {
  display: none;
}

span.wpcf7-not-valid-tip {
  color: #ff2c2c;
  -webkit-margin-start: 24px;
  margin-inline-start: 24px;
}

.form__input {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  /* 固定幅で伸縮しない */
  max-width: 233px;
  width: calc(100% - 40px);
  min-height: 35px;
  height: calc(100% - 10px);
  font-size: 1rem;
  line-height: 1.2;
  -webkit-margin-start: 24px;
  margin-inline-start: 24px;
  padding: 14px 20px;
  background-color: #f7f7f7;
  border-radius: 5px;
}

[data-name="your-message"] {
  width: 100%;
}


@media screen and (max-width: 767px) {
  .form__input {
    max-width: 90%;
    min-height: 50px;
    -webkit-margin-start: 0;
    margin-inline-start: 0;
  }
}

@media screen and (max-width: 440px) {
  .form__input {
    max-width: 100%;
  }
}

.form__textarea {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  /* 固定幅で伸縮しない */
  width: calc(100% - 40px);
  min-height: 121px;
  height: auto;
  font-size: 1rem;
  line-height: 1.2;
  -webkit-margin-start: 24px;
  margin-inline-start: 24px;
  padding: 10px 20px;
  background-color: #f7f7f7;
  resize: vertical;
  border-radius: 5px;
}

@media screen and (max-width: 767px) {
  .form__textarea {
    -webkit-margin-start: 0;
    margin-inline-start: 0;
    max-width: 90%;
    min-height: 50px;
  }
}

@media screen and (max-width: 440px) {
  .form__textarea {
    -webkit-margin-start: 0;
    margin-inline-start: 0;
    max-width: 100%;
    width: 100%;
  }
}

.form__agree-wapper {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  /* 固定幅で伸縮しない */
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-margin-start: 24px;
  margin-inline-start: 24px;
}

@media screen and (max-width: 440px) {
  .form__agree-wapper {
    -webkit-margin-start: 0;
    margin-inline-start: 0;
  }
}

.form__agree-item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

/* 共通スタイル */
/* チェックボックスの基本スタイル */
.wpcf7-form-control.wpcf7-checkbox input[type=checkbox],
.wpcf7-checkbox.form__checkbox-input--mini input[type=checkbox] {
  display: inline-block;
  border: 1px solid #c7c7c7;
  border-radius: 3px;
  cursor: pointer;
  vertical-align: baseline;
  position: relative;
}

/* チェックマークのスタイル */
.wpcf7-form-control.wpcf7-checkbox input[type=checkbox]::after,
.wpcf7-checkbox.form__checkbox-input--mini input[type=checkbox]::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(-45deg);
  transform: translateY(-50%) rotate(-45deg);
  opacity: 0;
  /* 非チェック時は非表示 */
}

/* 通常サイズのチェックボックス */
.wpcf7-form-control.wpcf7-checkbox input[type=checkbox] {
  width: 18px;
  height: 18px;
}

.wpcf7-form-control.wpcf7-checkbox input[type=checkbox]::after {
  width: 12px;
  height: 6px;
  left: 3px;
  border-left: 2px solid #444444;
  /* チェックマークの色 */
  border-bottom: 2px solid #444444;
  /* チェックマークの色 */
}

/* ミニサイズのチェックボックス */
.wpcf7-checkbox.form__checkbox-input--mini input[type=checkbox] {
  width: 14px;
  height: 13px;
  -webkit-margin-end: 7px;
  margin-inline-end: 7px;
}

.wpcf7-checkbox.form__checkbox-input--mini input[type=checkbox]::after {
  width: 8px;
  height: 4px;
  left: 3px;
  border-left: 1.5px solid #444444;
  /* チェックマークの色 */
  border-bottom: 1.5px solid #444444;
  /* チェックマークの色 */
}

/* チェックされた場合のスタイル */
.wpcf7-form-control.wpcf7-checkbox input[type=checkbox]:checked::after,
.wpcf7-checkbox.form__checkbox-input--mini input[type=checkbox]:checked::after {
  opacity: 1;
}

/* エラーメッセージや関連メッセージを表示するスタイル */
.form__message {
  display: none;
  /* デフォルトは非表示 */
  color: red;
  /* エラーの色 */
  font-size: 14px;
}

.wpcf7-form-control.wpcf7-checkbox input[type=checkbox]:checked+.form__message {
  display: block;
  /* チェック時に表示 */
}

.form__agree-text {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.2;
  -webkit-margin-start: 10px;
  margin-inline-start: 10px;
}

.form__agree-detail {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: 0.75rem;
  line-height: 1.4;
}

.form__privacy-item {
  width: calc(100% - 40px);
  max-width: 810px;
  height: 141px;
  padding-inline: 15px;
  padding-block-start: 10px;
  overflow-y: scroll;
  margin-inline: auto;
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  font-size: 0.8rem;
  line-height: 1.5;
  border: 1px solid #e6e6e6;
}

p.form__privacy-text {
  margin-bottom: 10px;
}

h3.form__privacy-text {
  font-weight: bold;
  margin-bottom: 5px;
}

.form__privacy-item ul {
  margin-bottom: 10px;
}

.form__privacy-item li {
  padding-left: 14px;
  position: relative;
}

.form__privacy-item li:before {
  content: "・";
  top: 0;
  position: absolute;
  left: 0;
}

@media screen and (max-width: 1024px) {
  .form__privacy-item {
    max-width: 70%;
    width: 100%;

  }
}

@media screen and (max-width: 767px) {
  .form__privacy-item {
    max-width: 100%;
  }
}

.form__privacy-tex {
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
}

.form__privacy .form__checkbox {
  width: 100%;
  text-align: center;
  display: block;
  -webkit-margin-before: 28px;
  margin-block-start: 28px;
  font-size: 0.875rem;
  line-height: 1.4;
}

.form__action {
  width: 267px;
  height: 50px;
  margin-inline: auto;
  -webkit-margin-before: 23px;
  margin-block-start: 23px;
  display: grid;
  place-items: center;
  background: #1b98d2;
  color: #fff;
  border-radius: 25px;
  font-size: 0.875rem;
  line-height: 1.4;
  cursor: pointer;
}

.form__action input {
  border-radius: 25px;

}

@media screen and (min-width: 1023px) {
  .form__action {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .form__action:hover {
    opacity: 0.8;
  }
}

@media screen and (max-width: 767px) {
  .form__action {
    width: 90%;
  }
}

/* 全てのエラーメッセージを非表示にする場合 */
ul>li[id^=wpcf7-f6-o1-ve] {
  display: none;
}

/* 全体エラーメッセージを非表示 */
.screen-reader-response {
  display: none;
}

.form-thanks__title {
  text-align: center;
  font-size: 1.4rem;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .form-thanks__title {
    font-size: 1.3rem;
    text-wrap: balance;
  }
}

.form-thanks__text {
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  text-align: center;
  font-size: 1rem;
}

@media screen and (max-width: 767px) {
  .form-thanks__text {
    font-size: 1rem;
  }
}

/*---------------------------
contact
---------------------------*/
.company {
  width: 100%;
  -webkit-padding-before: 110px;
  padding-block-start: 110px;
  -webkit-padding-after: 110px;
  padding-block-end: 110px;
  background-color: #FFF6F6;
}

@media screen and (max-width: 1024px) {
  .company {
    -webkit-padding-before: 80px;
    padding-block-start: 80px;
    -webkit-padding-after: 80px;
    padding-block-end: 80px;
  }
}

.company__inner {
  width: calc(100% - 200px);
  max-width: 1042px;
  height: 100%;
  margin-inline: auto;
  padding-inline: 100px;
  padding-block: 70px 88px;
  background-color: #fff;
  border-radius: 20px;
}

@media screen and (max-width: 1024px) {
  .company__inner {
    max-width: 80%;
    width: calc(100% - 100px);
    padding-inline: 50px;
  }
}

@media screen and (max-width: 767px) {
  .company__inner {
    max-width: 100%;
    width: calc(100% - 26px);
    padding-inline: 20px;
  }
}

.company__heading {
  width: 100%;
}

.company__heading-text {
  display: inline-block;
  -webkit-margin-start: 20px;
  margin-inline-start: 20px;
  font-size: 0.875rem;
  line-height: 1.6;
  font-weight: bold;
  color: #1b98d2;
  position: relative;
}

.company__heading-text::before {
  content: "";
  position: absolute;
  top: 60%;
  left: -10px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  background-color: #1b98d2;
  border-radius: 50%;
}

.company__title {
  -webkit-margin-start: 5px;
  margin-inline-start: 5px;
  font-size: clamp(20px, 3vw, 34px);
  line-height: 1.5;
  font-weight: bold;
}

.company__item-wapper {
  width: 100%;
  -webkit-margin-before: 48px;
  margin-block-start: 48px;
}

.company__item {
  width: 100%;
  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;
  padding-block: 23px;
  border-width: 0 0 1px 0;
  /* 下側だけにボーダー */
  border-style: solid;
  border-image-source: linear-gradient(to right, #1b98d2 214px, #e7eaf4 214px);
  border-image-slice: 1;
  /* 下方向だけ適用する場合も全体を1に */
}

@media screen and (max-width: 767px) {
  .company__item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -webkit-align-items: start;
    -ms-flex-align: start;
    align-items: start;
    border-image-source: linear-gradient(to right, #1b98d2 100%, #e7eaf4 100%);
    padding-block: 15px;
  }
}

.company__item-title {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 214px;
  -ms-flex: 0 0 214px;
  flex: 0 0 214px;
  /* 固定幅で伸縮しない */
  line-height: 1.4;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .company__item-title {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    -webkit-margin-after: 5px;
    margin-block-end: 5px;
  }
}

.company__item-text {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  /* 残りの幅を使う */
  line-height: 1.4;
  padding-inline: 23px;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .company__item-text {
    padding-inline: 0;
  }
}

/*---------------------------
title
---------------------------*/
.c-heading {
  color: #1B98D2;
  font-size: clamp(16px, 2.5vw, 21px);
  font-weight: bold;
  line-height: 1.6;
}

.c-heading-icon {
  display: inline-block;
  -webkit-padding-end: 10px;
  padding-inline-end: 10px;
}

.c-global__heading {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -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;
  gap: 13px;
}

.c-global__heading-en {
  display: inline-block;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#016bbe), color-stop(37%, #0190c7), to(#0162be));
  background-image: -webkit-linear-gradient(top, #016bbe 0%, #0190c7 37%, #0162be 100%);
  background-image: linear-gradient(to bottom, #016bbe 0%, #0190c7 37%, #0162be 100%);
  color: #fff;
  font-size: clamp(14px, 2vw, 19px);
  font-weight: bold;
  line-height: 1.6;
  border-radius: 17.5px;
  padding: 2px 15px;
}

.c-global__heading-ja {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: bold;
  line-height: 1.4;
}

/*---------------------------
text
---------------------------*/
.c-localText {
  font-size: clamp(14px, 2vw, 17px);
  line-height: 1.6;
  letter-spacing: 0.85px;
}

.c-glovalText {
  font-size: clamp(12px, 1.5vw, 15px);
  line-height: 1.6;
}

/*---------------------------
sns
---------------------------*/
.p-sns {
  /* -webkit-margin-start: 26px;
  margin-inline-start: 26px; */
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 12px;
}

@media screen and (max-width: 767px) {
  .p-sns {
    gap: 5px;
    -webkit-margin-start: 0px;
    margin-inline-start: 0px;
  }
}

.p-sns__tiktok,
.p-sns__instagram {
  display: inline-block;
  width: 32px;
  height: 32px;
  cursor: pointer;
  -webkit-transition: all 0.3;
  transition: all 0.3;
}

@media (any-hover: hover) {

  .p-sns__tiktok:hover,
  .p-sns__instagram:hover {
    rotate: 10deg;
  }
}

@media screen and (max-width: 767px) {

  .p-sns__tiktok,
  .p-sns__instagram {
    width: 25px;
    height: 25px;
  }
}

.p-sns__tiktok img,
.p-sns__instagram img {
  width: 100%;
  height: 100%;
}

/*---------------------------
media
---------------------------*/
.point__media {
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 44px;
}

@media screen and (max-width: 1024px) {
  .point__media {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
  }
}

@media screen and (max-width: 767px) {
  .point__media {
    gap: 13px;
    -webkit-box-align: start;
    -webkit-align-items: start;
    -ms-flex-align: start;
    align-items: start;
  }
}

.p-media__img-wapper {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  aspect-ratio: 520/317;
  border-radius: 8px;
  overflow: hidden;
  -webkit-flex-shrink: 1;
  -ms-flex-negative: 1;
  flex-shrink: 1;
}

@media only screen and (max-width: 1250px) {
  .p-media__img-wapper {
    max-width: 55%;
    aspect-ratio: 16/9;
    -webkit-flex-shrink: 1;
    -ms-flex-negative: 1;
    flex-shrink: 1;
  }
}

@media screen and (max-width: 767px) {
  .p-media__img-wapper {
    max-width: 100%;
    aspect-ratio: 16/9;
  }
}

.p-media__img-wapper .p-media__img {
  width: 100%;
  max-width: 520px;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}


@media screen and (max-width: 1024px) {
  .p-media__img-wapper .p-media__img {
    width: 100%;
    max-width: unset;
  }

  .p-media__img-wapper {
    max-width: unset;
  }
}

.p-media__body {
  width: 100%;
  max-width: 620px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 20px;
}

@media only screen and (max-width: 1250px) {
  .p-media__body {
    max-width: 100%;
    gap: 13px;
  }
}

@media screen and (max-width: 1024px) {
  .p-media__body {
    display: contents;
  }
}

.p-media__heading {
  font-size: clamp(20px, 6vw, 32px);
  line-height: 1.4;
  font-weight: bold;
}

@media screen and (max-width: 1024px) {
  .p-media__heading {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -ms-flex-order: -1;
    order: -1;
  }
}

@media screen and (max-width: 767px) {
  .p-media__heading {
    text-wrap: balance;
  }
}

.p-media__number {
  font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Yu Gothic", YuGothic, Verdana, Meiryo, sans-serif;
  font-size: clamp(60px, 6vw, 75px);
  line-height: 1.2;
  font-weight: bold;
  color: #1B98D2;
  -webkit-transform: skewX(-10deg);
  transform: skewX(-10deg);
  display: block;
  font-weight: 900;
}

@media screen and (max-width: 1024px) {
  .p-media__number {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -ms-flex-order: -1;
    order: -1;
    display: inline-block;
    -webkit-margin-end: 20px;
    margin-inline-end: 20px;
  }
}

@media screen and (max-width: 767px) {
  .p-media__number {
    display: block;
  }
}

@media only screen and (max-width: 1250px) {
  .p-media__text.c-localText {
    font-size: clamp(14px, 2vw, 16px);
    font-weight: 500;
    line-height: 1.8;
  }
}

@media screen and (max-width: 1024px) {
  .p-media__text.c-localText {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .p-media__text.c-localText {
    width: 100%;
  }
}

@media screen and (max-width: 440px) {
  .p-media__text.c-localText {
    width: 100%;
  }
}

/*---------------------------
color
---------------------------*/
.u-color__red {
  color: #ff7492;
  font-weight: bold;
}

.u-bg__blue {
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: #F2FCFF;
  -webkit-padding-after: 60px;
  padding-block-end: 60px;
}

.u-bg__dark-blue {
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: #F4F7FB;
}

/*---------------------------
header
---------------------------*/
.l-header {
  width: 100%;
  max-width: 100%;
}

.l-header__inner {
  width: 100%;
  max-width: 100%;
  height: 109px;
  position: fixed;
  z-index: 200;
  top: 0;
  left: 0;
  margin-inline: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 80px;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media only screen and (max-width: 1350px) {
  .l-header__inner {
    gap: 20px;
    background-color: #fff;
  }
}

@media only screen and (max-width: 1150px) {
  .l-header__inner {
    gap: 10px;
  }
}

.l-header__logo-inner {
  background-color: #fff;
  width: 100%;
  max-width: 380px;
  height: 100%;
  border-radius: 0 0 40px 0;
  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;
}

@media only screen and (max-width: 1250px) {
  .l-header__logo-inner {
    width: calc(100% - 15px);
    -webkit-padding-start: 15px;
    padding-inline-start: 15px;
    max-width: 330px;
  }
}

.l-header__logo-link {
  display: block;
  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;
  cursor: pointer;
  overflow: hidden;
}

@media screen and (min-width: 1023px) {
  .l-header__logo-link {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .l-header__logo-link:hover {
    -webkit-transform: scale(1.03);
    transform: scale(1.03);
  }
}

.l-header__logo-link .logo-img {
  width: 69px;
  height: auto;
  -webkit-padding-start: 10px;
  padding-inline-start: 15px;
  margin-right: 12px;
}

@media only screen and (max-width: 1250px) {
  .l-header__logo-link .logo-img {
    width: 56px;
    height: auto;
    padding-inline-start: 0;
  }
}

.l-header__title {
  font-size: clamp(18px, 2vw, 27px);
  font-weight: bold;
  line-height: 0;
}

.l-header-heading {
  display: block;
  font-size: 0.6875rem;
  line-height: 1;
  margin-bottom: 7px;
}

@media only screen and (max-width: 1250px) {
  .l-header-heading {
    font-size: 0.5625rem;
  }
}

.l-header__sns--sp {
  display: none;
}

.l-header__nav-inner {
  background-color: #fff;
  width: 870px;
  height: 100%;
  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;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: end;
  -webkit-padding-end: 30px;
  padding-inline-end: 30px;
  border-radius: 0 0 0 40px;
  gap: 25px;
}

@media only screen and (max-width: 1440px) {
  .l-header__nav-inner {
    width: calc(100% - 25px);
    -webkit-padding-end: 25px;
    padding-inline-end: 25px;
  }
}

.nav__list {
  -webkit-margin-start: 45px;
  margin-inline-start: 45px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 26px;
}

@media only screen and (max-width: 1440px) {
  .nav__list {
    -webkit-margin-start: 25px;
    margin-inline-start: 25px;
    gap: 15px;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
}

@media only screen and (max-width: 1150px) {
  .nav__list {
    background-color: #fff;
    -webkit-margin-start: 0;
    margin-inline-start: 0;
  }
}

@media screen and (max-width: 767px) {
  .nav__list {
    background-color: #fff;
    -webkit-margin-start: 0;
    margin-inline-start: 0;
  }
}

.nav__item {
  font-size: 0.9375rem;
  font-weight: bold;
  line-height: 1.4;
}

@media only screen and (max-width: 1150px) {
  .nav__item {
    font-size: 0.875rem;
  }
}

.nav__link {
  display: block;
  cursor: pointer;
  position: relative;
  /* 下線を絶対位置で制御するためにrelativeを追加 */
  color: #444;
  /* 文字色を明示的に設定 */
  /* 下線のスタイル */
}

.nav__link::after {
  content: "";
  /* 擬似要素を使って下線を作る */
  position: absolute;
  bottom: 0;
  /* 親要素の下部に配置 */
  left: 0;
  width: 0;
  /* 初期状態では横幅0 */
  height: 1px;
  /* 下線の太さ */
  background-color: #444;
  /* 下線の色 */
}

@media screen and (min-width: 1023px) {
  .nav__link::after {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .nav__link:hover {
    color: #FD4D73;
    /* テキストの塗りつぶしを透明に */
    width: 100%;
    /* ホバー時に下線を全幅に広げる */
  }
}

.l-header__btn-wrapper {
  display: block;
  /* -webkit-margin-start: 24px;
  margin-inline-start: 24px; */
  width: 230px;
  height: 67px;
  /* background-image: -webkit-gradient(linear, left top, left bottom, from(#1588DB), to(#1B91F1));
  background-image: -webkit-linear-gradient(top, #1588DB 0%, #1B91F1 100%);
  background-image: linear-gradient(to bottom, #1588DB 0%, #1B91F1 100%); */
  background-color: #1B98D2;
  border-radius: 139px;
  display: grid;
  place-items: center;
  color: #fff;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .l-header__btn-wrapper {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .l-header__btn-wrapper:hover {
    -webkit-box-shadow: 0 6px 20px rgba(92, 186, 220, 0.5), 0 2px 10px rgba(28, 118, 182, 0.4);
    box-shadow: 0 6px 20px rgba(92, 186, 220, 0.5), 0 2px 10px rgba(28, 118, 182, 0.4);
    -webkit-transform: scale(1.01);
    transform: scale(1.01);
  }
}

@media only screen and (max-width: 1440px) {
  .l-header__btn-wrapper {
    -webkit-margin-start: 15px;
    margin-inline-start: 15px;
  }
}

@media only screen and (max-width: 1350px) {
  .l-header__btn-wrapper {
    width: 180px;
    height: 55px;
    -webkit-margin-start: 7px;
    margin-inline-start: 7px;
  }
}

@media only screen and (max-width: 1180px) {
  .l-header__sns {
    display: none;
  }
}

.l-header__btn {
  font-size: clamp(14px, 1.2vw, 15px);
  font-weight: bold;
  line-height: 2;
  color: #fff;
}

.l-header__btn-item-wapper {
  display: inline-block;
  color: #10a0d4;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background-color: #fff;
  -webkit-margin-start: 13px;
  margin-inline-start: 13px;
  -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;
}

@media screen and (min-width: 1023px) {
  .l-header__btn-item-wapper {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media only screen and (max-width: 1350px) {
  .l-header__btn-item-wapper {
    display: none;
  }
}

.l-header__btn-item {
  display: inline-block;
  vertical-align: 5px;
  color: #444444;
  line-height: 0.9;
  position: relative;
  min-width: 0.9rem;
  min-height: 0.18rem;
  background: #10a0d4;
  -webkit-margin-start: 6px;
  margin-inline-start: 6px;
  border-radius: 5px;
}

.l-header__btn-item::before {
  content: "";
  min-width: 0.6rem;
  min-height: 0.6rem;
  border: 0.23em solid #10a0d4;
  border-left: 0;
  border-bottom: 0;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  -webkit-transform-origin: top right;
  transform-origin: top right;
  position: absolute;
  top: 1px;
  right: -0.07em;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 2px;
  display: grid;
  place-items: center;
}

/*--------------------------- 
l-sp 
---------------------------*/
/* スマホ表示でのハンバーガーメニュー */
@media screen and (min-width: 1023px) {

  /* 900px以下でハンバーガーメニューを表示 */
  .l-sp {
    display: none;
    /* 初期は非表示 */
  }
}

@media screen and (max-width: 1024px) {
  .l-header {
    display: none;
    /* 900px以下でメニューを非表示 */
  }

  .l-sp {
    display: block;
    /* ハンバーガーメニューを表示 */
  }
}

.l-sp__header-inner {
  width: 100%;
  max-width: 100%;
  height: 80px;
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  margin-inline: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  .l-sp__header-inner {
    height: 60px;
  }
}

.l-sp__logo-link {
  display: block;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 10px;
  -webkit-margin-start: 10px;
  margin-inline-start: 10px;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .l-sp__logo-link {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .l-sp__logo-link:hover .sp-logo-img {}
}

@media screen and (max-width: 767px) {
  .l-sp__logo-link {
    gap: 0;
    -webkit-margin-start: 5px;
    margin-inline-start: 5px;
  }

  .l-sp__logo-wapper .l-sp__title img {
    width: 160px;
  }
}

.sp-logo-img {
  display: inline-block;
  width: 47px;
  height: auto;
  overflow: hidden;
  margin-right: 5px;
}

@media screen and (max-width: 767px) {
  .sp-logo-img {
    width: 46px;
    height: auto;
    -webkit-padding-start: 2px;
    padding-inline-start: 2px;
    margin-right: 7px;
  }
}

.l-sp__title {
  font-size: clamp(14px, 3vw, 27px);
  font-weight: bold;
  line-height: 1.5;
}

.l-sp__heading {
  display: block;
  font-size: 0.6875rem;
  line-height: 1;
}

@media only screen and (max-width: 1250px) {
  .l-sp__heading {
    font-size: 0.5625rem;
    margin-top: 5px;
    margin-bottom: 7px;
  }
}

@media screen and (max-width: 767px) {
  .l-sp__heading {
    font-size: 0.4375rem;
  }

  .l-sp__logo-wapper {
    margin-top: 5px;
  }
}

.l-sp__btn-wrapper {
  display: block;
  width: 87px;
  height: 100%;
  background-color: #1B98D2;
  display: grid;
  place-items: center;
  padding-inline: 5px;
}

@media screen and (max-width: 767px) {
  .l-sp__btn-wrapper {
    width: 65px;
  }
}

/* ハンバーガーメニュー ボタン */
.hamburger-button {
  width: 50px;
  height: 50px;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .hamburger-button {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media screen and (max-width: 767px) {
  .hamburger-button {
    width: 40px;
    height: 40px;
  }
}

/* ハンバーガーメニュー ライン */
.hamburger-lines {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 11px;
}

.hamburger-lines .line {
  display: block;
  height: 1px;
  width: 100%;
  background-color: #fff;
}

@media screen and (min-width: 1023px) {
  .hamburger-lines .line {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

/* アクティブ状態の変形（バツマークを作る） */
.hamburger-button.is-active .line:nth-child(1) {
  -webkit-transform: rotate(45deg) translateY(8px);
  transform: rotate(45deg) translateY(8px);
  /* 1本目を回転して下に移動 */
}

.hamburger-button.is-active .line:nth-child(2) {
  -webkit-transform: rotate(-45deg) translateY(-8px);
  transform: rotate(-45deg) translateY(-8px);
  /* 2本目を回転して上に移動 */
}

/* 初期状態では非表示 */
.l-sp__main-inner {
  opacity: 0;
  /* 完全に透明 */
  visibility: hidden;
  /* 非表示に設定 */
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  /* 必要に応じてアニメーションを追加 */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ハンバーガーメニューが表示されたときに全画面固定 */
body.no-scroll {
  overflow: hidden;
  /* 縦スクロールを無効化 */
  position: fixed;
  /* スクロール位置を固定 */
  width: 100%;
  /* 横幅を維持 */
  height: 100%;
  /* 高さを維持 */
  top: 0;
  left: 0;
}

/* ハンバーガーメニューが表示される際に画面全体を覆うスタイル */
.l-sp__main-inner.is-active {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  /* 中のスタイルをカスタマイズする場合、flexやblockを適宜変更 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  /* 横幅を全画面に広げる */
  height: 100%;
  /* 高さを全画面に広げる */
  z-index: 99;
  /* 他の要素よりも前面に表示 */
  background-color: #fff;
  overflow-y: auto;
  /* 必要に応じてスクロール可能に */
  opacity: 1;
  visibility: visible;
}

.l-sp__main-wapper {
  -webkit-margin-before: 80px;
  margin-block-start: 80px;
}

.l-sp__logo-wapper {
  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;
  gap: 10px;
}

.l-sp__nav {
  width: 100%;
}

.l-sp__nav .nav__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-margin-start: 0;
  margin-inline-start: 0;
  gap: 0;
}

.l-sp__nav .nav__item {
  padding: 25px;
  font-size: 1.125rem;
  font-weight: bold;
  line-height: 1.5;
  border-bottom: 1px solid #e7eaf4;
  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;
}

.l-sp__nav .nav__item:first-child {
  border-top: 1px solid #e7eaf4;
}

.l-sp__nav .nav__item::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 7px;
  height: 7px;
  background-color: #1b98d2;
  border-radius: 50%;
  -webkit-margin-end: 15px;
  margin-inline-end: 15px;
}

.l-sp__nav .nav__link {
  display: block;
  width: 100%;
  height: 100%;
  cursor: pointer;
  position: relative;
}

@media screen and (min-width: 1023px) {
  .l-sp__nav .nav__link {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media (any-hover: hover) {
  .l-sp__nav .nav__link:hover {
    background-image: -webkit-gradient(linear, left top, right top, from(rgba(21, 136, 219, 0.94)), to(rgba(27, 145, 241, 0.94)));
    background-image: -webkit-linear-gradient(left, rgba(21, 136, 219, 0.94) 0%, rgba(27, 145, 241, 0.94));
    background-image: linear-gradient(90deg, rgba(21, 136, 219, 0.94) 0%, rgba(27, 145, 241, 0.94));
    -webkit-background-clip: text;
    /* テキストに背景をクリップ */
    -webkit-text-fill-color: transparent;
    /* テキストの塗りつぶしを透明に */
  }
}

.l-sp__nav .nav__link::after {
  content: "";
  position: absolute;
  bottom: -25px;
  left: -25px;
  right: -25px;
  left: -25px;
}

.l-sp__contact {
  width: calc(100% - 50px);
  padding-inline: 25px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 20px;
  -webkit-margin-before: 50px;
  margin-block-start: 50px;
}

@media screen and (max-width: 767px) {
  .l-sp__contact .l-sp__btn-wapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

/*---------------------------
footer
---------------------------*/
.l-footer {
  width: 100%;
  height: 162px;
  background-color: #fff;
  border-top: 1px solid #1b98d2;
  border-bottom: 10px solid #1b98d2;
  position: relative;
  z-index: 5;
}

@media screen and (max-width: 1024px) {
  .l-footer {
    height: auto;
    padding-block: 30px;
  }
}

.l-footer__inner {
  width: calc(100% - 180px);
  max-width: 1260px;
  height: 100%;
  margin-inline: auto;
  padding-inline: 80px 100px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 20px;
  background-color: #fff;
}

@media only screen and (max-width: 1350px) {
  .l-footer__inner {
    max-width: 100%;
    width: calc(100% - 50px);
    padding-inline: 25px;
  }
}

@media screen and (max-width: 1024px) {
  .l-footer__inner {
    width: calc(100% - 50px);
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-inline: 25px;
  }
}

.l-footer__logo-wapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media screen and (max-width: 440px) {
  .l-footer__logo-wapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0;
  }
}

.l-footer__logo .logo-img {
  width: 55px;
  height: auto;
  padding: 0;
}

@media screen and (max-width: 440px) {
  .l-footer__logo .logo-img {
    width: 70px;
    height: auto;
    margin-right: 4px;
  }

  .l-footer__inner {
    width: 100%;
  }
}

.l-footer__title {
  font-size: clamp(18px, 2vw, 25px);
  font-weight: bold;
  line-height: 1.6;
}

.l-footer__heading {
  display: block;
  font-size: clamp(10px, 2vw, 10px);
  line-height: 1;
  margin-bottom: 7px;
}

.l-footer-copyright {
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
  text-align: end;
  font-size: 0.75rem;
  line-height: 1.3;
}

@media screen and (max-width: 767px) {
  .l-footer-copyright {
    text-align: center;
  }
}

/*---------------------------
script
---------------------------*/
.swiper {
  position: relative;
  max-width: 1440px;
  width: 100%;
  height: auto;
  /* 必要に応じて変更 */
  margin-inline: auto;
  padding-inline: 20px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* パディングを含めた計算 */
  overflow-x: hidden;
}

.swiper-wrapper {
  width: 100%;
  height: 450px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-inline: auto;
  -webkit-margin-before: 50px;
  margin-block-start: 50px;
}

@media screen and (min-width: 1023px) {
  .swiper-wrapper {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media only screen and (max-width: 1200px) {
  .swiper-wrapper {
    height: auto;
  }
}

.swiper-slide.voice__item {
  width: calc(100% - 65px);
  /* パディング分を引く */
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
  /* スライドが画面幅にフィット */
  height: 450px;
  background-color: #fff;
  border-radius: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  overflow: hidden;
  gap: 0px;
  padding-inline: 20px 45px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* パディングなどを含めた計算 */
}

@media only screen and (max-width: 1200px) {
  .swiper-slide.voice__item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    height: 100%;
    gap: 20px;
    padding-inline: 30px;
    padding-block: 30px;
  }
}

@media screen and (max-width: 767px) {
  .swiper-slide.voice__item {
    gap: 10px;
    padding-inline: 25px;
    padding-block: 25px;
  }
}


.voice__img-wapper {
  width: 100%;
  max-width: 364px;
  aspect-ratio: 364/371;
  border-radius: 23px;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}

@media only screen and (max-width: 1200px) {
  .voice__img-wapper {
    max-width: 60%;
  }
}

.voice__img {
  width: 92%;
  height: 100%;
  border-radius: 23px;
  -o-object-fit: cover;
  object-fit: cover;
}

@media only screen and (max-width: 1200px) {
  .voice__img {
    -o-object-fit: contain;
    object-fit: contain;
    width: 100%;
  }

}

.voice__body {
  width: 100%;
}

@media screen and (max-width: 1024px) {
  .voice__body {
    width: 75%;
  }
}

@media screen and (max-width: 767px) {
  .voice__body {
    width: 100%;
  }
}

.voice__body-heading {
  font-size: clamp(14px, 2vw, 17.9px);
  line-height: 1.3;
  font-weight: bold;
}

.voice__title {
  -webkit-margin-before: 18px;
  margin-block-start: 18px;
  font-size: clamp(20px, 2.4vw, 31px);
  /* 最小16px、推奨2vw、最大31px */
  line-height: 1.6;
  font-weight: bold;
}

@media screen and (max-width: 1024px) {
  .voice__title {
    text-wrap: balance;
  }
}

@media screen and (max-width: 767px) {
  .voice__title {
    text-wrap: auto;
  }
}

.voice__text {
  -webkit-margin-before: 20px;
  margin-block-start: 20px;
}

.voice__img-wapper,
.voice__body {
  margin: auto;
}

@media screen and (max-width: 1024px) {

  .voice__img-wapper,
  .voice__body {
    margin: 0;
  }
}

/* Swiperのbotton位置 */
.c-btn--left {
  position: absolute;
  top: 50%;
  left: 5px;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .c-btn--left {
    top: 30%;
  }
}

.c-btn--right {
  position: absolute;
  top: 50%;
  right: 5px;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .c-btn--right {
    top: 30%;
  }
}

/* Swiperのbottonスタイル */
.c-btn {
  display: inline-block;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background-image: -webkit-gradient(linear, left top, right top, from(#0163BD), color-stop(43%, #018CC6), to(#0162BE));
  background-image: -webkit-linear-gradient(left, #0163BD 0%, #018CC6 43%, #0162BE 100%);
  background-image: linear-gradient(90deg, #0163BD 0%, #018CC6 43%, #0162BE 100%);
  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;
  cursor: pointer;
}

@media screen and (min-width: 1023px) {
  .c-btn {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
}

@media screen and (max-width: 767px) {
  .c-btn {
    width: 40px;
    height: 40px;
  }
}

@media (any-hover: hover) {
  .c-btn:hover {
    opacity: 0.7;
  }
}

.c-btn .left-item {
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
  position: relative;
  width: 1em;
  height: 1em;
  -webkit-transform: translateX(25%) rotate(-135deg);
  transform: translateX(25%) rotate(-135deg);
  color: #fff;
}

@media screen and (max-width: 767px) {
  .c-btn .left-item {
    width: 0.75em;
    height: 0.75em;
  }
}

.c-btn .left-item::before,
.c-btn .left-item::after {
  content: "";
  position: absolute;
  background: currentColor;
  border-radius: 0.1em;
}

.c-btn .left-item::before {
  top: 0;
  left: 0;
  right: 0;
  height: 0.1em;
}

.c-btn .left-item::after {
  top: 0;
  right: 0;
  bottom: 0;
  width: 0.1em;
}

.c-btn .right-item {
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
  position: relative;
  width: 1em;
  height: 1em;
  -webkit-transform: translateX(-25%) rotate(45deg);
  transform: translateX(-25%) rotate(45deg);
  color: #fff;
}

@media screen and (max-width: 767px) {
  .c-btn .right-item {
    width: 0.75em;
    height: 0.75em;
  }
}

.c-btn .right-item::before,
.c-btn .right-item::after {
  content: "";
  content: "";
  position: absolute;
  background: currentColor;
  border-radius: 0.1em;
}

.c-btn .right-item::before {
  top: 0;
  left: 0;
  right: 0;
  height: 0.1em;
}

.c-btn .right-item::after {
  top: 0;
  right: 0;
  bottom: 0;
  width: 0.1em;
}

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


body {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  color: #222222;
  position: relative;
  overflow-x: clip;
}

a {
  text-decoration: none;
  color: #222222;
}

@media screen and (min-width: 1024px) {
  a {
    transition: all 0.2s;
  }
}


ul,
li {
  list-style: none;
}

figure {
  margin: 0;
  padding: 0;
}

img {
  margin: 0;
  padding: 0;
}

/* ------------------------------ */
/*          リセットCSS */
/* ------------------------------ */
html {
  color: #000;
  background: #fff;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

fieldset,
img {
  border: 0;
}

​ address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  font-weight: normal;
}

​ol,
ul {
  list-style: none;
}

caption,
th {
  text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before,
q:after {
  content: "";
}

​abbr,
acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input,
textarea,
select,
button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  font-size: 100%;
  border-radius: 0;
  border: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  background-color: inherit;
}

​input,
textarea,
select {
  font-size: 16px;
}

​textarea {
  resize: vertical;
  display: block;
}

​button {
  padding: 0;
  cursor: pointer;
}

​legend {
  color: #000;
}

​main {
  display: block;
}

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

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

​svg {
  display: block;
}

​* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

summary {
  display: block;
  /* デフォルトでは inline-block なので block に変更 */
  list-style: none;
  /* デフォルトのリストスタイルを消す */
  padding: 0;
  /* デフォルトのパディングを消す */
  margin: 0;
  /* デフォルトのマージンを消す */
  font-weight: normal;
  /* デフォルトのフォントウェイトを消す */
  color: inherit;
  /* デフォルトのテキストカラーを親要素から継承 */
  background: none;
  /* デフォルトの背景を消す */
  border: none;
  /* デフォルトのボーダーを消す */
}

/* 一部ブラウザで消えなかった場合は以下も追記 */
summary::-webkit-details-marker {
  display: none;
}

button {
  all: unset;
  /* すべてのプロパティを初期化 */
  display: inline-block;
  /* インラインブロック要素にする */
  background: none;
  /* 背景を削除 */
  border: none;
  /* ボーダーを削除 */
  padding: 0;
  /* パディングを削除 */
  margin: 0;
  /* マージンを削除 */
  font: inherit;
  /* フォントの継承 */
  cursor: pointer;
  /* カーソルをポインターにする */
  text-align: center;
  /* テキストの中央揃え */
  line-height: normal;
  /* 行の高さをデフォルトに設定 */
  /* 必要に応じてその他のプロパティを追加 */
}

/*# sourceMappingURL=style.css.map */

input.wpcf7-form-control {
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.required::after {
  content: "必須";
  color: #ffffff;
  background: #ff7492;
  font-size: 0.8em;
  padding: 0 0.7em;
  border-radius: 2em;
  margin-left: 0.4em;
  display: inline-block;
  line-height: 1.7
}

/* レイアウトや見た目のスタイル */
/* ---------------------------- */

/* .single-item+.single-item {
  margin-top: 80px;
} */

/* アニメーションスタイル */
/* ---------------------------- */

/* アニメーション前 */
.u-fade-type-up {
  transform: translateY(50px);
  opacity: 0;
}

/* トリガー発火でis-activeを付与 */
.u-fade-type-up.is-active {
  transition: .6s;
  transform: translateY(0);
  opacity: 1;
}

.anim-box.fadein.is-animated {
  animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}


.anim-box.slidein.is-animated {
  animation: slideIn 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes slideIn {
  0% {
    transform: translateX(180px);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
  }

  40%,
  100% {
    opacity: 1;
  }
}


.anim-box.fadeup.is-animated {
  animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeup {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }

  80% {
    opacity: 1;
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}



.price__heading-wapper {
  text-align: center;
  margin-bottom: 60px;
}

.price__heading {
  font-size: 14px;
  font-weight: bold;
  color: #ff4d4d;
  display: inline-block;
  margin-bottom: 10px;
}

.price__title {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 15px;
}

.price__wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
}

@media screen and (max-width: 767px) {
  .price__wrapper {
    grid-template-columns: 1fr;
    gap: 0px;
  }
}

.price__box {
  width: 100%;
  margin: 30px 0 60px;
}

@media screen and (max-width: 767px) {
  .price__box {
    width: 100%;
    margin: 0;
  }
}

.price__box-title {
  font-size: 20px;
  color: #333;
  border-left: 5px solid #1b98d2;
  padding-left: 10px;
  margin-bottom: 10px;
  font-weight: bold;
}

.price__inner img.concept__icon_red {
  width: 28px;
}

.price__note {
  font-size: 13px;
  margin-bottom: 10px;
}

.price__table {
  width: 100%;
  border-collapse: collapse;
}

.price__table th {
  background-color: #1b98d2;
  border: 1px solid #eee;
  color: #fff;
  padding: 6px;
  text-align: left;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
}

.price__table td {
  border: 1px solid #eee;
  padding: 10px;
  font-size: 14px;
  color: #333;
  background: #fff;
}

.price__table td:last-child {
  text-align: right;
  color: #222222;
  font-weight: 400;
  width: 30%;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .price__box {
    width: 100%;
  }

  .price__title {
    font-size: 24px;

  }

  .price__box-title {
    font-size: 18px;
    margin-top: 35px;
  }
}


span.point__heading.c-heading.red__text {
  color: #1b98d2;
}

.top-area {
  padding: 100px 20px;
  background: #fff;
}

.top-area__inner {
  max-width: 1180px;
  margin: 0 auto;
}

.top-area__content {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 40px;
}

.top-area__text-block {
  width: 55%;
}

.top-area__image-block {
  width: 41%;
}

.top-area__title {
  font-size: clamp(30px, 6.5vw, 34px);
  font-weight: bold;
  color: #1b98d2;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.top-area__icon {
  font-size: 20px;
}

.top-area__lead {
  font-size: 15px;
  color: #333;
  line-height: 1.7;
  margin-bottom: 20px;
}

.top-area__box {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 15px;
  font-size: 14px;
  color: #333;
  line-height: 1.6;
  font-weight: 700;
}

.top-area__box p {
  margin: 0 0 8px;
}

.top-area__box p:last-child {
  margin-bottom: 0;
}

.top-area__image-block img {
  max-width: 100%;
  height: auto;
  border-radius: 30px;
  border: solid 2px #eee;
}

.top-area__content img.map__icon {
  /* align-items: center; */
  vertical-align: middle;
}

@media (max-width: 768px) {
  .top-area {
    padding: 60px 20px;
  }

  .top-area__content {
    flex-direction: column;
  }

  .top-area__text-block {
    width: 100%;
  }

  .top-area__image-block {
    text-align: center;
    width: 100%;
  }
}

.price {
  width: 100%;
  padding-top: 80px;
  padding-bottom: 80px;
  background: #fff8f8;
}

.price__bg {
  display: inline-block;
  width: 100%;
  height: auto;
  position: relative;
}

.price__inner {
  width: calc(100% - 100px);
  max-width: 1180px;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .price__inner {
    width: calc(100% - 40px);
  }
}

.price__title {
  -webkit-margin-before: 10px;
  margin-block-start: 10px;
  font-size: clamp(30px, 6.5vw, 34px);
  line-height: 1.4;
  font-weight: bold;
}

a.l-footer__logo-link {
  display: flex;
  gap: 20px;
  align-items: center;
}

span.top-area__icon {
  width: 32px;
}

.merit__wapper p {
  font-size: 0.9rem;
}