@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, 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 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

/**
 * !!! 変数の定義 !!!
 * 変数は作りすぎず、デザインコンポーネント、もしくはシンボルを元に作成する
 * またGoogle Font等の特殊なウェブフォントの場合、そのフォント名を定義してわかりやすくする
 */
/**
 * !!! ブレークポイント !!!
 */
@media only screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

@media only screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

::-webkit-scrollbar {
  display: none;
  -webkit-appearance: none;
}

/**
 * !!! ページCSS基本設定 !!!
 * 基本的にこの箇所は操作しないようにする
 * ----------------ここから----------------
 */
html {
  font-size: 62.5%;
  font-family: "Noto Sans JP", "游ゴシック", YuGothic, "Hiragino Sans", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  background: #fff;
  color: #2E2A34;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
}

body {
  font-size: 14px;
  font-size: 1.4rem;
  position: relative;
}
body > img {
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  pointer-events: none;
  width: 64.705882%;
  height: auto;
}

* {
  box-sizing: border-box;
}

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

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

input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

/**
 * ----------------ここまで----------------
 */
/**
 * !!! FlexBox Rule !!!
 * 都度scssを記載するのではなく、クラスで定義し、クラスの付け外しで管理すること。
 */
.flex-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

/**
 * !!! Inner Rule !!!
 * 最初にデザインを確認し、存在するinnerパターンを作成すること
 * max-width指定のみだと、画面幅を縮小するときに余白が消えるため、paddingをつけること
 * 例) innerが1000pxであれば、
 *     max-width: 1060px;
 *     padding: 0 30px;
 */
.inner {
  max-width: 1140px;
  padding: 0 30px;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .inner {
    padding: 0 16px;
  }
}

[data-trigger] {
  position: relative;
  top: 60px;
  transition: top 1s, opacity 1s;
  opacity: 0;
}
[data-trigger].visible {
  top: 0;
  opacity: 1;
}

.footer {
  padding-top: 56px;
  background: #fff;
  text-align: center;
}
.footer__brand {
  width: 100%;
  max-width: 160px;
  margin: 0 auto;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .footer__brand {
    transition: all 0.3s ease;
  }
  .footer__brand:hover {
    opacity: 0.7;
  }
}
.footer__info {
  margin-top: 16px;
}
.footer__info p {
  font-size: 14px;
  line-height: 2.4;
  letter-spacing: 0.05em;
}
.footer__info p b {
  font-size: 16px;
  font-weight: bold;
}
.footer__cv {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 24px;
  padding-bottom: 40px;
}
.footer__cv__tel a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .footer__cv__tel a {
    transition: all 0.3s ease;
  }
  .footer__cv__tel a:hover {
    opacity: 0.7;
  }
}
.footer__cv__tel a span {
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0.05em;
  font-weight: bold;
}
.footer__cv p {
  font-size: 12px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: bold;
}
.footer__nav {
  background: #F2F3F6;
  padding: 24px 0;
}
@media only screen and (max-width: 767px) {
  .footer__nav {
    display: none;
  }
}
.footer__nav ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
}
.footer__nav ul li {
  position: relative;
}
.footer__nav ul li:before {
  content: "";
  position: absolute;
  left: -12px;
  top: 54%;
  transform: translateY(-50%) rotate(21deg);
  width: 1px;
  height: 8px;
  background: #384A8C;
}
.footer__nav ul li:first-child:before {
  display: none;
}
.footer__nav ul li a {
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: normal;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .footer__nav ul li a {
    transition: all 0.3s ease;
  }
  .footer__nav ul li a:hover {
    opacity: 0.7;
  }
}
.footer__copy {
  padding: 16px 0;
  background: #00114E;
}
.footer__copy p {
  font-size: 12px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #fff;
}

.header-title {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  padding: 10px 16px;
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.05em;
  z-index: 1;
}
@media (max-width: 1024px) {
  .header-title {
    display: none;
  }
}

