@charset "UTF-8";
:root {
  --base: 1366;
}
@media (max-width: 767px) {
  :root {
    --base: 750;
  }
}

/* リセットCSS
===================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  padding: 0;
  margin: 0;
}

body {
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  line-height: 1.6;
  font-weight: 500;
  background: #fff;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, button, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

li, dd {
  list-style-type: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  font-weight: normal;
  text-align: left;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

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

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
  width: 100%;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}

input, select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background: #fff;
}

/*------------------------------
common
------------------------------*/
body {
  word-break: break-all;
  color: #0F1419;
  font-family: "M PLUS 1p", sans-serif;
}
body.is-active {
  position: fixed;
  width: 100%;
  height: 100%;
  overflow-y: scroll; /* スクロールバー補完 */
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

/* スマホ用の表示の時はis-pcは非表示 */
@media (max-width: 767px) {
  .pc {
    display: none !important;
  }
}
/* PC用の表示の時はis-spは非表示 */
@media (min-width: 768px) {
  .sp {
    display: none !important;
  }
}
/* コンテンツ幅
------------------------------*/
.inner {
  width: 81.7%;
  max-width: 1115px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .inner {
    width: 90%;
  }
}

@media (min-width: 768px) {
  .u-inner-full {
    width: 1366px;
    max-width: 100%;
  }
}

/* セクションロゴ
------------------------------*/
.c-sec-logo {
  width: min(306px, 27.4439461883vw);
}
@media (max-width: 767px) {
  .c-sec-logo {
    width: 170px;
  }
}

/* セクションタイトル
------------------------------*/
.c-sec-ttl {
  font-size: min(4rem, 3.5874439462vw);
  font-weight: 700;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .c-sec-ttl {
    font-size: min(3.5rem, 4.6666666667vw);
  }
}

/* 英語テキスト
------------------------------*/
.c-en-copy {
  font-size: min(17.9rem, 100vw * 179 / var(--base));
  font-weight: 900;
  color: rgba(133, 186, 227, 0.15);
}
@media (max-width: 767px) {
  .c-en-copy {
    font-size: min(9rem, 12vw);
  }
}

.c-text-en {
  font-size: clamp(1.2rem, 100vw * 20 / var(--base), 2rem);
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.5;
  color: #DADADA;
  letter-spacing: 0.04em; /* sy */
}
@media (max-width: 767px) {
  .c-text-en {
    font-size: min(1rem, 2.6666666667vw);
  }
}

/* テキスト色
------------------------------*/
.u-text-blue {
  color: #5D92BB;
}

.u-text-gray {
  color: #707070;
}

/*------------------------------
header
------------------------------*/
header {
  padding: 30px 0;
}

@media (min-width: 768px) {
  .header__inner {
    width: 100%;
    max-width: 92%;
    padding-right: 2.3%;
  }
}

.header__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logo {
  display: flex;
  align-items: center;
}
.header__logo img {
  width: min(290px, 21.2298682284vw);
  padding-right: min(41px, 3.0014641288vw);
}
.header__logo p {
  font-size: min(2rem, 1.4641288433vw);
  padding-left: min(27px, 1.9765739385vw);
  position: relative;
}
.header__logo p::after {
  content: "";
  position: absolute;
  background: #99CEF7;
  transform: translate(0%, -50%);
  width: 1px;
  left: 0%;
  top: 50%;
  height: 36px;
}
@media (max-width: 999px) {
  .header__logo {
    display: block;
  }
  .header__logo p {
    border-left: none;
    padding-left: 0;
    font-size: 1.4rem;
  }
}
@media (max-width: 767px) {
  .header__logo img {
    width: 170px;
  }
  .header__logo p {
    display: none;
  }
}

.header__nav {
  display: flex;
  align-items: center;
}

.header__contact {
  padding-right: min(50px, 3.6603221083vw);
  margin-right: min(50px, 3.6603221083vw);
  position: relative;
}
.header__contact a {
  width: min(223px, 16.3250366032vw);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: min(2rem, 1.4641288433vw);
  font-weight: 500;
  line-height: 1.5;
  background: #71A6CF;
  color: #fff;
  border-radius: 38px;
  padding: 0.55em 0;
}
.header__contact a::before {
  display: inline-block;
  content: "";
  position: relative;
  background: url(../img/icon_mail.png) no-repeat center center/contain;
  width: 1.3em;
  aspect-ratio: 54/43;
  transform: translateX(30%);
  margin-right: 1.2em;
}
.header__contact::after {
  content: "";
  position: absolute;
  background: #99CEF7;
  transform: translate(0%, -50%);
  width: 1px;
  right: 0%;
  top: 50%;
  height: 36px;
}
@media (max-width: 767px) {
  .header__contact {
    display: none;
  }
}

.header__hp {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.5;
  padding-left: 2.25em;
}
.header__hp strong {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  position: relative;
}
.header__hp strong::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -2.25em;
  transform: translateY(-50%);
  background: url(../img/icon_globe.png) no-repeat center center/contain;
  width: 1.625em;
  aspect-ratio: 54/54;
}
@media (max-width: 767px) {
  .header__hp {
    font-size: 1.2rem;
    font-size: min(1.2rem, 3.2vw);
    flex-shrink: 0;
  }
  .header__hp strong {
    font-size: 1.4rem;
    font-size: min(1.4rem, 3.7333333333vw);
  }
}

