@charset "UTF-8";
/* ==========================================================================
   PC (769px〜)
   デザインカンプ幅 2400px を基準に、1rem = カンプ上の 20px として可変させています。
   例）カンプ 100px → 5rem
   ========================================================================== */

/* reset
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, p, ul, ol, li, dl, dt, dd, figure, address { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; vertical-align: bottom; border: 0; }
a { color: inherit; text-decoration: none; }
address, small { font-style: normal; font-size: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

/* base
   -------------------------------------------------------------------------- */
html { font-size: max(8.5px, calc(100vw / 120)); scroll-behavior: smooth; }
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.1rem;
  line-height: 1.8;
  color: #13264a;
  background: #fff;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
.wrapper { min-width: 120rem; overflow: hidden; }
.c-teal { color: #3bb3c0; }
.c-orange { color: #f5a13d; }

/* 装飾 */
.blob { position: absolute; z-index: 0; max-width: none; pointer-events: none; }
.dots {
  position: absolute;
  z-index: 0;
  width: 9.2rem;
  height: 7.4rem;
  background: radial-gradient(circle, #cfe6f1 0.2rem, transparent 0.22rem) 0 0 / 1.75rem 1.75rem;
  pointer-events: none;
}

/* フェードイン */
.js .js-fade { opacity: 0; transform: translateY(2rem); transition: opacity .8s ease, transform .8s ease; }
.js .js-fade.is-show { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .js-fade { opacity: 1; transform: none; transition: none; }
}

/* button
   -------------------------------------------------------------------------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 4.1rem;
  min-width: 18.4rem;
  padding: 0 7rem 0 2.8rem;
  border: 0.1rem solid #24a1af;
  border-radius: 5rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1;
  color: #24a1af;
  background: #fff;
  transition: background-color .3s, color .3s, box-shadow .3s;
}
.btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 3.4rem;
  height: 0.9rem;
  margin-top: -0.45rem;
  background: url(../images/arrow_teal.png) no-repeat center / contain;
  transition: transform .3s;
}
.btn:hover { background: #24a1af; color: #fff; }
.btn:hover::after { background-image: url(../images/arrow_white.png); transform: translateX(0.5rem); }

.btn--fill {
  height: 5.2rem;
  min-width: 23.2rem;
  padding: 0 9rem 0 3.5rem;
  font-size: 1.45rem;
  color: #fff;
  background: #24a1af;
}
.btn--fill::after { right: 2.4rem; width: 4.6rem; background-image: url(../images/arrow_white.png); }
.btn--fill:hover { background: #fff; color: #24a1af; }
.btn--fill:hover::after { background-image: url(../images/arrow_teal.png); }

.btn--white {
  height: 5.25rem;
  min-width: 27.2rem;
  padding: 0 9rem 0 2.9rem;
  border-color: #fff;
  font-size: 1.35rem;
}
.btn--white::after { right: 2.8rem; }
.btn--white:hover { background: #13264a; border-color: #13264a; }

/* section heading
   -------------------------------------------------------------------------- */
.sec-head { display: flex; align-items: flex-start; }
.sec-head__num {
  width: 11.3rem;
  font-size: 6.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.01em;
  color: #d3eef7;
}
.sec-head__title { padding-top: 0.2rem; }
.sec-head__title .en {
  display: block;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .09em;
}
.sec-head__title .jp {
  display: block;
  margin-top: 1.1rem;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .1em;
}

/* header
   -------------------------------------------------------------------------- */
.header { position: relative; z-index: 10; background: #fff; }
.header__inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  height: 8rem;
  padding: 0 6.1rem 0 5.6rem;
}
.header__logo { display: flex; align-items: center; width: 27.4rem; }
.header__logo a { display: block; transition: opacity .3s; }
.header__logo a:hover { opacity: .7; }
.hamburger { display: none; }

.gnav__list { display: flex; height: 100%; gap: 3rem; }
.gnav__list a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding-top: 0.6rem;
  text-align: center;
}
.gnav__list .jp,
.fnav__list .jp {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
}
.gnav__list .en,
.fnav__list .en {
  margin-top: 0.85rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.95rem;
  line-height: 1;
  letter-spacing: .06em;
  color: #5f6b7a;
  transition: color .3s;
}
.gnav__list a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 3.9rem;
  height: 0.3rem;
  margin-left: -1.95rem;
  background: #24a1af;
  transform: scaleX(0);
  transition: transform .3s;
}
.gnav__list a:hover::after,
.gnav__list .is-current a::after { transform: scaleX(1); }
.gnav__list a:hover .en,
.gnav__list .is-current .en { color: #24a1af; font-weight: 700; }

/* hero
   -------------------------------------------------------------------------- */
.hero { position: relative; height: 53.1rem; background: #f7fbfc; overflow: hidden; }
.hero__blob01 { left: -9.8rem; top: 13rem; width: 14.7rem; }
.hero__blob02 { left: -7.3rem; top: 37.6rem; width: 18.7rem; }
.hero__inner { position: relative; z-index: 1; height: 100%; }
.hero__text { position: absolute; left: 7.75rem; top: 7.3rem; }
.hero__label {
  padding-left: 0.7rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: .27em;
  color: #7fcfd9;
}
.hero__title {
  margin-top: 0.6rem;
  font-size: 5.5rem;
  font-weight: 700;
  line-height: 6.9rem;
  letter-spacing: .12em;
  white-space: nowrap;
}
.hero__lead {
  margin-top: 1.6rem;
  padding-left: 0.6rem;
  font-size: 1.4rem;
  line-height: 2.4rem;
  letter-spacing: .08em;
}
.hero .btn { margin-top: 2.4rem; }
.hero__visual { position: absolute; left: 50rem; top: 5.9rem; width: 65rem; }
.hero__visual img { position: relative; z-index: 1; }
.hero__dots01 { left: 1.8rem; top: 5rem; }
.hero__dots02 { left: 55.4rem; top: 33.4rem; }

/* service
   -------------------------------------------------------------------------- */
.service { position: relative; background: #e5f7fb; overflow: hidden; }
.service__blob01 { left: 89.75rem; top: 13.9rem; width: 39.5rem; }
.service__inner {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  padding: 6.5rem 7.5rem 6.1rem 7.5rem;
}
.service__intro { width: 34rem; }
.service__text {
  margin-top: 2.1rem;
  padding-left: 11.3rem;
  font-size: 1.15rem;
  line-height: 1.8rem;
  letter-spacing: .1em;
  white-space: nowrap;
}
.service .btn { margin: 3.6rem 0 0 10.6rem; }
.service__list { display: flex; gap: 1.75rem; margin-top: 0.3rem; }

.service-card {
  position: relative;
  width: 20.7rem;
  min-height: 22rem;
  padding: 1.9rem 1.5rem 1.6rem;
  border-radius: 2.6rem;
  background: #fff;
}
.service-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -1.3rem;
  right: 0;
  width: 53%;
  height: 8rem;
  border-radius: 2.6rem;
  background: #fff;
}
.service-card__img { width: 16.6rem; margin: 0 auto; }
.service-card__title {
  margin-top: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .08em;
  text-align: center;
  white-space: nowrap;
}
.service-card__text {
  width: max-content;
  margin: 1.1rem auto 0;
  font-size: 1.1rem;
  line-height: 1.7rem;
  letter-spacing: .08em;
}

/* about
   -------------------------------------------------------------------------- */
.about { position: relative; height: 62.7rem; background: #fff; overflow: hidden; }
.about__blob01 { left: 97.25rem; top: -26.45rem; width: 37.15rem; }
.about__blob02 { left: 96rem; top: 53rem; width: 37.15rem; }
.about__dots { left: 98.3rem; top: 7.95rem; }
.about__photo {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  width: 67.25rem;
  height: 100%;
  background:
    linear-gradient(to bottom, #1488e8 0, #1f84d6 10%, rgba(42, 127, 195, 0) 26%),
    url(../images/about_photo.jpg) no-repeat 24% bottom / 125% auto,
    #1488e8;
  clip-path: polygon(0 0, 77.9% 0, 100% 100%, 0 100%);
}
.about__catch { position: absolute; left: 9.4rem; top: 8rem; width: 36.15rem; max-width: none; }
.about__body { position: absolute; z-index: 1; left: 60.5rem; top: 8.5rem; }
.about__title {
  margin: 4.5rem 0 0 11rem;
  font-size: 2.9rem;
  font-weight: 700;
  line-height: 5rem;
  letter-spacing: .1em;
  white-space: nowrap;
}
.about__text {
  margin: 0 0 0 11.3rem;
  font-size: 1.15rem;
  line-height: 1.8rem;
  letter-spacing: .1em;
  white-space: nowrap;
}
.about__title + .about__text { margin-top: 2.2rem; }
.about__text + .about__text { margin-top: 1.8rem; }
.about .btn { margin: 4.8rem 0 0 10.7rem; }

/* reason
   -------------------------------------------------------------------------- */
.reason { position: relative; background: #fff; overflow: hidden; }
.reason__blob01 { left: 86.5rem; top: -27.3rem; width: 38.8rem; }
.reason__blob02 { left: 114.5rem; top: 5.3rem; width: 37.15rem; }
.reason__blob03 { left: -18rem; top: 40.5rem; width: 37.05rem; }
.reason__inner { position: relative; z-index: 1; padding: 6rem 6rem 9.4rem; }
.reason .sec-head { padding-left: 1.9rem; }
.reason__list { display: flex; margin-top: 4.4rem; }
.reason-item { width: 36rem; text-align: center; }
.reason-item__img { width: 32.35rem; margin: 0 auto; }
.reason-item__title {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 7.2rem;
  margin-top: -0.6rem;
  font-size: 2.3rem;
  font-weight: 700;
  line-height: 3.6rem;
  letter-spacing: .1em;
}
.reason-item__text {
  margin-top: 1.9rem;
  font-size: 1.5rem;
  line-height: 2.4rem;
  letter-spacing: .08em;
}

/* flow
   -------------------------------------------------------------------------- */
.flow { position: relative; background: #fff; overflow: hidden; }
.flow__blob01 { left: 110rem; top: -9rem; width: 36.95rem; }
.flow__blob02 { left: -13.9rem; top: 38.2rem; width: 37.15rem; }
.flow__blob03 { left: 60rem; top: 52.7rem; width: 42.5rem; }
.flow__dots { left: 20.6rem; top: 49.9rem; }
.flow__inner { position: relative; z-index: 1; padding: 5.8rem 4.3rem 11.2rem; }
.flow .sec-head { padding-left: 3.6rem; }
.flow__list { display: flex; margin-top: 4.6rem; }
.flow-item { position: relative; width: 27.85rem; text-align: center; }
.flow-item + .flow-item::before {
  content: "";
  position: absolute;
  left: -2.25rem;
  top: 5.6rem;
  width: 4.45rem;
  height: 2.25rem;
  background: url(../images/flow_arrow.png) no-repeat center / contain;
}
.flow-item__icon { width: 13rem; margin: 0 auto; }
.flow-item__step {
  margin-top: 2.6rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
  color: #2aa6b5;
}
.flow-item__title {
  margin-top: 1.1rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
  white-space: nowrap;
}
.flow-item__text {
  margin-top: 1.9rem;
  font-size: 1.5rem;
  line-height: 2.4rem;
  letter-spacing: .08em;
}

/* contact
   -------------------------------------------------------------------------- */
.contact {
  position: relative;
  height: 40.5rem;
  background: #7fc4f5 url(../images/contact_bg.jpg) no-repeat center 27% / cover;
  color: #fff;
  overflow: hidden;
}
.contact__overlay { position: absolute; left: -27.95rem; top: -4.9rem; width: 105.2rem; max-width: none; pointer-events: none; }
.contact__inner { position: absolute; z-index: 1; left: 7.5rem; top: 8.7rem; }
.contact__label {
  padding-left: 0.4rem;
  font-size: 1.45rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .12em;
}
.contact__title {
  margin-top: 1.4rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .1em;
  white-space: nowrap;
}
.contact__text {
  margin-top: 1.2rem;
  padding-left: 0.4rem;
  font-size: 1.45rem;
  line-height: 2.4rem;
  letter-spacing: .12em;
  white-space: nowrap;
}
.contact .btn { margin-top: 4rem; }

/* footer
   -------------------------------------------------------------------------- */
.footer { background: #fff; }
.footer__inner { position: relative; padding: 4.6rem 6.7rem 6.4rem 5rem; }
.footer__top { display: flex; justify-content: space-between; align-items: flex-start; }
.footer__info { padding-left: 0.9rem; }
.footer__logo { width: 27.4rem; }
.footer__logo a { display: block; transition: opacity .3s; }
.footer__logo a:hover { opacity: .7; }
.footer__address {
  margin-top: 2.2rem;
  font-size: 1.3rem;
  line-height: 2.4rem;
  letter-spacing: .08em;
}
.fnav__list { display: flex; gap: 3rem; padding-top: 0; }
.fnav__list a { display: flex; flex-direction: column; align-items: center; text-align: center; }
.fnav__list a:hover .en { color: #24a1af; }
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 96.6rem;
  margin-top: 8.9rem;
  padding-top: 1.7rem;
  border-top: 0.1rem solid #dfe3e6;
}
.footer__copy {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .06em;
  color: #5f6b7a;
}
.footer__links { display: flex; font-size: 1.2rem; line-height: 1.5; letter-spacing: .04em; }
.footer__links li + li { margin-left: 1.9rem; padding-left: 1.9rem; position: relative; }
.footer__links li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.05rem;
  min-width: 1px;
  height: 1.2rem;
  margin-top: -0.6rem;
  background: #5f6b7a;
}
.footer__links a:hover { color: #24a1af; text-decoration: underline; }
.pagetop {
  position: absolute;
  right: 5.1rem;
  bottom: 6.5rem;
  width: 7.5rem;
  transition: transform .3s, opacity .3s;
}
.pagetop:hover { transform: translateY(-0.5rem); opacity: .85; }

/* ==========================================================================
   下層ページ共通
   ========================================================================== */
.sp-only { display: none; }

/* page hero
   -------------------------------------------------------------------------- */
.page-hero { position: relative; height: 26rem; background: #f7fbfc; overflow: hidden; }
.page-hero::before {
  content: "";
  position: absolute;
  left: -7.3rem;
  top: 13rem;
  width: 18.7rem;
  height: 18rem;
  background: url(../images/blob_blue_01.png) no-repeat center / contain;
}
.page-hero::after {
  content: "";
  position: absolute;
  left: 47rem;
  top: 16.5rem;
  width: 9.2rem;
  height: 7.4rem;
  background: radial-gradient(circle, #cfe6f1 0.2rem, transparent 0.22rem) 0 0 / 1.75rem 1.75rem;
}
.page-hero__photo {
  position: absolute;
  right: 0;
  top: 0;
  width: 62rem;
  height: 100%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 9.3% 100%);
}
.page-hero__photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 58%; }
.page-hero__inner { position: absolute; z-index: 1; left: 7.75rem; top: 50%; transform: translateY(-50%); }
.page-hero__title .en {
  display: block;
  font-size: 5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .1em;
}
.page-hero__title .jp {
  display: flex;
  align-items: center;
  margin-top: 1.8rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .14em;
}
.page-hero__title .jp::before { content: ""; width: 3.9rem; height: 0.3rem; margin-right: 1.4rem; background: #24a1af; }

.breadcrumb { padding: 1.4rem 7.75rem 0; font-size: 1.05rem; line-height: 1.5; letter-spacing: .06em; color: #5f6b7a; }
.breadcrumb ol { display: flex; }
.breadcrumb li + li::before { content: "＞"; margin: 0 0.8rem; font-size: 0.8rem; }
.breadcrumb a:hover { color: #24a1af; text-decoration: underline; }

/* page lead
   -------------------------------------------------------------------------- */
.page-lead { position: relative; padding: 6.5rem 7.5rem 7.5rem; text-align: center; overflow: hidden; }
.page-lead__blob01 { left: -8rem; top: 5rem; width: 14.7rem; }
.page-lead__blob02 { left: 108rem; top: 8rem; width: 37.15rem; }
.page-lead__inner { position: relative; z-index: 1; }
.page-lead__title { font-size: 3.2rem; font-weight: 700; line-height: 5.2rem; letter-spacing: .1em; }
.page-lead__catch { margin-top: 1.6rem; font-size: 1.5rem; font-weight: 700; line-height: 1.6; letter-spacing: .2em; color: #3bb3c0; }
.page-lead__text { margin-top: 2.8rem; font-size: 1.35rem; line-height: 2.7rem; letter-spacing: .08em; }

/* section
   -------------------------------------------------------------------------- */
.sec { position: relative; padding: 7rem 7.5rem 8rem; background: #fff; overflow: hidden; }
.sec--tint { background: #e5f7fb; }
.sec--pale { background: #f7fbfc; }
.sec__inner { position: relative; z-index: 1; }
.sec__blob-r { left: 96rem; top: -14rem; width: 39.5rem; }
.sec__blob-l { left: -22rem; top: 30rem; width: 37.15rem; }
.sec .sec-head { margin-bottom: 4.6rem; }
.sec__note { margin-top: 2.4rem; font-size: 1.15rem; line-height: 1.8; letter-spacing: .06em; color: #5f6b7a; }
.sec__btn { margin-top: 5rem; text-align: center; }
.sec .reason__list, .sec .flow__list { margin-top: 0; }
.sec .reason-item { width: 35rem; }
.sec .flow-item { width: 26.25rem; }

.label-en {
  display: flex;
  align-items: center;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #24a1af;
}
.label-en::before { content: ""; width: 0.8rem; height: 0.8rem; margin-right: 0.8rem; border-radius: 50%; background: #f5a13d; }

/* service block
   -------------------------------------------------------------------------- */
.svc-block { display: flex; align-items: center; justify-content: space-between; }
.svc-block--rev { flex-direction: row-reverse; }
.svc-block__body { width: 60rem; }
.svc-block__img { width: 38rem; margin: 0 2rem; }
.svc-block__title { margin-top: 2rem; font-size: 2.3rem; font-weight: 700; line-height: 4rem; letter-spacing: .1em; }
.svc-block__text { margin-top: 2rem; font-size: 1.35rem; line-height: 2.7rem; letter-spacing: .08em; }
.svc-block .btn { margin-top: 3rem; }
.svc-block + .label-en { margin-top: 4rem; }

/* numbered cards
   -------------------------------------------------------------------------- */
.num-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; }
.label-en + .num-list { margin-top: 2rem; }
.num-list__item {
  padding: 2.8rem 2.8rem 3rem;
  border-radius: 2.6rem;
  background: #fff;
  box-shadow: 0 0.4rem 2.4rem rgba(19, 38, 74, .06);
}
.num-list__num { display: block; font-size: 3.2rem; font-weight: 700; line-height: 1; color: #bfe6f2; }
.num-list__title { margin-top: 1.4rem; font-size: 1.6rem; font-weight: 700; line-height: 1.5; letter-spacing: .08em; }
.num-list__text { margin-top: 1rem; font-size: 1.2rem; line-height: 2.1rem; letter-spacing: .06em; }

/* plan
   -------------------------------------------------------------------------- */
.plan-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; align-items: stretch; }
.plan {
  position: relative;
  padding: 3.8rem 3rem 3.6rem;
  border: 0.15rem solid #fff;
  border-radius: 2.6rem;
  background: #fff;
  text-align: center;
}
.plan--recommend { border-color: #24a1af; box-shadow: 0 0.6rem 3rem rgba(36, 161, 175, .18); }
.plan__badge {
  position: absolute;
  left: 50%;
  top: -1.5rem;
  width: 12rem;
  margin-left: -6rem;
  border-radius: 2rem;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 3rem;
  letter-spacing: .12em;
  color: #fff;
  background: #f5a13d;
}
.plan__en { font-family: Arial, Helvetica, sans-serif; font-size: 1.1rem; font-weight: 700; line-height: 1; letter-spacing: .2em; color: #3bb3c0; }
.plan__name { margin-top: 1.2rem; font-size: 2rem; font-weight: 700; line-height: 1.4; letter-spacing: .1em; }
.plan__price { margin-top: 1.6rem; line-height: 1; color: #24a1af; white-space: nowrap; }
.plan__price .num { font-family: Arial, Helvetica, sans-serif; font-size: 3.8rem; font-weight: 700; letter-spacing: .02em; }
.plan__price .unit { margin-left: 0.3rem; font-size: 1.5rem; font-weight: 700; }
.plan__price .tax { font-size: 1.05rem; color: #5f6b7a; }
.plan__desc { margin-top: 1.8rem; font-size: 1.25rem; line-height: 2.2rem; letter-spacing: .06em; }
.plan__features { margin-top: 2.2rem; padding-top: 2.2rem; border-top: 0.1rem solid #e3edf1; text-align: left; }
.plan__features li { position: relative; padding-left: 2.4rem; font-size: 1.25rem; line-height: 2.6rem; letter-spacing: .06em; }
.plan__features li::before {
  content: "";
  position: absolute;
  left: 0.4rem;
  top: 0.8rem;
  width: 1rem;
  height: 0.55rem;
  border-left: 0.2rem solid #24a1af;
  border-bottom: 0.2rem solid #24a1af;
  transform: rotate(-45deg);
}

/* info table
   -------------------------------------------------------------------------- */
.info-table { border-top: 0.1rem solid #cfe3ea; background: #fff; }
.info-table__row { display: flex; border-bottom: 0.1rem solid #cfe3ea; }
.info-table dt {
  flex: none;
  width: 24rem;
  padding: 2.4rem 3rem;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 2.4rem;
  letter-spacing: .1em;
  background: #f2fafc;
}
.info-table dd { flex: 1; padding: 2.4rem 3rem; font-size: 1.35rem; line-height: 2.4rem; letter-spacing: .08em; }
.info-table strong { color: #24a1af; }

/* faq
   -------------------------------------------------------------------------- */
.faq__item { padding: 2.6rem 3rem; border-radius: 2rem; background: #fff; box-shadow: 0 0.4rem 2.4rem rgba(19, 38, 74, .06); }
.faq__item + .faq__item { margin-top: 1.6rem; }
.faq dt, .faq dd { position: relative; padding-left: 4.4rem; font-size: 1.35rem; line-height: 2.4rem; letter-spacing: .08em; }
.faq dt { font-size: 1.5rem; font-weight: 700; }
.faq dd { margin-top: 1.2rem; }
.faq dt::before, .faq dd::before {
  position: absolute;
  left: 0;
  top: -0.3rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3rem;
}
.faq dt::before { content: "Q"; color: #24a1af; }
.faq dd::before { content: "A"; color: #f5a13d; }

/* access
   -------------------------------------------------------------------------- */
.access { display: flex; justify-content: space-between; align-items: stretch; }
.access__info { width: 43rem; }
.access__name { font-size: 2rem; font-weight: 700; line-height: 1.5; letter-spacing: .1em; }
.access__text { margin-top: 1.6rem; font-size: 1.35rem; line-height: 2.5rem; letter-spacing: .08em; }
.access__map { width: 58rem; height: 36rem; border-radius: 2.6rem; overflow: hidden; background: #e5f7fb; }
.access__map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* flow（番号版）
   -------------------------------------------------------------------------- */
.flow-item__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 13rem;
  height: 13rem;
  margin: 0 auto;
  border-radius: 50%;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 4.4rem;
  font-weight: 700;
  color: #24a1af;
  background: #d9f3fb;
}

/* form
   -------------------------------------------------------------------------- */
.form { width: 86rem; margin: 0 auto; padding: 2rem 5rem 5rem; border-radius: 2.6rem; background: #fff; box-shadow: 0 0.4rem 2.4rem rgba(19, 38, 74, .06); }
.form__row { display: flex; align-items: flex-start; padding: 2.4rem 0; border-bottom: 0.1rem solid #e3edf1; }
.form__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: none;
  width: 24rem;
  padding: 1rem 3rem 0 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 2.4rem;
  letter-spacing: .08em;
}
.form__req, .form__opt {
  flex: none;
  padding: 0 0.9rem;
  border-radius: 0.4rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 2rem;
  letter-spacing: .1em;
  color: #fff;
  background: #f5a13d;
}
.form__opt { color: #5f6b7a; background: #e8eef1; }
.form__field { flex: 1; }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form select, .form textarea {
  display: block;
  width: 100%;
  padding: 1.1rem 1.6rem;
  border: 0.1rem solid #c5d8e0;
  border-radius: 0.8rem;
  font: inherit;
  font-size: 1.35rem;
  line-height: 2.2rem;
  color: inherit;
  background: #f9fcfd;
  transition: border-color .3s, box-shadow .3s;
}
.form select { height: 4.6rem; }
.form textarea { resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 0; border-color: #24a1af; box-shadow: 0 0 0 0.3rem rgba(36, 161, 175, .18); background: #fff; }
.form ::placeholder { color: #a9b6c0; }
.form__agree { margin-top: 3.4rem; font-size: 1.35rem; text-align: center; letter-spacing: .08em; }
.form__agree input { width: 1.6rem; height: 1.6rem; margin-right: 0.6rem; vertical-align: -0.2rem; accent-color: #24a1af; }
.form__agree a { color: #24a1af; text-decoration: underline; }
.form__note { margin-top: 1.2rem; font-size: 1.2rem; text-align: center; letter-spacing: .06em; color: #5f6b7a; }
.form__note a { color: #24a1af; font-weight: 700; }
.form__submit { margin-top: 3rem; text-align: center; }
.form__submit .btn { cursor: pointer; }

/* policy
   -------------------------------------------------------------------------- */
.policy { width: 90rem; margin: 0 auto; font-size: 1.35rem; line-height: 2.6rem; letter-spacing: .07em; }
.policy__item { margin-top: 4.4rem; }
.policy__title { margin-bottom: 1.4rem; padding-left: 1.6rem; border-left: 0.4rem solid #24a1af; font-size: 1.7rem; font-weight: 700; line-height: 1.5; letter-spacing: .1em; }
.policy p + p, .policy ul { margin-top: 1rem; }
.policy li { position: relative; padding-left: 1.6rem; }
.policy li::before { content: ""; position: absolute; left: 0.2rem; top: 1.05rem; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #3bb3c0; }

/* mail form（エラー・完了表示）
   -------------------------------------------------------------------------- */
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__error { margin-top: 0.6rem; font-size: 1.15rem; line-height: 1.6; letter-spacing: .04em; color: #d6453d; }
.form .is-error input, .form .is-error select, .form .is-error textarea { border-color: #d6453d; background: #fff7f6; }
.form__agree .form__error { margin-top: 0.4rem; }
.form__message { margin-top: 2.4rem; padding: 1.2rem 2rem; border-radius: 0.8rem; font-size: 1.25rem; line-height: 1.7; text-align: center; color: #d6453d; background: #fff1f0; }
.form__submit .btn:disabled { opacity: .6; cursor: default; pointer-events: none; }
.form__done { padding: 5rem 0 2rem; text-align: center; outline: 0; }
.form__done-title { font-size: 2.2rem; font-weight: 700; line-height: 1.5; letter-spacing: .1em; color: #24a1af; }
.form__done-text { margin-top: 1.6rem; font-size: 1.35rem; line-height: 2.6rem; letter-spacing: .08em; }

.access__list { margin-top: 2.4rem; padding-top: 2.4rem; border-top: 0.1rem solid #e3edf1; }
.access__list li { position: relative; padding-left: 1.8rem; font-size: 1.25rem; line-height: 2.2rem; letter-spacing: .06em; }
.access__list li + li { margin-top: 1.2rem; }
.access__list li::before { content: ""; position: absolute; left: 0.2rem; top: 0.8rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: #3bb3c0; }
.access__list .line { display: block; font-weight: 700; }

/* ページ遷移のフェード
   -------------------------------------------------------------------------- */
@keyframes page-in { from { opacity: 0; } to { opacity: 1; } }
body { animation: page-in .6s ease; }
body.is-leaving { animation: none; opacity: 0; transition: opacity .35s ease; }
@media (prefers-reduced-motion: reduce) {
  body { animation: none; }
  body.is-leaving { opacity: 1; transition: none; }
}