.header {
  position: fixed;
  left: 0;
  top: -65px;
  width: 100%;
  padding: 15px 32px;
  background: rgba(255, 255, 255, 0.7);
  z-index: 100;
  transition: all 0.8s ease;
}
.header.is-show {
  top: 0 !important;
}
@media (max-width: 1016px) {
  .header {
    top: -90px;
  }
}
@media only screen and (max-width: 767px) {
  .header {
    padding: 10px 16px;
    top: -76px;
  }
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.header__brand {
  width: 100%;
  max-width: 296px;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .header__brand {
    transition: all 0.3s ease;
  }
  .header__brand:hover {
    opacity: 0.7;
  }
}
@media (max-width: 1280px) {
  .header__brand {
    max-width: 240px;
  }
}
@media only screen and (max-width: 767px) {
  .header__brand {
    max-width: 240px;
  }
}
.header__toggle {
  display: none;
}
@media (max-width: 1015px) {
  .header__toggle {
    display: block;
    width: 56px;
    height: 56px;
    position: relative;
  }
  .header__toggle__button {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 100px;
    background: #718cc7;
  }
  .header__toggle__button span {
    display: block;
    width: 21px;
    height: 3px;
    border-radius: 10px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    position: absolute;
  }
  .header__toggle__button span:nth-child(1) {
    top: calc(50% - 7px);
  }
  .header__toggle__button span:nth-child(2) {
    opacity: 1;
  }
  .header__toggle__button span:nth-child(3) {
    top: calc(50% + 7px);
  }
}
@media (max-width: 1015px) {
  .header__nav {
    display: none;
  }
}
.header__nav ul {
  display: flex;
  align-items: center;
  gap: 34px;
}
.header__nav ul li {
  min-width: 124px;
  text-align: center;
  position: relative;
}
@media (max-width: 1280px) {
  .header__nav ul li {
    min-width: 0px;
  }
}
.header__nav ul li:before {
  content: "";
  position: absolute;
  left: -15px;
  top: 54%;
  transform: translateY(-50%) rotate(21deg);
  width: 1px;
  height: 8px;
  background: #384a8c;
}
.header__nav ul li:first-child:before {
  display: none;
}
.header__nav ul li a {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 2;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .header__nav ul li a {
    transition: all 0.3s ease;
  }
  .header__nav ul li a:hover {
    opacity: 0.7;
  }
}

.single-header {
  position: absolute;
  left: 0;
  top: 24px;
  width: 100%;
  z-index: 2;
  color: #fff;
}
@media (max-width: 1024px) {
  .single-header {
    top: 0;
  }
}
@media only screen and (max-width: 767px) {
  .single-header {
    top: 0;
  }
}
.single-header__inner {
  padding: 0 32px;
}
@media only screen and (max-width: 767px) {
  .single-header__inner {
    padding: 10px;
  }
}
.single-header__upper {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 16px;
}
@media only screen and (max-width: 767px) {
  .single-header__upper {
    display: none;
  }
}
.single-header__cv {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 16px;
}
@media (max-width: 1024px) {
  .single-header__cv {
    display: none;
  }
}
.single-header__cv__tel a {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 2px;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .single-header__cv__tel a {
    transition: all 0.3s ease;
  }
  .single-header__cv__tel a:hover {
    opacity: 0.7;
  }
}
.single-header__cv__tel a > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.single-header__cv__tel a > div svg {
  width: 24px;
  height: 24px;
}
.single-header__cv__tel a > div span {
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: 600;
}
.single-header__cv__tel a small {
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}
.single-header__lower {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 16px 0;
}
@media only screen and (max-width: 767px) {
  .single-header__lower {
    padding: 0;
  }
}
.single-header__brand {
  width: 296px;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .single-header__brand {
    transition: all 0.3s ease;
  }
  .single-header__brand:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767px) {
  .single-header__brand {
    width: 240px;
  }
}
.single-header__toggle {
  width: 56px;
  height: 56px;
  position: relative;
}
@media (max-width: 1024px) {
  .single-header__toggle {
    display: block !important;
  }
}
.single-header__toggle__button {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.single-header__toggle__button span {
  display: block;
  width: 21px;
  height: 2px;
  background: #fff;
  position: absolute;
  border-radius: 10px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.single-header__toggle__button span:nth-child(1) {
  top: calc(50% - 8px);
}
.single-header__toggle__button span:nth-child(2) {
  opacity: 1;
}
.single-header__toggle__button span:nth-child(3) {
  top: calc(50% + 8px);
}
@media (max-width: 1024px) {
  .single-header__nav {
    display: none;
  }
}
.single-header__nav ul {
  display: flex;
  align-items: center;
  gap: 53px;
}
@media only screen and (min-width: 768px) and (max-width: 1124px) {
  .single-header__nav ul {
    gap: 32px;
    margin-top: 16px;
  }
}
.single-header__nav ul li {
  position: relative;
}
.single-header__nav ul li:before {
  content: "";
  position: absolute;
  left: -28px;
  top: 54%;
  transform: translateY(-50%) rotate(21deg);
  width: 1px;
  height: 8px;
  background: #fff;
}
@media only screen and (min-width: 768px) and (max-width: 1124px) {
  .single-header__nav ul li:before {
    left: -16px;
  }
}
.single-header__nav ul li:first-child:before {
  display: none;
}
.single-header__nav ul li a {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 2;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .single-header__nav ul li a {
    transition: all 0.3s ease;
  }
  .single-header__nav ul li a:hover {
    opacity: 0.7;
  }
}
.single-header__nav ul li a.is-active {
  color: #fff;
  font-weight: bold;
}

.sp-mega-menu {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/menu_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 99999;
  display: none;
}
.sp-mega-menu__inner {
  height: 100%;
  overflow: scroll;
}
.sp-mega-menu__header {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 10px;
}
@media only screen and (min-width: 768px) and (max-width: 1124px) {
  .sp-mega-menu__header {
    padding: 18px 32px;
  }
}
.sp-mega-menu__header__logo {
  width: 100%;
  max-width: 240px;
}
@media only screen and (min-width: 768px) and (max-width: 1124px) {
  .sp-mega-menu__header__logo {
    max-width: 296px;
  }
}
.sp-mega-menu__header__toggle {
  width: 56px;
  height: 56px;
  position: relative;
}
.sp-mega-menu__header__toggle__button {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.sp-mega-menu__header__toggle__button span {
  display: block;
  width: 21px;
  height: 3px;
  background: #fff;
  position: absolute;
  border-radius: 10px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.sp-mega-menu__header__toggle__button span:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
.sp-mega-menu__header__toggle__button span:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.sp-mega-menu__body {
  padding-top: 124px;
}
.sp-mega-menu__body__inner {
  padding: 0 16px;
}
.sp-mega-menu__body__list {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 32px;
  flex-direction: column;
}
.sp-mega-menu__body__list li {
  width: 100%;
  text-align: center;
}
.sp-mega-menu__body__list li a {
  font-size: 16px;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.75;
}
.sp-mega-menu__body__cv {
  margin-top: 48px;
  padding-bottom: 60px;
}
.sp-mega-menu__body__cv__tel a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  opacity: 1;
}
@media only screen and (min-width: 768px) {
  .sp-mega-menu__body__cv__tel a {
    transition: all 0.3s ease;
  }
  .sp-mega-menu__body__cv__tel a:hover {
    opacity: 0.7;
  }
}
.sp-mega-menu__body__cv__tel a svg {
  width: 24px;
  height: 24px;
}
.sp-mega-menu__body__cv__tel a span {
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: 600;
  color: #fff;
}
.sp-mega-menu__body__cv__button {
  margin-top: 24px;
}
.sp-mega-menu__body__cv__button a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.bnrs {
  padding: 88px 0;
  background-image: url(/images/footer_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .bnrs {
    padding: 48px 0;
  }
}
.bnrs__inner {
  max-width: 1204px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .bnrs__inner {
    padding: 0 16px;
  }
}
.bnrs__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  text-align: left;
}
@media only screen and (max-width: 767px) {
  .bnrs__row {
    flex-direction: column;
    gap: 16px;
  }
}
.bnrs__col {
  width: calc(50% - 12px);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  padding: 32px;
  cursor: pointer;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .bnrs__col {
    padding: 24px;
    width: 100%;
  }
}
@media only screen and (min-width: 768px) {
  .bnrs__col {
    overflow: hidden;
  }
  .bnrs__col:hover .bnrs__col__inner__img {
    transform: scale(1.1);
  }
  .bnrs__col:hover .common-button02:before {
    width: 0;
  }
}
.bnrs__col__inner {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  position: relative;
  z-index: 1;
}
.bnrs__col__inner h2 {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
}
@media only screen and (max-width: 767px) {
  .bnrs__col__inner h2 {
    font-size: 20px;
  }
}
.bnrs__col__inner p {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-top: 16px;
}
.bnrs__col__inner__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 0;
  height: 100%;
  transform: scale(1);
  transition: transform 0.3s ease-in-out;
}
.bnrs__col__inner__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.bnrs__btn {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  width: 100%;
  margin-top: 24px;
}

.breadcrumb__inner {
  max-width: 1628px;
  margin: 0 auto;
  padding: 30px;
  display: flex;
  align-items: center;
}
@media only screen and (max-width: 767px) {
  .breadcrumb__inner {
    padding: 32px 16px;
  }
}
.breadcrumb__inner svg {
  display: block;
  margin-right: 8px;
}
.breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.breadcrumb__list li {
  position: relative;
}
.breadcrumb__list li:before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background-image: url(../images/ico_bradcrumb.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  right: -19px;
  top: 50%;
  transform: translateY(-50%);
}
.breadcrumb__list li:last-child:before {
  display: none;
}
.breadcrumb__list span {
  color: #384A8C;
  font-weight: bold;
}

.common-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 198px;
  height: 44px;
  border-radius: 100px;
  border: 1px solid #fff;
  color: #fff;
  transition: all 0.3s ease;
}
.common-button--big {
  width: 318px;
  height: 54px;
}
.common-button--small {
  width: 120px;
  height: 34px;
}
@media only screen and (min-width: 768px) {
  .common-button:hover {
    background: #fff;
    color: #384a8c;
  }
  .common-button:hover svg path {
    fill: #384a8c;
  }
}
.common-button svg path {
  fill: #fff;
  transition: all 0.3s ease;
}
.common-button span {
  display: block;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 2;
  font-weight: bold;
}
.common-button--blue {
  background: #384a8c;
  border: 1px solid #384a8c;
}

.common-button02 {
  display: flex;
  width: 288px;
  padding: 10px 16px;
  padding-right: 0;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .common-button02:hover:before {
    width: 0;
  }
}
@media only screen and (max-width: 767px) {
  .common-button02 {
    width: calc(100% - 20px);
  }
}
.common-button02:before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: #718CC7;
  transition: width 0.3s ease;
}
.common-button02 span {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 2;
  font-weight: bold;
  font-family: "Libre Baskerville", serif;
}
.common-button02 svg {
  width: 24px;
  height: 24px;
}
.common-button02 svg path {
  fill: #384a8c;
}
.common-button02--white:before {
  background: #fff;
}
.common-button02--white svg path {
  fill: #fff;
}

.information-component {
  padding: 92px 0;
  background-image: url(../images/top/bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .information-component {
    padding: 48px 0;
    background-image: url(../images/top/bg_sp.jpg);
  }
}
.information-component__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.information-component__title h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0px;
}
.information-component__title h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  line-height: 1.7;
  letter-spacing: 0.05em;
  font-weight: bold;
  color: #fff;
}
.information-component__title h2 strong {
  font-size: 16px;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #fff;
}
.information-component__title h3 {
  font-size: 32px;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  margin-top: 32px;
}
@media only screen and (max-width: 767px) {
  .information-component__title h3 {
    font-size: 24px;
    line-height: 1.5;
  }
}
.information-component__title p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  color: #fff;
  text-align: center;
  margin-top: 16px;
}
@media only screen and (max-width: 767px) {
  .information-component__title p {
    padding: 0 16px;
    text-align: left;
  }
}
.information-component__row {
  display: flex;
  max-width: 1264px;
  padding: 0 30px;
  margin: auto;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 32px;
}
@media only screen and (max-width: 767px) {
  .information-component__row {
    flex-direction: column;
    padding: 0 16px;
  }
}
.information-component__item {
  width: calc(50% - 12px);
  background: #fff;
  padding: 32px 24px;
}
@media only screen and (max-width: 767px) {
  .information-component__item {
    width: 100%;
    padding: 24px 16px;
  }
}
.information-component__item__text {
  display: flex;
  flex-direction: column;
  min-height: 156px;
}
@media (max-width: 1120px) {
  .information-component__item__text {
    min-height: 192px;
  }
}
@media (max-width: 885px) {
  .information-component__item__text {
    min-height: 222px;
  }
}
@media only screen and (max-width: 767px) {
  .information-component__item__text {
    min-height: 0;
  }
}
.information-component__item__text h3 {
  font-size: 24px;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #384A8C;
}
.information-component__item__text p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 12px;
}
.information-component__item__button {
  margin-top: 24px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}