/*------------------------------
fv
------------------------------*/
.fv {
  background: url(../img/fv_bg.webp) no-repeat center center/cover;
  padding: 110px 0 40px;
}
@media (max-width: 767px) {
  .fv {
    padding: 50px 0 20px;
  }
}

@media (min-width: 768px) {
  .fv__inner {
    width: 85%;
    max-width: 1162px;
    padding-right: min(11%, 150px);
  }
}
@media (max-width: 767px) {
  .fv__inner {
    width: 93%;
  }
}

.fv__catch {
  background: rgba(82, 146, 185, 0.5);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.6em 1em;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .fv__catch {
    padding: 0.6em min(5px, 1.3333333333vw);
  }
}

.fv__copy {
  font-size: min(6.7rem, 100vw * 67 / var(--base));
  font-weight: 700;
  line-height: 1.4776119403;
  color: #fff;
}
.fv__subtext {
  display: block;
  font-size: min(2.4rem, 100vw * 24 / var(--base));
  font-weight: 500;
  line-height: 1.5;
  color: #fff;
}
.fv__list {
  margin-top: 64px;
  display: flex;
}
@media (max-width: 767px) {
  .fv__list {
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 30px;
  }
}

.fv__item {
  width: 31.5%;
  background: rgba(239, 239, 239, 0.7);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  color: #356A93;
  text-align: center;
}
@media (min-width: 768px) {
  .fv__item:nth-child(n+2) {
    margin-left: 2.7%;
  }
}
@media (max-width: 767px) {
  .fv__item {
    width: calc(50% - 5px);
  }
  .fv__item:nth-child(2n) {
    margin-left: 10px;
  }
}

.fv__heading {
  font-size: min(4rem, 100vw * 40 / var(--base));
  font-weight: 700;
  line-height: 1.2;
  height: 2lh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
}
.fv__header-en {
  display: block;
  font-size: min(1.6rem, 100vw * 16 / var(--base));
  font-weight: 300;
  line-height: 1.4375;
  position: absolute;
  top: 0%;
  left: 50%;
  transform: translate(-50%, -100%);
  width: 100%;
  text-align: center;
}
.fv__desctiption {
  margin-top: 0.15em;
  font-size: min(2.4rem, 100vw * 24 / var(--base));
  font-weight: 500;
  line-height: 1.5;
  height: 3lh;
  display: flex;
  align-items: center;
  justify-content: center;
}
/*------------------------------
about
------------------------------*/
.about {
  padding: min(150px, 12%) 0 100px;
  border-bottom: 4px solid #85BAE3;
}
@media (max-width: 767px) {
  .about {
    padding: 10% 0;
  }
}

