@charset "UTF-8";
/* ==========================================================================
   SP (〜768px)
   画面幅 375px を基準に、1rem = 10px として可変させています。
   ========================================================================== */

/* 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: min(calc(100vw / 37.5), 16px); scroll-behavior: smooth; scroll-padding-top: 6rem; }
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.4rem;
  line-height: 1.9;
  color: #13264a;
  background: #fff;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
body.is-fixed { overflow: hidden; }
.wrapper { overflow: hidden; padding-top: 6rem; }
.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: 7.2rem;
  height: 5.8rem;
  background: radial-gradient(circle, #cfe6f1 0.15rem, transparent 0.17rem) 0 0 / 1.4rem 1.4rem;
  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; }
}

/* PC用の改行はSPでは解除 */
.hero__lead br,
.service__text br,
.about__text br,
.reason-item__text br,
.flow-item__text br,
.contact__text br { display: none; }

/* button
   -------------------------------------------------------------------------- */
.btn {
  position: relative;
  display: flex;
  align-items: center;
  width: 26rem;
  max-width: 100%;
  height: 5.4rem;
  padding: 0 6rem 0 2.6rem;
  border: 1px solid #24a1af;
  border-radius: 5rem;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1;
  color: #24a1af;
  background: #fff;
}
.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;
}
.btn--fill { color: #fff; background: #24a1af; }
.btn--fill::after { background-image: url(../images/arrow_white.png); }
.btn--white { border-color: #fff; }

/* section heading
   -------------------------------------------------------------------------- */
.sec-head { display: flex; align-items: flex-start; }
.sec-head__num {
  width: 7rem;
  font-size: 4.6rem;
  font-weight: 700;
  line-height: 1;
  color: #d3eef7;
}
.sec-head__title .en {
  display: block;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .09em;
}
.sec-head__title .jp {
  display: block;
  margin-top: 0.8rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .1em;
}

/* header
   -------------------------------------------------------------------------- */
.header {
  position: fixed;
  z-index: 100;
  left: 0;
  top: 0;
  width: 100%;
  background: #fff;
  box-shadow: 0 0.1rem 0.6rem rgba(19, 38, 74, .08);
}
.header__inner { display: flex; align-items: center; justify-content: space-between; height: 6rem; padding: 0 0 0 1.6rem; }
.header__logo { width: 19rem; line-height: 1; }
.header__logo a { display: block; }

.hamburger { position: relative; width: 6rem; height: 6rem; }
.hamburger span {
  position: absolute;
  left: 1.8rem;
  width: 2.4rem;
  height: 2px;
  background: #13264a;
  transition: transform .3s, opacity .3s, top .3s;
}
.hamburger span:nth-child(1) { top: 2.2rem; }
.hamburger span:nth-child(2) { top: 2.9rem; }
.hamburger span:nth-child(3) { top: 3.6rem; }
.is-nav-open .hamburger span:nth-child(1) { top: 2.9rem; transform: rotate(45deg); }
.is-nav-open .hamburger span:nth-child(2) { opacity: 0; }
.is-nav-open .hamburger span:nth-child(3) { top: 2.9rem; transform: rotate(-45deg); }

.gnav {
  position: fixed;
  left: 0;
  top: 6rem;
  width: 100%;
  height: calc(100% - 6rem);
  padding: 1rem 2.4rem 4rem;
  background: #fff;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.is-nav-open .gnav { opacity: 1; visibility: visible; }
.gnav__list li { border-bottom: 1px solid #e3edf1; }
.gnav__list a { display: flex; align-items: baseline; justify-content: space-between; padding: 2rem 0.4rem; }
.gnav__list .jp { font-size: 1.6rem; font-weight: 700; letter-spacing: .08em; line-height: 1.4; }
.gnav__list .en {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.1rem;
  letter-spacing: .06em;
  color: #5f6b7a;
}
.gnav__list .is-current .en { color: #24a1af; font-weight: 700; }

/* hero
   -------------------------------------------------------------------------- */
.hero { position: relative; padding: 4rem 2rem 4.4rem; background: #f7fbfc; overflow: hidden; }
.hero__blob01 { left: -5.5rem; top: 11rem; width: 8rem; }
.hero__blob02 { left: -6rem; bottom: -6rem; width: 15rem; }
.hero__inner { position: relative; z-index: 1; }
.hero__label {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: .25em;
  color: #7fcfd9;
}
.hero__title {
  margin-top: 1.2rem;
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .06em;
}
.hero__lead { margin-top: 1.6rem; letter-spacing: .05em; }
.hero .btn { margin-top: 2.4rem; }
.hero__visual { position: relative; margin: 3rem -1rem 0; }
.hero__visual img { position: relative; z-index: 1; }
.hero__dots01 { left: 0.6rem; top: 2.4rem; }
.hero__dots02 { right: 0.4rem; bottom: 0; }

/* service
   -------------------------------------------------------------------------- */
.service { position: relative; padding: 5.6rem 2rem 6rem; background: #e5f7fb; overflow: hidden; }
.service__blob01 { right: -12rem; bottom: -10rem; width: 28rem; }
.service__inner { position: relative; z-index: 1; }
.service__text { margin-top: 2.4rem; letter-spacing: .05em; }
.service .btn { margin-top: 2.4rem; }
.service__list { margin-top: 5rem; }
.service-card {
  position: relative;
  padding: 2.4rem 2.4rem 2.8rem;
  border-radius: 2.4rem;
  background: #fff;
}
.service-card + .service-card { margin-top: 3.2rem; }
.service-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -1.2rem;
  right: 0;
  width: 53%;
  height: 8rem;
  border-radius: 2.4rem;
  background: #fff;
}
.service-card__img { width: 18rem; margin: 0 auto; }
.service-card__title {
  margin-top: 1.6rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
  text-align: center;
}
.service-card__text {
  width: max-content;
  max-width: 100%;
  margin: 1rem auto 0;
  line-height: 1.8;
  letter-spacing: .05em;
}

/* about
   -------------------------------------------------------------------------- */
.about { position: relative; padding-bottom: 6rem; background: #fff; overflow: hidden; }
.about__blob01 { right: -13rem; top: 24rem; width: 22rem; }
.about__blob02 { right: -12rem; bottom: -14rem; width: 24rem; }
.about__dots { display: none; }
.about__photo {
  position: relative;
  z-index: 1;
  height: 30rem;
  background: #1488e8 url(../images/about_photo.jpg) no-repeat center bottom / cover;
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
}
.about__catch { position: absolute; left: 2rem; top: 2.4rem; width: 21rem; }
.about__body { position: relative; z-index: 1; padding: 4.4rem 2rem 0; }
.about__title {
  margin-top: 3rem;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .08em;
}
.about__text { letter-spacing: .05em; }
.about__title + .about__text { margin-top: 1.6rem; }
.about__text + .about__text { margin-top: 1.4rem; }
.about .btn { margin-top: 2.8rem; }

/* reason
   -------------------------------------------------------------------------- */
.reason { position: relative; padding: 5.6rem 2rem 6rem; background: #fff; overflow: hidden; }
.reason__blob01 { right: -10rem; top: -15rem; width: 22rem; }
.reason__blob02 { right: -17rem; top: 60rem; width: 22rem; }
.reason__blob03 { left: -14rem; bottom: -6rem; width: 24rem; }
.reason__inner { position: relative; z-index: 1; }
.reason__list { margin-top: 3.6rem; }
.reason-item { text-align: center; }
.reason-item + .reason-item { margin-top: 4.8rem; }
.reason-item__img { width: 24rem; margin: 0 auto; }
.reason-item__title {
  margin-top: 1rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .08em;
}
.reason-item__title br { display: none; }
.reason-item__text { margin-top: 1rem; letter-spacing: .05em; text-align: left; }

/* flow
   -------------------------------------------------------------------------- */
.flow { position: relative; padding: 5.6rem 2rem 7rem; background: #fff; overflow: hidden; }
.flow__blob01 { right: -15rem; top: -4rem; width: 22rem; }
.flow__blob02 { left: -13rem; bottom: -10rem; width: 24rem; }
.flow__blob03 { display: none; }
.flow__dots { left: 9rem; bottom: 1.6rem; }
.flow__inner { position: relative; z-index: 1; }
.flow__list { margin-top: 3.6rem; }
.flow-item {
  position: relative;
  display: grid;
  grid-template-columns: 9rem 1fr;
  column-gap: 2rem;
  align-items: start;
}
.flow-item + .flow-item { margin-top: 5.6rem; }
.flow-item + .flow-item::before {
  content: "";
  position: absolute;
  left: 3.1rem;
  top: -3.6rem;
  width: 2.8rem;
  height: 1.4rem;
  background: url(../images/flow_arrow.png) no-repeat center / contain;
  transform: rotate(90deg);
}
.flow-item__icon { grid-row: 1 / 4; width: 9rem; }
.flow-item__step {
  padding-top: 0.6rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
  color: #2aa6b5;
}
.flow-item__title {
  margin-top: 0.6rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
}
.flow-item__text { margin-top: 0.6rem; line-height: 1.8; letter-spacing: .05em; }

/* contact
   -------------------------------------------------------------------------- */
.contact {
  position: relative;
  padding: 5.6rem 2rem 6rem;
  background: #7fc4f5 url(../images/contact_bg.jpg) no-repeat 70% center / cover;
  color: #fff;
  overflow: hidden;
}
.contact::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(36, 161, 175, .8);
}
.contact__overlay { display: none; }
.contact__inner { position: relative; z-index: 1; }
.contact__label { font-size: 1.3rem; font-weight: 500; line-height: 1; letter-spacing: .12em; }
.contact__title {
  margin-top: 1.6rem;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .06em;
  white-space: nowrap;
}
.contact__text { margin-top: 1.4rem; letter-spacing: .05em; }
.contact .btn { margin-top: 2.8rem; }

/* footer
   -------------------------------------------------------------------------- */
.footer { background: #fff; }
.footer__inner { position: relative; padding: 4.4rem 2rem 2.4rem; }
.footer__logo { width: 22rem; }
.footer__address { margin-top: 2rem; font-size: 1.2rem; line-height: 2; letter-spacing: .03em; }
.fnav { margin-top: 3rem; border-top: 1px solid #e3edf1; }
.fnav__list { display: flex; flex-wrap: wrap; }
.fnav__list li { width: 50%; border-bottom: 1px solid #e3edf1; }
.fnav__list a { display: block; padding: 1.4rem 0.4rem; }
.fnav__list .jp { display: block; font-size: 1.3rem; font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.fnav__list .en {
  display: block;
  margin-top: 0.3rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: .06em;
  color: #5f6b7a;
}
.footer__bottom { margin-top: 2.8rem; }
.footer__links { display: flex; font-size: 1.2rem; line-height: 1.5; }
.footer__links li + li { margin-left: 1.4rem; padding-left: 1.4rem; border-left: 1px solid #5f6b7a; }
.footer__copy {
  margin-top: 2rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: #5f6b7a;
}
.pagetop { position: absolute; right: 1.6rem; bottom: 2rem; width: 5rem; }

/* ==========================================================================
   下層ページ共通
   ========================================================================== */
.page-lead__text br,
.svc-block__text br,
.plan__desc br { display: none; }

/* page hero
   -------------------------------------------------------------------------- */
.page-hero { position: relative; height: 16rem; background: #f7fbfc; overflow: hidden; }
.page-hero::before {
  content: "";
  position: absolute;
  left: -5rem;
  bottom: -5rem;
  width: 12rem;
  height: 11.6rem;
  background: url(../images/blob_blue_01.png) no-repeat center / contain;
}
.page-hero__photo {
  position: absolute;
  right: 0;
  top: 0;
  width: 12rem;
  height: 100%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 25% 100%);
}
.page-hero__photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 62% 60%; }
.page-hero__inner { position: absolute; z-index: 1; left: 2rem; right: 2rem; top: 50%; transform: translateY(-50%); }
.page-hero__title .en { display: block; font-size: 2.2rem; font-weight: 700; line-height: 1.1; letter-spacing: .06em; }
.page-hero__title .jp { display: flex; align-items: center; margin-top: 1.2rem; font-size: 1.3rem; font-weight: 700; line-height: 1; letter-spacing: .12em; }
.page-hero__title .jp::before { content: ""; width: 2.4rem; height: 2px; margin-right: 1rem; background: #24a1af; }

.breadcrumb { padding: 1rem 2rem 0; font-size: 1.1rem; line-height: 1.5; color: #5f6b7a; }
.breadcrumb ol { display: flex; flex-wrap: wrap; }
.breadcrumb li + li::before { content: "＞"; margin: 0 0.6rem; font-size: 0.9rem; }

/* page lead
   -------------------------------------------------------------------------- */
.page-lead { position: relative; padding: 4.4rem 2rem 5rem; overflow: hidden; }
.page-lead__blob01 { left: -5.5rem; top: 2rem; width: 8rem; }
.page-lead__blob02 { right: -17rem; bottom: -8rem; width: 22rem; }
.page-lead__inner { position: relative; z-index: 1; }
.page-lead__title { font-size: 2rem; font-weight: 700; line-height: 1.7; letter-spacing: .04em; }
.page-lead__catch { margin-top: 1rem; font-size: 1.2rem; font-weight: 700; letter-spacing: .14em; color: #3bb3c0; }
.page-lead__text { margin-top: 1.8rem; letter-spacing: .05em; }

/* section
   -------------------------------------------------------------------------- */
.sec { position: relative; padding: 5.6rem 2rem 6rem; background: #fff; overflow: hidden; }
.sec--tint { background: #e5f7fb; }
.sec--pale { background: #f7fbfc; }
.sec__inner { position: relative; z-index: 1; }
.sec__blob-r { right: -14rem; top: -8rem; width: 26rem; }
.sec__blob-l { left: -14rem; bottom: -8rem; width: 24rem; }
.sec .sec-head { margin-bottom: 3.2rem; }
.sec .sec-head__title .en { font-size: 2.4rem; }
.sec__note { margin-top: 2rem; font-size: 1.2rem; line-height: 1.8; color: #5f6b7a; }
.sec__btn { margin-top: 4rem; }
.sec__btn .btn { margin: 0 auto; }
.sec .reason__list, .sec .flow__list { margin-top: 0; }

.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; flex-direction: column-reverse; }
.svc-block__img { width: 26rem; margin: 0 auto 2.4rem; }
.svc-block__title { margin-top: 1.4rem; font-size: 2rem; font-weight: 700; line-height: 1.7; letter-spacing: .08em; }
.svc-block__text { margin-top: 1.4rem; letter-spacing: .05em; }
.svc-block .btn { margin-top: 2.4rem; }
.svc-block + .label-en { margin-top: 4rem; }

/* numbered cards
   -------------------------------------------------------------------------- */
.label-en + .num-list { margin-top: 1.6rem; }
.num-list__item { padding: 2.4rem 2.4rem 2.6rem; border-radius: 2.4rem; background: #fff; box-shadow: 0 0.4rem 2rem rgba(19, 38, 74, .06); }
.num-list__item + .num-list__item { margin-top: 1.6rem; }
.num-list__num { display: block; font-size: 2.8rem; font-weight: 700; line-height: 1; color: #bfe6f2; }
.num-list__title { margin-top: 1rem; font-size: 1.7rem; font-weight: 700; line-height: 1.5; letter-spacing: .06em; }
.num-list__text { margin-top: 0.8rem; line-height: 1.8; letter-spacing: .05em; }

/* plan
   -------------------------------------------------------------------------- */
.plan { position: relative; padding: 3.4rem 2.4rem 3rem; border: 2px solid #fff; border-radius: 2.4rem; background: #fff; text-align: center; }
.plan + .plan { margin-top: 3.2rem; }
.plan--recommend { border-color: #24a1af; box-shadow: 0 0.6rem 2.4rem 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.2rem;
  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: 1rem; font-size: 2rem; font-weight: 700; line-height: 1.4; letter-spacing: .08em; }
.plan__price { margin-top: 1.2rem; line-height: 1; color: #24a1af; }
.plan__price .num { font-family: Arial, Helvetica, sans-serif; font-size: 3.6rem; font-weight: 700; }
.plan__price .unit { margin-left: 0.3rem; font-size: 1.5rem; font-weight: 700; }
.plan__price .tax { font-size: 1.1rem; color: #5f6b7a; }
.plan__desc { margin-top: 1.4rem; line-height: 1.8; }
.plan__features { margin-top: 1.8rem; padding-top: 1.8rem; border-top: 1px solid #e3edf1; text-align: left; }
.plan__features li { position: relative; padding-left: 2.4rem; line-height: 2.2; }
.plan__features li::before {
  content: "";
  position: absolute;
  left: 0.4rem;
  top: 1.1rem;
  width: 1rem;
  height: 0.55rem;
  border-left: 2px solid #24a1af;
  border-bottom: 2px solid #24a1af;
  transform: rotate(-45deg);
}

/* info table
   -------------------------------------------------------------------------- */
.info-table { border-top: 1px solid #cfe3ea; background: #fff; }
.info-table__row { border-bottom: 1px solid #cfe3ea; }
.info-table dt { padding: 1rem 1.6rem; font-weight: 700; line-height: 1.6; letter-spacing: .08em; background: #f2fafc; }
.info-table dd { padding: 1.4rem 1.6rem; line-height: 1.8; letter-spacing: .05em; }
.info-table strong { display: block; color: #24a1af; }

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

/* access
   -------------------------------------------------------------------------- */
.access__name { font-size: 1.8rem; font-weight: 700; line-height: 1.5; letter-spacing: .08em; }
.access__text { margin-top: 1.2rem; letter-spacing: .05em; }
.access__map { height: 26rem; margin-top: 2.4rem; border-radius: 2rem; overflow: hidden; background: #e5f7fb; }
.access__map iframe { display: block; width: 100%; height: 100%; border: 0; }

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

/* form
   -------------------------------------------------------------------------- */
.form { padding: 1rem 2rem 3.2rem; border-radius: 2rem; background: #fff; box-shadow: 0 0.4rem 2rem rgba(19, 38, 74, .06); }
.form__row { padding: 1.8rem 0; border-bottom: 1px solid #e3edf1; }
.form__label { display: flex; align-items: center; font-weight: 700; line-height: 1.6; letter-spacing: .06em; }
.form__req, .form__opt {
  margin-left: 1rem;
  padding: 0 0.8rem;
  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 { margin-top: 1rem; }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form select, .form textarea {
  display: block;
  width: 100%;
  padding: 1.1rem 1.4rem;
  border: 1px solid #c5d8e0;
  border-radius: 0.8rem;
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  color: inherit;
  background: #f9fcfd;
}
.form select { height: 4.8rem; }
.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: 2.6rem; text-align: center; }
.form__agree input { width: 1.8rem; height: 1.8rem; margin-right: 0.6rem; vertical-align: -0.3rem; accent-color: #24a1af; }
.form__agree a { color: #24a1af; text-decoration: underline; }
.form__note { margin-top: 1rem; font-size: 1.2rem; text-align: center; color: #5f6b7a; }
.form__note a { color: #24a1af; font-weight: 700; }
.form__submit { margin-top: 2.4rem; }
.form__submit .btn { margin: 0 auto; }

/* policy
   -------------------------------------------------------------------------- */
.policy { letter-spacing: .05em; }
.policy__item { margin-top: 3.6rem; }
.policy__title { margin-bottom: 1.2rem; padding-left: 1.2rem; border-left: 0.4rem solid #24a1af; font-size: 1.6rem; font-weight: 700; line-height: 1.5; letter-spacing: .06em; }
.policy p + p, .policy ul { margin-top: 0.8rem; }
.policy li { position: relative; padding-left: 1.6rem; }
.policy li::before { content: ""; position: absolute; left: 0.2rem; top: 1.1rem; 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.2rem; line-height: 1.6; color: #d6453d; }
.form .is-error input, .form .is-error select, .form .is-error textarea { border-color: #d6453d; background: #fff7f6; }
.form__message { margin-top: 2rem; padding: 1.2rem 1.6rem; border-radius: 0.8rem; font-size: 1.3rem; line-height: 1.7; color: #d6453d; background: #fff1f0; }
.form__submit .btn:disabled { opacity: .6; pointer-events: none; }
.form__done { padding: 4rem 0 1rem; text-align: center; outline: 0; }
.form__done-title { font-size: 2rem; font-weight: 700; line-height: 1.5; letter-spacing: .08em; color: #24a1af; }
.form__done-text { margin-top: 1.4rem; line-height: 2; }

.access__list { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid #e3edf1; }
.access__list li { position: relative; padding-left: 1.8rem; line-height: 1.7; letter-spacing: .04em; }
.access__list li + li { margin-top: 1.2rem; }
.access__list li::before { content: ""; position: absolute; left: 0.2rem; top: 0.9rem; 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; }
}