@media only screen and (max-width: 767px) {
  .information-component__item__button a {
    width: 100%;
  }
}

.intro-component {
  padding: 56px 0;
}
@media only screen and (max-width: 767px) {
  .intro-component {
    padding: 24px 0;
  }
}
.intro-component__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .intro-component__inner {
    padding: 0 16px;
  }
}
.intro-component__inner h2 {
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  color: #384a8c;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .intro-component__inner h2 {
    font-size: 24px;
  }
}
.intro-component__inner p {
  margin-top: 16px;
}
.intro-component__inner p span {
  display: block;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 20px;
  text-align: center;
  margin: 12px 0;
}
@media only screen and (max-width: 767px) {
  .intro-component__inner p span {
    text-align: left;
  }
}
.intro-component__inner p span:first-child {
  margin-top: 0;
}
.intro-component__inner p span:last-child {
  margin-bottom: 0;
}

.points-component {
  margin-top: 48px;
  position: relative;
  background: #fff;
  border-radius: 8px;
  padding: 40px 24px 24px;
}
.points-component h3 {
  font-size: 16px;
  font-weight: bold;
  position: absolute;
  left: 50%;
  top: -20px;
  transform: translate(-50%, 0);
  width: 100%;
  height: 100%;
  text-align: center;
  z-index: 1;
}
.points-component h3 span {
  display: inline-block;
  background: #384A8C;
  color: #fff;
  padding: 8px 24px;
  border-radius: 80px;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: bold;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  min-width: 240px;
}
.points-component > p span {
  display: block;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 10px 0;
}
@media only screen and (min-width: 768px) {
  .points-component > p span {
    margin: 0;
  }
}
@media only screen and (max-width: 767px) {
  .points-component > p span {
    margin: 0;
    text-align: left;
  }
}
.points-component > p span:first-child {
  margin-top: 0;
}
.points-component > p span:last-child {
  margin-bottom: 0;
}
.points-component ul {
  padding-left: 24px;
}
.points-component ul li {
  list-style: disc;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #384A8C;
  font-weight: bold;
  margin: 10px 0;
}
.points-component ul li small {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #384A8C;
  font-weight: bold;
}
.points-component ul li:last-child {
  margin-bottom: 0;
}
.points-component--book {
  margin-top: 48px;
  padding-bottom: 32px;
}
.points-component--book-inner {
  position: relative;
  background: #F2F3F6;
  border-radius: 8px;
  padding: 40px 24px 24px;
}
@media only screen and (max-width: 767px) {
  .points-component--book-inner {
    padding: 40px 16px 24px 16px;
  }
}
.points-component--book-inner h3 {
  position: absolute;
  left: 50%;
  top: -20px;
  transform: translate(-50%, 0);
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
  z-index: 1;
}
.points-component--book-inner h3 span {
  display: inline-block;
  background: #384A8C;
  color: #fff;
  padding: 8px 24px;
  border-radius: 80px;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: bold;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
}
.points-component--book-inner h3 span.big {
  min-width: 240px;
  text-align: center;
}
.points-component--book-inner ul {
  margin-top: 24px;
  padding-left: 0;
}
.points-component--book-inner ul:nth-child(2) {
  margin-top: 0;
}
@media only screen and (max-width: 767px) {
  .points-component--book-inner ul {
    padding-left: 24px;
  }
}
.points-component--book-inner ul li {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 10px 0;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .points-component--book-inner ul li {
    list-style: disc;
    text-align: left;
  }
}
.points-component--book-inner ul li:last-child {
  margin-bottom: 0;
}
.points-component--book-inner p {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .points-component--book-inner p {
    text-align: left;
  }
}
.points-component--book-inner small {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  display: block;
  text-align: center;
  margin-top: 12px;
}
@media only screen and (max-width: 767px) {
  .points-component--book-inner small {
    text-align: left;
    margin-top: 4px;
    padding-left: 20px;
  }
}