.about__copy {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  font-size: min(8rem, 5.8565153734vw);
}
.about__copy::after {
  content: "";
  position: absolute;
  background: url(../img/dec1.png) no-repeat center center/100%;
  aspect-ratio: 385/284;
  width: 15%;
  left: 85.8%;
  top: 16%;
  transform: translate(-50%, -50%);
}
@media (min-width: 768px) {
  .about__copy {
    margin: 0;
    margin-left: auto;
  }
  .about__copy::after {
    width: 65%;
    left: 0;
    top: 50%;
    transform: translate(-120%, -50%);
  }
}
@media (max-width: 767px) {
  .about__copy {
    margin: 0;
    margin-left: auto;
    font-size: 7.4666666667vw;
  }
  .about__copy::after {
    width: 65%;
    left: 0;
    top: 50%;
    transform: translate(-110%, -50%);
  }
}

.about__header {
  margin-top: 6%;
  margin-bottom: 6%;
}
.about__header h2 {
  font-size: min(4.8rem, 3.513909224vw);
  margin-bottom: 0.3em;
  position: relative;
}
.about__header h2::after {
  content: "";
  position: absolute;
  background: url(../img/dec3.png) no-repeat center center/100%;
  transform: translate(-50%, -50%);
  aspect-ratio: 814/815;
  width: 36%;
  left: 78%;
  top: 73%;
}
@media (max-width: 767px) {
  .about__header {
    margin-top: 10%;
  }
}

.about__wrapper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 3%;
}
@media (max-width: 767px) {
  .about__wrapper {
    display: block;
    margin-top: 25px;
  }
}

.about__content {
  width: 51%;
}
@media (max-width: 767px) {
  .about__content {
    width: 100%;
  }
}

.about__heading {
  font-size: min(3.6rem, 2.8645833333vw);
  font-weight: 700;
  line-height: 1.5;
  color: #5D92BB;
}
@media (max-width: 767px) {
  .about__heading {
    font-size: 2rem;
  }
}

.about__message {
  font-size: min(2.4rem, 1.756954612vw);
  font-weight: 400;
  line-height: normal;
}
@media (max-width: 767px) {
  .about__message {
    font-size: 1.4rem;
  }
}

.about__image {
  width: 47%;
}
@media (max-width: 767px) {
  .about__image {
    width: 100%;
    margin-top: 20px;
  }
}

/*------------------------------
strengths
------------------------------*/
.strengths {
  padding: 30px 0 70px;
  overflow: hidden;
  border-bottom: 1px solid rgba(95, 168, 211, 0.35);
}
@media (max-width: 767px) {
  .strengths {
    padding: 10% 0 3%;
  }
}

.strengths__head {
  border-bottom: 1px solid rgba(95, 168, 211, 0.35);
  padding-bottom: 45px;
}
.strengths__head h2 {
  font-size: min(4.8rem, 3.513909224vw);
  color: #356A93;
  position: relative;
}
.strengths__head h2::after {
  content: "";
  position: absolute;
  background: url(../img/dec2.png) no-repeat center center/100%;
  transform: translate(-50%, -50%);
  aspect-ratio: 542/402;
  width: 24%;
  left: 86%;
  top: 65%;
}

.strengths__summary {
  margin-top: 6%;
}
.strengths__summary li {
  font-size: min(3.6rem, 3.2286995516vw);
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  padding-left: 1.1em;
}
.strengths__summary li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: #4782A5;
  width: 0.86em;
  aspect-ratio: 1/1;
  border-radius: 50%;
}
.strengths__summary li:nth-child(n+2) {
  margin-top: 0.75em;
}
@media (max-width: 767px) {
  .strengths__summary li {
    font-size: 2rem;
  }
}

.strengths__container {
  padding-top: 117px;
}
@media (max-width: 767px) {
  .strengths__container {
    padding-top: 50px;
  }
}