.sub-kv {
  height: 480px;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .sub-kv {
    height: 240px;
  }
}
.sub-kv.office {
  background-image: url(../images/office/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.office {
    background-image: url(../images/office/main_sp.jpg);
  }
}
.sub-kv.for-business-operators {
  background-image: url(../images/for_business_operators/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.for-business-operators {
    background-image: url(../images/for_business_operators/main_sp.jpg);
  }
}
.sub-kv.for-individuals {
  background-image: url(../images/for_individuals/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.for-individuals {
    background-image: url(../images/for_individuals/main_sp.jpg);
  }
}
.sub-kv.flow {
  background-image: url(../images/flow/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.flow {
    background-image: url(../images/flow/main_sp.jpg);
  }
}
.sub-kv.faq {
  background-image: url(../images/faq/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.faq {
    background-image: url(../images/faq/main_sp.jpg);
  }
}
.sub-kv.privacy-policy {
  background-image: url(../images/privacy_policy/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.privacy-policy {
    background-image: url(../images/privacy_policy/main_sp.jpg);
  }
}
.sub-kv.contact {
  background-image: url(../images/contact/main.jpg);
}
@media only screen and (max-width: 767px) {
  .sub-kv.contact {
    background-image: url(../images/contact/main_sp.jpg);
  }
}
.sub-kv__title {
  position: absolute;
  width: 100%;
  top: 62%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.sub-kv__title h2 {
  font-size: 36px;
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
}
@media only screen and (max-width: 767px) {
  .sub-kv__title h2 {
    font-size: 24px;
  }
}

.contact .contact-area {
  background: #f2f3f6;
  padding: 48px 0;
}
.contact .contact-area__inner {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__inner {
    padding: 0 16px;
  }
}
.contact .contact-area__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__inner h2 {
    justify-content: center;
    align-items: center;
  }
}
.contact .contact-area__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718cc7;
}
.contact .contact-area__inner h2 strong {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.contact .contact-area__form {
  margin-top: 32px;
}
.contact .contact-area__form__step {
  padding: 24px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-bottom: 48px;
  max-width: 761px;
  margin: 0 auto;
}
.contact .contact-area__form__item {
  padding: 24px 44px;
  display: flex;
  align-items: center;
  gap: 40px;
  border-bottom: 1px solid #bbc5d5;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item {
    padding: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 24px;
  }
  .contact .contact-area__form__item:first-child {
    margin-top: 32px;
  }
  .contact .contact-area__form__item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
  }
}
.contact .contact-area__form__item:first-child {
  padding-top: 0;
}
.contact .contact-area__form__item__label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 240px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__label {
    width: 100%;
  }
}
.contact .contact-area__form__item__label label {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 2;
  color: #384a8c;
}
.contact .contact-area__form__item__label span {
  font-size: 10px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 2;
  color: #fff;
  background: #718cc7;
  padding: 2px 8px;
  border-radius: 4px;
  display: inline-block;
}
.contact .contact-area__form__item__label span.required {
  background: #384a8c;
}
.contact .contact-area__form__item__input {
  width: calc(100% - 280px);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__input {
    width: 100%;
  }
}
.contact .contact-area__form__item__input textarea,
.contact .contact-area__form__item__input input[type=text],
.contact .contact-area__form__item__input input[type=email],
.contact .contact-area__form__item__input input[type=tel],
.contact .contact-area__form__item__input input[type=date],
.contact .contact-area__form__item__input input[type=time],
.contact .contact-area__form__item__input input[type=number],
.contact .contact-area__form__item__input input[type=url] {
  width: 100%;
  height: 48px;
  border: 1px solid #bbc5d5;
  background: #fff;
  padding: 16px 24px;
  border-radius: 4px;
  font-size: 16px;
}
.contact .contact-area__form__item__input textarea::-moz-placeholder, .contact .contact-area__form__item__input input[type=text]::-moz-placeholder, .contact .contact-area__form__item__input input[type=email]::-moz-placeholder, .contact .contact-area__form__item__input input[type=tel]::-moz-placeholder, .contact .contact-area__form__item__input input[type=date]::-moz-placeholder, .contact .contact-area__form__item__input input[type=time]::-moz-placeholder, .contact .contact-area__form__item__input input[type=number]::-moz-placeholder, .contact .contact-area__form__item__input input[type=url]::-moz-placeholder {
  color: #b3b3b3;
}
.contact .contact-area__form__item__input textarea::placeholder,
.contact .contact-area__form__item__input input[type=text]::placeholder,
.contact .contact-area__form__item__input input[type=email]::placeholder,
.contact .contact-area__form__item__input input[type=tel]::placeholder,
.contact .contact-area__form__item__input input[type=date]::placeholder,
.contact .contact-area__form__item__input input[type=time]::placeholder,
.contact .contact-area__form__item__input input[type=number]::placeholder,
.contact .contact-area__form__item__input input[type=url]::placeholder {
  color: #b3b3b3;
}
.contact .contact-area__form__item__input textarea {
  height: 360px;
  resize: none;
  padding: 24px;
  letter-spacing: 0.1em;
  line-height: 2;
}
.contact .contact-area__form__item__input p {
  font-size: 12px;
  font-weight: bold;
  color: #718cc7;
  letter-spacing: 0.05em;
  line-height: 2;
}
.contact .contact-area__form__item__input-checkbox {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 16px;
  width: calc(100% - 280px);
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__input-checkbox {
    width: 100%;
    gap: 16px;
    flex-direction: column;
  }
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__input-checkbox.sp-padding {
    padding-left: 15px;
  }
}
.contact .contact-area__form__item__input-checkbox label {
  display: block;
  width: calc(33.3333333333% - 16px);
  font-size: 14px;
  line-height: 2.28571429;
  letter-spacing: 0.05em;
  padding-left: 30px;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__input-checkbox label {
    width: 100%;
  }
}
.contact .contact-area__form__item__input-checkbox input[type=checkbox] {
  width: 24px;
  height: 24px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
}
.contact .contact-area__form__item__input-checkbox input[type=checkbox]:checked + span:before {
  background: #384a8c;
}
.contact .contact-area__form__item__input-checkbox input[type=checkbox]:checked + span:after {
  opacity: 1;
}
.contact .contact-area__form__item__input-checkbox span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #fff;
  border: 1px solid #bbc5d5;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
}
.contact .contact-area__form__item__input-checkbox span:after {
  content: "";
  position: absolute;
  left: 5px;
  top: 36%;
  transform: translateY(-50%);
  width: 10px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(135deg);
  transition: opacity 0.3s ease-in-out;
  opacity: 0;
}
.contact .contact-area__form__item__custom-area {
  width: calc(100% - 280px);
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__custom-area {
    width: 100%;
    gap: 40px;
    flex-direction: column;
    padding: 0 12px;
  }
}
.contact .contact-area__form__item__custom-area__box {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contact .contact-area__form__item__custom-area h3 {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 2;
  padding: 8px 0;
  border-bottom: 2px solid #bbc5d5;
}
.contact .contact-area__form__item__custom-area ul {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-start;
}
.contact .contact-area__form__item__custom-area ul li {
  width: calc(33.3333333333% - 16px);
  display: flex;
  align-items: center;
  gap: 8px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__item__custom-area ul li {
    width: 100%;
  }
}
.contact .contact-area__form__item__custom-area ul li label {
  display: block;
  font-size: 14px;
  line-height: 2.28571429;
  letter-spacing: 0.05em;
  padding-left: 30px;
  position: relative;
}
.contact .contact-area__form__item__custom-area ul li input[type=checkbox] {
  width: 24px;
  height: 24px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
}
.contact .contact-area__form__item__custom-area ul li input[type=checkbox]:checked + span:before {
  background: #384a8c;
}
.contact .contact-area__form__item__custom-area ul li input[type=checkbox]:checked + span:after {
  opacity: 1;
}
.contact .contact-area__form__item__custom-area ul li span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #fff;
  border: 1px solid #bbc5d5;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
}
.contact .contact-area__form__item__custom-area ul li span:after {
  content: "";
  position: absolute;
  left: 5px;
  top: 36%;
  transform: translateY(-50%);
  width: 10px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(135deg);
  transition: opacity 0.3s ease-in-out;
  opacity: 0;
}
.contact .contact-area__form__caution {
  margin-top: 24px;
  background: #fff;
  border-radius: 8px;
  text-align: center;
}
.contact .contact-area__form__caution__inner {
  padding: 48px 24px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__caution__inner {
    padding: 24px 16px;
  }
}
.contact .contact-area__form__caution__title {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  justify-content: center;
}
.contact .contact-area__form__caution__title h3 {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #384a8c;
}
.contact .contact-area__form__caution__title p {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.contact .contact-area__form__caution__agree {
  margin-top: 32px;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__caution__agree {
    margin-top: 24px;
  }
}
.contact .contact-area__form__caution__agree label {
  display: inline-block;
  position: relative;
  padding-left: 30px;
}
.contact .contact-area__form__caution__agree label input {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  opacity: 0;
  pointer-events: none;
}
.contact .contact-area__form__caution__agree label input:checked + span:before {
  background: #384a8c;
}
.contact .contact-area__form__caution__agree label input:checked + span:after {
  opacity: 1;
}
.contact .contact-area__form__caution__agree label span {
  font-size: 16px;
  line-height: 1.3;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.contact .contact-area__form__caution__agree label span a {
  text-decoration: underline;
}
.contact .contact-area__form__caution__agree label span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #fff;
  border: 1px solid #bbc5d5;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
}
.contact .contact-area__form__caution__agree label span:after {
  content: "";
  position: absolute;
  left: 5px;
  top: 33%;
  transform: translateY(-50%);
  width: 10px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(135deg);
  transition: opacity 0.3s ease-in-out;
  opacity: 0;
}
.contact .contact-area__form__caution__description {
  margin-top: 32px;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__caution__description {
    margin-top: 24px;
    text-align: left;
  }
}
.contact .contact-area__form__caution__description p {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
}
.contact .contact-area__form__caution__button {
  max-width: 477px;
  margin: auto;
  margin-top: 32px;
  position: relative;
}
.contact .contact-area__form__caution__button:before {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg) translateY(-50%);
  transition: transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__caution__button:before {
    right: 16px;
    width: 8px;
    height: 8px;
  }
}
.contact .contact-area__form__caution__button button {
  width: 100%;
  display: block;
  background: #384a8c;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding: 24px 0;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
  cursor: pointer;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__caution__button button {
    padding: 20px 0;
  }
}
.contact .contact-area__form__caution__button button:hover {
  background: #718cc7;
}
.contact .contact-area__form__button__submit {
  max-width: 477px;
  margin: auto;
  margin-top: 32px;
  position: relative;
}
.contact .contact-area__form__button__submit:before {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg) translateY(-50%);
  transition: transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__button__submit:before {
    right: 16px;
    width: 8px;
    height: 8px;
  }
}
.contact .contact-area__form__button__submit button {
  width: 100%;
  display: block;
  background: #384a8c;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding: 24px 0;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
  cursor: pointer;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__button__submit button {
    padding: 20px 0;
  }
}
.contact .contact-area__form__button__submit button:hover {
  background: #718cc7;
}
.contact .contact-area__form__button__back {
  margin-top: 24px;
  text-align: center;
}
.contact .contact-area__form__button__back a {
  text-decoration: underline;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}
@media only screen and (min-width: 768px) {
  .contact .contact-area__form__button__back a:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__success-message {
    padding-top: 12px;
  }
}
.contact .contact-area__form__success-message h3 {
  text-align: center;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #384a8c;
}
.contact .contact-area__form__success-message p {
  margin-top: 24px;
}
.contact .contact-area__form__success-message p span {
  display: block;
  text-align: center;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: 500;
  margin: 10px 0;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__success-message p span {
    text-align: left;
  }
}
.contact .contact-area__form__success-message p span:first-child {
  margin-top: 0;
}
.contact .contact-area__form__success-message p span:last-child {
  margin-bottom: 0;
}
.contact .contact-area__form__success-message__button {
  max-width: 477px;
  margin: auto;
  margin-top: 48px;
  position: relative;
}
.contact .contact-area__form__success-message__button:before {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg) translateY(-50%);
  transition: transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__success-message__button:before {
    right: 16px;
    width: 8px;
    height: 8px;
  }
}
.contact .contact-area__form__success-message__button a {
  width: 100%;
  display: block;
  background: #384a8c;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding: 24px 0;
  border-radius: 4px;
  transition: background 0.3s ease-in-out;
  cursor: pointer;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .contact .contact-area__form__success-message__button a {
    padding: 20px 0;
  }
}
.contact .contact-area__form__success-message__button a:hover {
  background: #718cc7;
}

.faq .faq-area {
  background-color: #f2f3f6;
  padding: 32px 0 88px;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area {
    padding: 32px 0;
  }
}
.faq .faq-area--for-individuals {
  background-color: #fff;
}
.faq .faq-area--for-individuals .faq-area__box {
  background-color: #f2f3f6;
}
.faq .faq-area--for-individuals .faq-area__box__a:before {
  background-image: url(../images/a_white.svg);
}
.faq .faq-area__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__inner {
    padding: 0 16px;
  }
}
.faq .faq-area__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__inner h2 {
    justify-content: center;
    align-items: center;
  }
}
.faq .faq-area__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718cc7;
}
.faq .faq-area__inner h2 strong {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.faq .faq-area__boxes {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}
.faq .faq-area__box {
  background-color: #fff;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__box {
    padding: 32px 16px;
  }
}
.faq .faq-area__box__q {
  font-size: 16px;
  font-weight: bold;
  padding-left: 72px;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  color: #384a8c;
  position: relative;
  padding-top: 6px;
  padding-bottom: 6px;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__box__q {
    padding-left: 46px;
    font-size: 20px;
  }
}
.faq .faq-area__box__q:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  background-image: url(../images/q.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__box__q:before {
    width: 32px;
    height: 32px;
  }
}
.faq .faq-area__box__a {
  font-size: 16px;
  padding-left: 72px;
  letter-spacing: 0.05em;
  line-height: 2;
  position: relative;
  padding-top: 6px;
  padding-bottom: 6px;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__box__a {
    padding-left: 46px;
    font-size: 16px;
  }
}
.faq .faq-area__box__a a {
  color: #384A8C;
  font-weight: bold;
  text-decoration: underline;
}
.faq .faq-area__box__a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  background-image: url(../images/a.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .faq .faq-area__box__a:before {
    width: 32px;
    height: 32px;
  }
}

body.flow .flow-area {
  padding: 32px 0 88px;
  background: #F2F3F6;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area {
    padding: 48px 0;
  }
}
body.flow .flow-area__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__inner {
    padding: 0 16px;
  }
}
body.flow .flow-area__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__inner h2 {
    justify-content: center;
    align-items: center;
  }
}
body.flow .flow-area__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718CC7;
}
body.flow .flow-area__inner h2 strong {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
body.flow .flow-area__cards {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
  margin-bottom: 64px;
}
body.flow .flow-area__card {
  background: #fff;
  padding: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card {
    flex-direction: column;
    padding: 24px 16px;
  }
}
body.flow .flow-area__card--img {
  width: 32.786885%;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card--img {
    width: 100%;
  }
}
body.flow .flow-area__card--text {
  width: 63.934426%;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card--text {
    width: 100%;
    margin-top: 16px;
  }
}
body.flow .flow-area__card--text h3 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.flow .flow-area__card--text h3 > small {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718CC7;
}
body.flow .flow-area__card--text h3 span {
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  color: #384A8C;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card--text h3 span {
    font-size: 20px;
  }
}
body.flow .flow-area__card--text h3 span small {
  font-size: 14px;
  margin-left: 10px;
  display: inline-block;
}
body.flow .flow-area__card--text p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 16px;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card--text p {
    margin-top: 8px;
  }
}
body.flow .flow-area__card--text p small {
  font-size: 14px;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  body.flow .flow-area__card--text p small {
    margin-top: 6px;
    line-height: 1.7;
    display: block;
  }
}