.strengths__block:nth-child(n+2) {
  margin-top: 90px;
}
.strengths__block:nth-child(2n-1) .strengths__content::before {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  width: calc(50vw + min(43vw, 588px));
}
.strengths__block:nth-child(2n) .strengths__header {
  justify-content: flex-end;
}
.strengths__block:nth-child(2n) .strengths__content::before {
  left: unset;
  right: calc((100vw - min(1115px, 81.7vw)) / -2);
  width: 83vw;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.strengths__block:nth-child(2n) .strengths__list {
  margin-left: auto;
  padding-left: 3%;
}
.strengths__block:nth-child(2n) .strengths__figure {
  left: 0%;
  right: unset;
}
@media (max-width: 767px) {
  .strengths__block:nth-child(n+2) {
    margin-top: 10%;
  }
  .strengths__block:nth-child(2n-1) .strengths__content::before {
    left: -5vw;
    width: 93vw;
  }
  .strengths__block:nth-child(2n) .strengths__content {
    padding-left: 5%;
  }
  .strengths__block:nth-child(2n) .strengths__content::before {
    right: -5vw;
    width: 93vw;
  }
  .strengths__block:nth-child(2n) .strengths__figure {
    left: -2%;
  }
}

.strengths__header {
  display: flex;
  align-items: center;
}

.strengths__label img {
  width: min(150px, 13.4529147982vw);
}
.strengths__label span {
  display: block;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  color: #71A6CF;
  margin-top: -1.2em;
}
@media (max-width: 767px) {
  .strengths__label img {
    width: 10vw;
  }
  .strengths__label span {
    font-size: min(1.4rem, 1.8666666667vw);
  }
}

.strengths__title {
  font-size: 4rem;
  font-size: min(4rem, 100vw * 40 / var(--base));
  font-weight: 700;
  line-height: 1.3;
  margin-left: 0.5em;
}
.strengths__title span {
  display: block;
}
@media (max-width: 767px) {
  .strengths__title {
    font-size: min(3.2rem, 4.2666666667vw);
  }
}

.strengths__title--en {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.4375;
  color: #C1C1C1;
}
@media (max-width: 767px) {
  .strengths__title--en {
    font-size: min(1.8rem, 2.4vw);
  }
}

.strengths__content {
  margin-top: 37px;
  padding: 2.8% 0;
  position: relative;
}
.strengths__content::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc((100vw - min(1115px, 81.7vw)) / -2);
  height: 100%;
  background: rgba(153, 206, 247, 0.28);
  border-radius: 14px;
  z-index: -1;
}
@media (max-width: 767px) {
  .strengths__content {
    margin-top: 15%;
    padding: 25% 0 5%;
  }
}

.strengths__list {
  width: 50%;
}
.strengths__list li {
  font-size: min(2.8rem, 100vw * 28 / var(--base));
  font-weight: 400;
  line-height: 1.5;
  padding-left: 1em;
  position: relative;
}
.strengths__list li::before {
  content: "";
  position: absolute;
  top: 0.8em;
  transform: translateY(-50%);
  left: 0;
  background: #4782A5;
  width: 0.8em;
  aspect-ratio: 1/1;
  border-radius: 50%;
}
.strengths__list li:nth-child(2) {
  margin-top: 55px;
  position: relative;
}
.strengths__list li:nth-child(2)::after {
  content: "";
  position: absolute;
  top: -27.5px;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  -webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
          clip-path: polygon(50% 100%, 0 0, 100% 0);
  width: 4.25em;
  aspect-ratio: 119/35;
}
.strengths__list li strong {
  font-weight: 700;
}
@media (max-width: 767px) {
  .strengths__list {
    width: 100%;
    padding: 0 10px;
  }
}

.strengths__figure {
  position: absolute;
  top: max(-98px, -8.7892376682vw);
  right: 2%;
  width: 48%;
}
@media (max-width: 767px) {
  .strengths__figure {
    right: 8%;
  }
}

.strengths__bottom {
  margin-top: 133px;
}
@media (max-width: 767px) {
  .strengths__bottom {
    margin-top: 50px;
  }
}

.strengths__message {
  font-size: min(4rem, 2.9282576867vw);
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.strengths__message strong {
  font-weight: 700;
}
.strengths__message span {
  display: block;
  margin-top: 14px;
}
@media (max-width: 767px) {
  .strengths__message {
    font-size: 2.4rem;
  }
}

.strengths__wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 860px;
  margin: 0 auto;
  margin-top: 20px;
}

.strengths__image {
  width: 40%;
}

.strengths__text {
  width: 60%;
  font-size: min(2.8rem, 2.5112107623vw);
  font-weight: 400;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .strengths__text {
    font-size: min(2rem, 2.6666666667vw);
  }
}

/*------------------------------
solution
------------------------------*/
.solution {
  padding: min(11%, 150px) 0 60px;
  border-bottom: 1px solid rgba(95, 168, 211, 0.35);
}

.solution__header-copy {
  position: relative;
}
.solution__header-copy::after {
  content: "";
  position: absolute;
  background: url(../img/dec2.png) no-repeat center center/100%;
  transform: translate(-50%, -50%);
  aspect-ratio: 542/402;
  width: 37%;
  left: 98%;
  top: -10%;
}
@media (max-width: 767px) {
  .solution__header-copy::after {
    left: 110%;
  }
}

.solution__heading span {
  display: block;
}

.solution__list {
  margin: 8% auto 0;
  width: 81%;
}
.solution__list li {
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.5;
  color: #fff;
  background: #71A6CF;
  border-radius: 25px;
  padding: 1.7em 2em;
}
.solution__list li:nth-child(n+2) {
  margin-top: 40px;
}
.solution__list li strong {
  font-weight: 700;
}
@media (max-width: 767px) {
  .solution__list {
    margin-top: 40px;
    width: 90%;
  }
  .solution__list li {
    font-size: 1.4rem;
    border-radius: 13px;
  }
  .solution__list li:nth-child(n+2) {
    margin-top: 14px;
  }
}

.solution__message {
  padding-top: 230px;
  font-size: min(4.8rem, 100vw * 48 / var(--base));
  font-weight: 700;
  line-height: 1.4791666667;
  text-align: center;
  position: relative;
}
.solution__message::before {
  content: "";
  position: absolute;
  top: 115px;
  left: 50%;
  transform: translate(-50%, -50%);
  background: url(../img/icon_arrow01.png) no-repeat center center/contain;
  width: min(110px, 100vw * 110 / var(--base));
  aspect-ratio: 224/115;
}
.solution__message img {
  width: min(340px, 100vw * 340 / var(--base));
  margin-right: 10px;
  vertical-align: middle;
}
@media (max-width: 767px) {
  .solution__message {
    padding-top: 120px;
    font-size: 1.8rem;
  }
  .solution__message::before {
    top: 60px;
  }
}

.solution__messag-en {
  display: block;
  font-size: min(11.4rem, 100vw * 114 / var(--base));
  font-weight: 900;
  line-height: 1.4824561404;
  text-align: center;
  color: rgba(133, 186, 227, 0.15);
}
@media (max-width: 767px) {
  .solution__messag-en {
    line-height: 1.2;
  }
}

/*------------------------------
flow
------------------------------*/
.flow {
  padding: min(15%, 205px) 0 min(125px, 9%);
  position: relative;
  border-bottom: 1px solid rgba(95, 168, 211, 0.35);
}
.flow::after {
  content: "";
  position: absolute;
  background: url(../img/dec4.png) no-repeat center center/100%;
  transform: translate(-17%, -50%);
  aspect-ratio: 1772/2486;
  width: 63%;
  left: 0%;
  left: max(0%, (100vw - 1366px) / 2);
  top: 31%;
  max-width: 860px;
  pointer-events: none;
}
@media (max-width: 767px) {
  .flow {
    padding: 5% 0;
  }
  .flow::after {
    width: 53%;
    top: 18%;
    left: 0;
  }
}

.flow__header {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  text-align: right;
}

.flow__content {
  margin-top: 40px;
  padding: 0 2%;
}
@media (max-width: 767px) {
  .flow__content {
    display: flex;
    justify-content: space-between;
    max-width: 400px;
    margin: 0 auto;
    margin-top: 40px;
  }
}

.flow__list {
  display: flex;
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .flow__list {
    display: block;
    width: 90%;
  }
}

.flow__item {
  width: 21.625%;
}
.flow__item:nth-child(n+2) {
  margin-left: 4.5%;
  position: relative;
}
.flow__item:nth-child(n+2)::before {
  content: "";
  position: absolute;
  top: 33%;
  left: -10%;
  transform: translate(-50%, -50%) rotate(-90deg);
  -webkit-mask-image: url(../img/icon_arrow01.png);
          mask-image: url(../img/icon_arrow01.png);
  -webkit-mask-size: 100%;
          mask-size: 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: #C1C1C1;
  width: min(48px, 4.3049327354vw);
  aspect-ratio: 48/24;
}
@media (max-width: 767px) {
  .flow__item {
    width: 100%;
    display: flex;
    align-items: center;
  }
  .flow__item:nth-child(n+2) {
    margin-left: 0;
    margin-top: 20px;
  }
  .flow__item:nth-child(n+2)::before {
    top: -10px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 45px;
  }
}