.for_individuals .service,
.for_business_operators .service {
  background-color: #f2f3f6;
  padding: 56px 0;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service,
  .for_business_operators .service {
    padding: 40px 0;
  }
}
.for_individuals .service__inner,
.for_business_operators .service__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service__inner,
  .for_business_operators .service__inner {
    padding: 0 16px;
  }
}
.for_individuals .service__inner h2,
.for_business_operators .service__inner h2 {
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  color: #384a8c;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service__inner h2,
  .for_business_operators .service__inner h2 {
    font-size: 24px;
  }
}
.for_individuals .service__row,
.for_business_operators .service__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  padding: 0 24px;
  margin-top: 32px;
  margin-bottom: 64px;
  min-height: 0;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service__row,
  .for_business_operators .service__row {
    padding: 0;
    margin: 0;
    margin-top: 32px;
  }
}
.for_individuals .service__left,
.for_business_operators .service__left {
  width: 52.238806%;
  min-height: 400px;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service__left,
  .for_business_operators .service__left {
    width: 100%;
    min-height: auto;
  }
}
.for_individuals .service__left > div,
.for_business_operators .service__left > div {
  padding-bottom: 0 !important;
  height: auto !important;
}
.for_individuals .service__left img,
.for_business_operators .service__left img {
  display: block;
  width: 100%;
  border-radius: 8px;
}
.for_individuals .service__right,
.for_business_operators .service__right {
  width: 44.776119%;
}
@media only screen and (max-width: 767px) {
  .for_individuals .service__right,
  .for_business_operators .service__right {
    width: 100%;
  }
}
.for_individuals .service__right ul li,
.for_business_operators .service__right ul li {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  position: relative;
  padding-left: 24px;
  margin-top: 24px;
}
.for_individuals .service__right ul li:first-child,
.for_business_operators .service__right ul li:first-child {
  margin-top: 0;
}
.for_individuals .service__right ul li::before,
.for_business_operators .service__right ul li::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 14px;
  width: 6px;
  height: 6px;
  background-color: #384a8c;
  border-radius: 50%;
}
.for_individuals .service__right ul li strong,
.for_individuals .service__right ul li span,
.for_business_operators .service__right ul li strong,
.for_business_operators .service__right ul li span {
  display: block;
}
.for_individuals .service__right ul li strong,
.for_business_operators .service__right ul li strong {
  font-weight: bold;
  color: #384a8c;
}
.for_individuals .price,
.for_business_operators .price {
  padding: 88px 0;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price,
  .for_business_operators .price {
    padding: 40px 0;
  }
}
.for_individuals .price__inner,
.for_business_operators .price__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__inner,
  .for_business_operators .price__inner {
    padding: 0 16px;
  }
}
.for_individuals .price__inner h2,
.for_business_operators .price__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
}
.for_individuals .price__inner h2 em,
.for_business_operators .price__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718cc7;
}
.for_individuals .price__inner h2 span,
.for_business_operators .price__inner h2 span {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.for_individuals .price__box,
.for_business_operators .price__box {
  margin-top: 32px;
  padding-bottom: 16px;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__box,
  .for_business_operators .price__box {
    padding-bottom: 0;
  }
}
.for_individuals .price__header,
.for_business_operators .price__header {
  background-color: #00114e;
  color: #fff;
}
.for_individuals .price__header h3,
.for_business_operators .price__header h3 {
  padding: 8px 0;
  font-size: 16px;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
}
.for_individuals .price__body table,
.for_business_operators .price__body table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__body table,
  .for_business_operators .price__body table {
    display: block;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__body table tbody,
  .for_business_operators .price__body table tbody {
    display: block;
    width: 100%;
  }
}
.for_individuals .price__body table tbody tr,
.for_business_operators .price__body table tbody tr {
  border-bottom: 1px solid #384a8c;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__body table tbody tr,
  .for_business_operators .price__body table tbody tr {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px 24px;
    border-bottom: 1px solid #384a8c;
  }
}
.for_individuals .price__body table tbody tr th,
.for_business_operators .price__body table tbody tr th {
  width: 248px;
  padding: 18px 24px;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: left;
  color: #384a8c;
  vertical-align: middle;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__body table tbody tr th,
  .for_business_operators .price__body table tbody tr th {
    width: 100%;
    padding: 0;
    border-bottom: none;
    display: block;
  }
}
.for_individuals .price__body table tbody tr td,
.for_business_operators .price__body table tbody tr td {
  padding: 16px 0;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  vertical-align: middle;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__body table tbody tr td,
  .for_business_operators .price__body table tbody tr td {
    width: 100%;
    padding: 0;
    border-bottom: none;
    display: block;
  }
}
.for_individuals .price__row,
.for_business_operators .price__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__row,
  .for_business_operators .price__row {
    flex-direction: column;
    gap: 0px;
  }
}
.for_individuals .price__col,
.for_business_operators .price__col {
  width: calc(50% - 12px);
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__col,
  .for_business_operators .price__col {
    width: 100%;
  }
}
.for_individuals .price__col table,
.for_business_operators .price__col table {
  margin-top: 16px;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.for_individuals .price__col table thead tr th,
.for_business_operators .price__col table thead tr th {
  background-color: #718cc7;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: center;
  vertical-align: middle;
  padding: 8px 0;
}
.for_individuals .price__col table tbody tr,
.for_business_operators .price__col table tbody tr {
  border-bottom: 1px solid #384a8c;
}
.for_individuals .price__col table tbody tr:first-child th,
.for_business_operators .price__col table tbody tr:first-child th {
  padding: 10px 24px;
}
.for_individuals .price__col table tbody tr:first-child td,
.for_business_operators .price__col table tbody tr:first-child td {
  padding: 8px 0;
  font-weight: bold;
}
.for_individuals .price__col table tbody tr th,
.for_business_operators .price__col table tbody tr th {
  padding: 18px 24px;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: left;
  vertical-align: middle;
  color: #384a8c;
}
@media only screen and (min-width: 768px) {
  .for_individuals .price__col table tbody tr th,
  .for_business_operators .price__col table tbody tr th {
    max-width: 137px;
  }
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__col table tbody tr th,
  .for_business_operators .price__col table tbody tr th {
    padding: 18px 16px;
    padding-right: 0;
  }
}
.for_individuals .price__col table tbody tr td,
.for_business_operators .price__col table tbody tr td {
  padding: 16px 0;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  vertical-align: middle;
}
@media only screen and (max-width: 767px) {
  .for_individuals .price__col table tbody tr td,
  .for_business_operators .price__col table tbody tr td {
    padding: 8px 0;
  }
}
.for_individuals .price__col table tbody tr td small,
.for_business_operators .price__col table tbody tr td small {
  font-size: 14px;
}
.for_individuals .price__book,
.for_business_operators .price__book {
  padding-bottom: 0;
}

body.index .kv {
  height: 100vh;
  overflow: hidden;
  position: relative;
}
@media only screen and (max-width: 767px) {
  body.index .kv {
    height: 100svh;
  }
}
body.index .kv__image {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: calc(100% + 70px);
  background-image: url(../images/top/main.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
}
body.index .kv__inner {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
body.index .kv__title {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
  justify-content: center;
  width: 100%;
}
@media only screen and (max-width: 767px) {
  body.index .kv__title {
    width: 100%;
    padding: 0 16px;
  }
}
body.index .kv__title h2 {
  font-size: 48px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  body.index .kv__title h2 {
    font-size: 32px;
  }
}
body.index .kv__title p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
}
@media only screen and (max-width: 767px) {
  body.index .kv__title p {
    font-size: 14px;
  }
}
body.index .kv__title--img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 480px;
}
body.index .kv__title--img img {
  width: 100%;
  height: auto;
  display: block;
}
body.index .introduction {
  overflow: hidden;
  padding: 160px 0;
}
@media only screen and (max-width: 767px) {
  body.index .introduction {
    padding: 72px 0 48px;
  }
}
body.index .introduction__inner {
  max-width: 1628px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__inner {
    padding: 0 16px;
    max-width: 100%;
  }
}
body.index .introduction__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__row {
    flex-direction: column;
  }
}
body.index .introduction__image {
  width: 56.122449%;
  padding-right: 3%;
  position: relative;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__image {
    width: 100%;
    padding: 0;
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  body.index .introduction__image--img {
    margin-left: -16px;
    width: calc(100% + 32px);
  }
}
body.index .introduction__image--img:before {
  content: "";
  position: absolute;
  right: 0;
  top: 29%;
  width: 35%;
  padding-top: 35%;
  background: #EEF0F3;
}
body.index .introduction__image--img:after {
  content: "";
  width: 82.386364%;
  padding-top: 47.724138%;
  background: #E9EAED;
  display: block;
  margin-left: -112px;
  margin-top: -114px;
}
body.index .introduction__image--img img {
  position: relative;
  z-index: 1;
  display: block;
}
body.index .introduction__content {
  width: 40.816327%;
  position: relative;
  padding-top: 25px;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__content {
    width: 100%;
    padding: 0;
  }
}
body.index .introduction__content > img {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 80%;
  height: auto;
  display: block;
  pointer-events: none;
  z-index: -1;
}
body.index .introduction__content--title {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__content--title {
    display: block;
  }
}
body.index .introduction__content--title h2 {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
@media only screen and (max-width: 767px) {
  body.index .introduction__content--title h2 {
    justify-content: center;
    align-items: center;
  }
}
body.index .introduction__content--title h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  line-height: 1.7;
  letter-spacing: 0.05em;
  font-weight: bold;
  color: #718CC7;
}
body.index .introduction__content--title h2 strong {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: 600;
}
body.index .introduction__content--title h3 {
  font-size: 32px;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #384A8C;
}
@media only screen and (min-width: 768px) and (max-width: 1124px) {
  body.index .introduction__content--title h3 {
    font-size: 28px;
    line-height: 1.5;
  }
}
@media only screen and (max-width: 767px) {
  body.index .introduction__content--title h3 {
    margin-top: 16px;
    font-size: 24px;
    line-height: 1.5;
    text-align: center;
  }
}
body.index .introduction__content--title > div {
  margin-top: 24px;
  margin-left: -16px;
  width: calc(100% + 32px);
  padding-left: 32px;
  margin-bottom: 49px;
  position: relative;
}
body.index .introduction__content--title > div:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -25px;
  width: 85.333333%;
  padding-top: 20%;
  background: #EEF0F3;
}
body.index .introduction__content--title > div img {
  width: 100%;
  height: auto;
  display: block;
}
body.index .introduction__content--text {
  margin-top: 32px;
}
body.index .introduction__content--text p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
}
body.index .introduction__content--text p span {
  display: block;
  margin: 16px 0;
}
body.index .introduction__content--button {
  margin-top: 24px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}