.flow__label {
  font-size: min(3.6rem, 2.635431918vw);
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  background: #85BAE3;
  border-radius: 50%;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media (max-width: 767px) {
  .flow__label {
    width: 110px;
    font-size: 1.6rem;
  }
}

.flow__label-en {
  display: block;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.4375;
  text-align: center;
}
@media (max-width: 767px) {
  .flow__label-en {
    font-size: 1.2rem;
  }
}

.flow__description {
  font-size: 1.8rem;
  font-size: clamp(1.1rem, 1.317715959vw, 1.8rem);
  font-weight: 400;
  line-height: normal;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: min(27px, 1.9765739385vw) auto 0;
}
@media (max-width: 767px) {
  .flow__description {
    width: calc(100% - 110px);
    font-size: 1.4rem;
    margin-top: 0;
    margin-left: 10px;
  }
}

.flow__period {
  margin-top: 40px;
  background: rgba(153, 206, 247, 0.42);
  border-radius: 40px;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.8181818182;
  color: #fff;
  text-align: center;
  padding: 0.6em 0;
}
@media (max-width: 767px) {
  .flow__period {
    margin-top: 0;
    font-size: 1.6rem;
    writing-mode: vertical-rl;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-orientation: upright;
  }
}

/*------------------------------
case
------------------------------*/
.case {
  padding: min(12%, 150px) 0 min(8.5%, 115px);
  border-bottom: 1px solid rgba(95, 168, 211, 0.35);
}
@media (max-width: 767px) {
  .case {
    padding: 5% 0;
  }
}

.case__header {
  position: relative;
}
.case__header::after {
  content: "";
  position: absolute;
  background: url(../img/dec2.png) no-repeat center center/100%;
  transform: translate(-50%, -50%);
  aspect-ratio: 542/402;
  width: 34%;
  left: 84%;
  top: 45%;
}
.case__header h2 {
  margin-top: 2%;
}

.case__text {
  margin-top: 50px;
  font-size: min(2.4rem, 2.1524663677vw);
  font-weight: 400;
  line-height: 1.8;
}
.case__text strong {
  font-weight: 500;
}
@media (max-width: 767px) {
  .case__text {
    font-size: 1.6rem;
  }
}

.case__image {
  margin-top: 3%;
  width: 90%;
  margin-left: 1.5%;
}

.case__message {
  font-size: min(3.6rem, 3.2286995516vw);
  font-weight: 400;
  line-height: normal;
  margin-top: 11%;
  padding-left: 3%;
}
.case__message strong {
  font-weight: 700;
}
@media (max-width: 767px) {
  .case__message {
    margin-top: 60px;
    font-size: 1.6rem;
  }
}

/*------------------------------
contact
------------------------------*/
.contact {
  padding-bottom: 120px;
  padding-bottom: 120px;
  padding-top: 60px;
}
@media (max-width: 767px) {
  .contact {
    padding-bottom: 60px;
  }
}

.contact__header {
  text-align: center;
}
.contact__header h2 {
  margin-top: 5%;
}

.contact__button {
  text-align: center;
  margin-top: 68px;
}
.contact__button a {
  display: inline-block;
  width: 50%;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.4615384615;
  color: #fff;
  text-align: center;
  background: #71A6CF;
  border-radius: 38px;
  padding: 0.8em 0;
}
@media (max-width: 767px) {
  .contact__button {
    margin-top: 30px;
  }
  .contact__button a {
    width: 90%;
    font-size: 1.6rem;
  }
}

/*------------------------------
page-top
------------------------------*/
.page-top {
  position: fixed;
  bottom: 10px;
  right: 20px;
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1.5;
  color: #71A6CF;
  padding-top: 1.4em;
}
.page-top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) rotate(180deg);
  background: url(../img/icon_arrow01.png) no-repeat center center/contain;
  width: 1.78em;
  aspect-ratio: 224/115;
}
@media (max-width: 767px) {
  .page-top {
    font-size: 1.2rem;
    right: 10px;
  }
}

/*------------------------------
footer
------------------------------*/
footer {
  border-top: 29px solid rgba(113, 166, 207, 0.16);
}

.footer__container {
  background: rgba(113, 166, 207, 0.07);
  padding: 87px 0 20px;
}

.footer__wrapper {
  display: flex;
  justify-content: space-between;
}

.footer__logo {
  width: min(283px, 25.3811659193vw);
}
@media (max-width: 767px) {
  .footer__logo {
    width: 120px;
  }
}

.footer__name {
  font-size: min(3.6rem, 2.8645833333vw);
  font-weight: 700;
  line-height: 1.5;
  color: #707070;
}
@media (max-width: 767px) {
  .footer__name {
    font-size: 1.2rem;
  }
}

.footer__subtext {
  display: flex;
  align-items: center;
  font-size: min(2rem, 1.3020833333vw);
  font-weight: 500;
  line-height: 1.5;
  color: #497EA7;
}
@media (min-width: 768px) {
  .footer__subtext span:first-child {
    padding-right: 14px;
    border-right: 1px solid #99CEF7;
  }
  .footer__subtext span:nth-child(2) {
    padding-left: 14px;
  }
}
@media (max-width: 767px) {
  .footer__subtext {
    display: block;
    font-size: 1rem;
  }
  .footer__subtext span {
    display: block;
  }
}

.footer__content {
  margin-top: 30px;
}

.footer__nav {
  display: flex;
}
@media (max-width: 767px) {
  .footer__nav {
    display: block;
  }
}

.footer__menu:nth-child(2) {
  margin-left: 20px;
}
.footer__menu li a {
  display: inline-block;
  font-size: min(1.8rem, 1.8229166667vw);
  font-weight: 500;
  line-height: 1.9444444444;
  padding-left: 1em;
  position: relative;
}
.footer__menu li a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: #4782A5;
  width: 0.9em;
  aspect-ratio: 1/1;
  border-radius: 50%;
}
@media (max-width: 767px) {
  .footer__menu {
    width: 100%;
  }
  .footer__menu:nth-child(2) {
    margin-left: 0;
  }
  .footer__menu li a {
    font-size: 1.1rem;
  }
  .footer__menu li a::before {
    width: 7px;
  }
}

.footer__sns {
  display: flex;
  justify-content: flex-end;
  padding-right: 7%;
  margin-top: 20px;
}
.footer__sns li {
  width: 48px;
}
.footer__sns li:nth-child(n+2) {
  margin-left: 14px;
}
@media (max-width: 767px) {
  .footer__sns li {
    width: 30px;
  }
  .footer__sns li:nth-child(n+2) {
    margin-left: 8px;
  }
}

.footer__bottom {
  padding-left: 2.8%;
  position: relative;
}
.footer__bottom::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: #71A6CF;
  width: 97.2%;
  height: 1px;
  z-index: -1;
}
@media (max-width: 767px) {
  .footer__bottom::before {
    display: none;
  }
}

@media (min-width: 768px) {
  .footer__inner {
    width: 86%;
    max-width: 1175px;
    padding-right: min(3.4%, 47px);
  }
}

.footer__copyright {
  display: inline-block;
  padding: 20px 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4285714286;
  color: #71A6CF;
  background: #fff;
}
@media (max-width: 767px) {
  .footer__copyright {
    font-size: 1rem;
  }
}

.float[class] {
  position: fixed;
  bottom: 70px;
  right: 0;
  z-index: 500;
}
.float[class] .header__contact {
  padding: 0;
  margin: 0;
}
.float[class] .header__contact a {
  display: flex;
  flex-direction: column;
  writing-mode: vertical-lr;
  width: auto;
  padding: 1em 1em;
  padding-top: 3em;
  font-size: 1.4rem;
  border-radius: 10px 0 0 10px;
}
.float[class] .header__contact a::before {
  content: "";
  position: absolute;
  transform: translate(-50%, 0%);
  width: 40%;
  left: 50%;
  top: 1.3em;
  margin: 0;
}
.float[class] .header__contact a::after {
  display: none;
}
@media (max-width: 767px) {
  .float[class] {
    bottom: 60px;
  }
  .float[class] .header__contact {
    display: block;
  }
  .float[class] .header__contact a {
    font-size: 1.2rem;
  }
}

.u-le-small {
  letter-spacing: -0.2em;
}