body.index .flow {
  background: #F2F3F6;
  padding: 80px 0;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  body.index .flow {
    padding: 48px 0;
  }
}
body.index .flow__inner {
  max-width: 1660px;
  padding: 0 30px;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  body.index .flow__inner {
    padding: 0 0;
    max-width: 100%;
  }
}
body.index .flow__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media only screen and (max-width: 767px) {
  body.index .flow__row {
    flex-direction: column;
    gap: 48px;
  }
}
body.index .flow__left {
  width: 40%;
  position: relative;
}
@media only screen and (max-width: 767px) {
  body.index .flow__left {
    width: 100%;
    order: 2;
    padding: 0 16px;
  }
}
body.index .flow__left > img {
  position: absolute;
  left: 50%;
  top: calc(50% - 12px);
  transform: translate(-50%, -50%);
  width: 80%;
  height: auto;
}
@media only screen and (max-width: 767px) {
  body.index .flow__left > img {
    width: calc(100% - 32px);
    top: -20px;
    transform: translate(-50%, 0);
  }
}
body.index .flow__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}
@media only screen and (max-width: 767px) {
  body.index .flow__title {
    align-items: center;
    justify-content: center;
  }
}
body.index .flow__title h2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0px;
}
@media only screen and (max-width: 767px) {
  body.index .flow__title h2 {
    align-items: center;
    justify-content: center;
  }
}
body.index .flow__title h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  line-height: 1.7;
  letter-spacing: 0.05em;
  font-weight: bold;
  color: #718CC7;
}
body.index .flow__title h2 strong {
  font-size: 16px;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
}
body.index .flow__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  margin-top: 24px;
  gap: 16px;
}
body.index .flow__text h3 {
  font-size: 32px;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #384A8C;
}
@media (max-width: 1120px) {
  body.index .flow__text h3 {
    font-size: 28px;
    line-height: 1.5;
  }
}
@media only screen and (max-width: 767px) {
  body.index .flow__text h3 {
    font-size: 24px;
    line-height: 1.5;
  }
}
body.index .flow__text p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
}
body.index .flow__button {
  margin-top: 24px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}
body.index .flow__right {
  width: 57%;
  padding: 57px;
  padding-right: 0;
  position: relative;
}
@media only screen and (max-width: 767px) {
  body.index .flow__right {
    width: 100%;
    padding: 23px;
  }
}
body.index .flow__right:before {
  content: "";
  width: 88.267544%;
  padding-top: 20%;
  background: #fff;
  position: absolute;
  right: -57px;
  top: 0;
}
body.index .flow__right:after {
  content: "";
  width: 37.5%;
  padding-top: 37.5%;
  background: #fff;
  position: absolute;
  left: 0;
  bottom: 0;
}
body.index .flow__right img {
  display: block;
  position: relative;
  z-index: 1;
}

.office .greeting {
  padding: 67px 0;
}
@media only screen and (max-width: 767px) {
  .office .greeting {
    padding: 24px 0;
  }
}
.office .greeting__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .office .greeting__inner {
    padding: 0 16px;
  }
}
.office .greeting__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  .office .greeting__row {
    flex-direction: column;
  }
}
.office .greeting__image {
  width: 35.714286%;
}
@media only screen and (max-width: 767px) {
  .office .greeting__image {
    display: none;
  }
}
.office .greeting__image img {
  width: 100%;
  display: block;
}
.office .greeting__content {
  width: 60%;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media only screen and (max-width: 767px) {
  .office .greeting__content {
    width: 100%;
    gap: 24px;
  }
}
.office .greeting__title {
  padding-top: 25px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .office .greeting__title {
    gap: 16px;
    padding-top: 25px;
  }
}
.office .greeting__title > img {
  position: absolute;
  left: 50%;
  top: calc(50% - 12px);
  transform: translate(-50%, -50%);
  width: 80%;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .office .greeting__title > img {
    width: calc(100% - 0px);
    top: -20px;
    transform: translate(-50%, 0);
  }
}
.office .greeting__title h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
@media only screen and (max-width: 767px) {
  .office .greeting__title h2 {
    justify-content: center;
    align-items: center;
  }
}
.office .greeting__title h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718CC7;
}
.office .greeting__title h2 strong {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.office .greeting__title h3 {
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
  line-height: 1.7;
  color: #384A8C;
}
@media only screen and (max-width: 767px) {
  .office .greeting__title h3 {
    font-size: 24px;
    text-align: center;
  }
}
.office .greeting__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.office .greeting__text-inner p span {
  display: block;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2;
  margin: 16px 0;
}
.office .greeting__text-inner p span:first-child {
  margin-top: 0;
}
.office .greeting__text-inner p span:last-child {
  margin-bottom: 0;
}
.office .greeting__profile p {
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: flex-end;
  align-items: flex-end;
}
.office .greeting__profile p small {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.office .greeting__profile p span {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.office .about {
  background: #F2F3F6;
  padding: 48px 0;
}
@media only screen and (max-width: 767px) {
  .office .about {
    padding: 24px 0;
  }
}
.office .about__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .office .about__inner {
    padding: 0 16px;
  }
}
.office .about__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
}
.office .about__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718CC7;
}
.office .about__inner h2 span {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.office .about__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 44px;
  margin-top: 32px;
}
@media only screen and (max-width: 767px) {
  .office .about__row {
    padding: 0 0;
    margin-top: 24px;
  }
}
.office .about__left {
  width: 62.015504%;
}
@media only screen and (max-width: 767px) {
  .office .about__left {
    width: 100%;
  }
}
.office .about__left table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  border-top: 2px solid #384A8C;
}
@media only screen and (max-width: 767px) {
  .office .about__left table {
    display: block;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .office .about__left table tbody, .office .about__left table tr {
    display: block;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .office .about__left table tr {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid #384A8C;
  }
}
.office .about__left table th {
  width: 20%;
  padding: 16px 24px;
  font-weight: bold;
  border-bottom: 1px solid #384A8C;
  text-align: left;
  color: #384A8C;
  line-height: 2;
  vertical-align: middle;
  width: 120px;
}
@media only screen and (max-width: 767px) {
  .office .about__left table th {
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: none;
  }
}
.office .about__left table td {
  padding: 16px 24px;
  border-bottom: 1px solid #384A8C;
  line-height: 1.7;
  vertical-align: middle;
}
@media only screen and (max-width: 767px) {
  .office .about__left table td {
    line-height: 2;
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: none;
  }
}
.office .about__left table td iframe {
  max-width: 460px;
  aspect-ratio: 16/13;
  width: 100%;
  height: auto;
  margin-top: 12px;
}
.office .about__right {
  width: 31.007752%;
}
@media only screen and (max-width: 767px) {
  .office .about__right {
    display: none;
  }
}
.office .about__right img {
  display: block;
  width: 100%;
}
.office .profile {
  padding: 48px 0 88px;
}
@media only screen and (max-width: 767px) {
  .office .profile {
    padding: 24px 0 48px;
  }
}
.office .profile__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .office .profile__inner {
    padding: 0 16px;
  }
}
.office .profile__title h2 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
}
.office .profile__title h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718CC7;
}
.office .profile__title h2 span {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.office .profile__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 44px;
  margin-top: 32px;
}
@media only screen and (max-width: 767px) {
  .office .profile__row {
    padding: 0 0;
    margin-top: 24px;
    gap: 32px;
  }
}
.office .profile__left {
  width: 31.007752%;
}
@media only screen and (max-width: 767px) {
  .office .profile__left {
    width: 100%;
  }
}
.office .profile__left figure img {
  display: block;
  width: 100%;
}
.office .profile__left figure figcaption {
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  padding-top: 16px;
  align-items: center;
}
.office .profile__left figure figcaption strong {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #384A8C;
  line-height: 1.5;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
}
.office .profile__left figure figcaption em {
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #718CC7;
  font-weight: bold;
  font-family: "Libre Baskerville", serif;
}
.office .profile__left figure figcaption span {
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #718CC7;
  font-weight: bold;
}
.office .profile__right {
  width: 62.015504%;
}
@media only screen and (max-width: 767px) {
  .office .profile__right {
    width: 100%;
  }
}
.office .profile__right table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 14px;
  letter-spacing: 0.05em;
  border-top: 2px solid #384A8C;
}
@media only screen and (max-width: 767px) {
  .office .profile__right table {
    display: block;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .office .profile__right table tbody, .office .profile__right table tr {
    display: block;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .office .profile__right table tr {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid #384A8C;
  }
}
.office .profile__right table th {
  padding: 16px 24px;
  font-weight: bold;
  border-bottom: 1px solid #384A8C;
  text-align: left;
  color: #384A8C;
  line-height: 2;
  vertical-align: middle;
}
@media only screen and (min-width: 768px) {
  .office .profile__right table th {
    min-width: 211px;
  }
}
@media only screen and (max-width: 767px) {
  .office .profile__right table th {
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: none;
  }
}
.office .profile__right table td {
  padding: 16px 24px;
  border-bottom: 1px solid #384A8C;
  line-height: 1.7;
  vertical-align: middle;
}
.office .profile__right table td a {
  color: #384A8C;
  text-decoration: underline;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  .office .profile__right table td {
    line-height: 2;
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: none;
  }
}
.privacy-policy-area {
  background: #f2f3f6;
  padding: 32px 0 88px;
}
@media only screen and (max-width: 767px) {
  .privacy-policy-area {
    padding: 32px 0;
  }
}
.privacy-policy-area__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 30px;
}
@media only screen and (max-width: 767px) {
  .privacy-policy-area__inner {
    padding: 0 16px;
  }
}
.privacy-policy-area__inner h2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}
.privacy-policy-area__inner h2 em {
  font-size: 12px;
  font-family: "Libre Baskerville", serif;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.7;
  color: #718cc7;
}
.privacy-policy-area__inner h2 strong {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.privacy-policy-area__boxes {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}
.privacy-policy-area__box {
  background: #fff;
  border-radius: 8px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media only screen and (max-width: 767px) {
  .privacy-policy-area__box {
    padding: 24px 16px;
  }
}
.privacy-policy-area__box h3 {
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #384a8c;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", serif;
}
@media only screen and (max-width: 767px) {
  .privacy-policy-area__box h3 {
    font-size: 20px;
  }
}
.privacy-policy-area__box p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.privacy-policy-area__box blockquote {
  background-color: #f2f3f6;
  padding: 16px;
  border-radius: 8px;
}
.privacy-policy-area__box blockquote ul {
  padding-left: 24px;
}
.privacy-policy-area__box blockquote ul li {
  list-style-type: disc;
  font-size: 16px;
  font-weight: bold;
  color: #384a8c;
  letter-spacing: 0.05em;
  line-height: 2;
}
.privacy-policy-area__box blockquote span {
  color: #2e2a34;
  font-size: 14px;
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.05em;
}