@charset "UTF-8";
:root {
  --u: 1px;
}

@media screen and (max-width: 1439px) and (min-width: 768px) {
  :root {
    --u: calc(100vw / 1440);
  }
}
/*----------------------------------
  余白の打ち消し
-----------------------------------*/
/* body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
  margin: 0;
} */

/* ul,
ol {
  padding: 0;
  list-style: none;
} */

/*----------------------------------
  見出しの太さ・サイズ
-----------------------------------*/
/* h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
} */

/*----------------------------------
  画像
-----------------------------------*/
img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

/*----------------------------------
  フォーム・ボタン
-----------------------------------*/
button {
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

/*----------------------------------
  リンク
-----------------------------------*/
a {
  color: inherit;
  text-decoration: none;
}

@media screen and (max-width: 1439px) and (min-width: 768px) {
  html {
    font-size: calc(16 / 1440 * 100vw);
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: calc(16 / 390 * 100vw);
  }
}

body {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.5;
}
body.is-fixed {
  overflow: hidden;
}

a {
  text-decoration: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}

s picture,
img,
a,
span {
  display: inline-block;
}

video,
img,
svg {
  width: 100%;
  height: 100%;
}

button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

/*----------------------------------
  ドロワーアイコン（1199px以下で表示）
-----------------------------------*/
.b-drawer-icon {
  display: none;
}
@media screen and (max-width: 1199px) {
  .b-drawer-icon {
    position: relative;
    display: block;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 40px;
    height: 40px;
    margin-left: auto;
    background: #0c53bc;
    border-radius: 4px;
  }
}
.b-drawer-icon.is-checked .b-drawer-icon__bar:nth-child(1) {
  top: 50%;
  width: 23px;
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.b-drawer-icon.is-checked .b-drawer-icon__bar:nth-child(2) {
  opacity: 0;
}
.b-drawer-icon.is-checked .b-drawer-icon__bar:nth-child(3) {
  top: 50%;
  width: 23px;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

.b-drawer-icon__bar {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background: #fff;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: top 0.3s, opacity 0.3s, -webkit-transform 0.3s;
  transition: top 0.3s, opacity 0.3s, -webkit-transform 0.3s;
  transition: top 0.3s, transform 0.3s, opacity 0.3s;
  transition: top 0.3s, transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
}
.b-drawer-icon__bar:nth-child(1) {
  top: 13px;
}
.b-drawer-icon__bar:nth-child(2) {
  top: 19px;
}
.b-drawer-icon__bar:nth-child(3) {
  top: 25px;
}

/*----------------------------------
  ドロワーメニュー
-----------------------------------*/
.b-drawer {
  display: none;
}
@media screen and (max-width: 1199px) {
  .b-drawer {
    position: fixed;
    top: 66px;
    left: 0;
    display: block;
    width: 100%;
    height: calc(100dvh - 66px);
    overflow-y: auto;
    background: #fff;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity 0.3s, visibility 0.3s;
    transition: opacity 0.3s, visibility 0.3s;
  }
}
.b-drawer.is-checked {
  opacity: 1;
  visibility: visible;
}

.b-drawer__inner {
  max-width: 390px;
  margin-inline: auto;
  padding: 8px 20px 40px;
}

.b-drawer__item {
  border-bottom: 1px solid #d9d9d9;
}
.b-drawer__item--has-child {
  padding-block: 16px;
}

.b-drawer__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  padding-block: 16px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-drawer__link::after {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 20px;
  height: 20px;
  background: url(./img/icon-right-arrow.svg) no-repeat center/contain;
}

.b-drawer__heading {
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.b-drawer__sublist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4.5px;
  margin-top: 8.5px;
}

.b-drawer__sublink {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-drawer__sublink::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 8px;
  height: 1px;
  background: #0c53bc;
}

/*----------------------------------
  ドロワー下部（電話・お問い合わせ・LINE）
-----------------------------------*/
.b-drawer__tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 32px auto 0;
}

.b-drawer__tel-icon {
  width: 20px;
  height: 20px;
}

.b-drawer__tel-number {
  font-family: "Lato", sans-serif;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.b-drawer__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 4px;
  width: 100%;
  margin-top: 16px;
  padding: 16px 48px;
  background: #0c53bc;
  border-radius: 999px;
  color: #fff;
}

.b-drawer__contact-icon {
  width: 24px;
  height: 24px;
}

.b-drawer__contact-text {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.b-drawer__line {
  display: block;
  width: 40px;
  margin: 24px auto 0;
}
.b-drawer__line img {
  width: 100%;
  height: auto;
}

/*----------------------------------
  ボタン（共通）
  幅は配置先で指定する
-----------------------------------*/
.b-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
  padding: 1.125rem 2.875rem;
  border: 2px solid transparent;
  border-radius: 999px;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (any-hover: hover) {
  .b-btn:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 767px) {
  .b-btn {
    gap: 8px;
    padding: 14px 46px;
  }
}
.b-btn--primary {
  background: #0c53bc;
  border-color: #0c53bc;
  color: #fff;
}
.b-btn--secondary {
  background: #fff;
  border-color: #0c53bc;
  color: #333;
}
.b-btn--green {
  background: #33b29a;
  border-color: #33b29a;
  color: #fff;
}
.b-btn--cv {
  -webkit-filter: drop-shadow(0.25rem 0.25rem 0.3125rem rgba(0, 0, 0, 0.2));
          filter: drop-shadow(0.25rem 0.25rem 0.3125rem rgba(0, 0, 0, 0.2));
}
@media screen and (max-width: 767px) {
  .b-btn--cv {
    -webkit-filter: drop-shadow(4px 4px 5px rgba(0, 0, 0, 0.2));
            filter: drop-shadow(4px 4px 5px rgba(0, 0, 0, 0.2));
  }
}
.b-btn--cv.b-btn--primary {
  border-color: #fff;
}

.b-btn__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-btn__icon {
    width: 16px;
    height: 16px;
  }
}

.b-btn__arrow {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-btn__arrow {
    width: 20px;
    height: 20px;
  }
}

.b-btn__text {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-btn__text {
    font-size: 16px;
  }
}

.b-btn--large .b-btn__text {
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-btn--large .b-btn__text {
    font-size: 16px;
  }
}
.b-btn--large .b-btn__icon {
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-btn--large .b-btn__icon {
    width: 16px;
    height: 16px;
  }
}

/*----------------------------------
  セクションタイトル（共通）
  英字（飾り）＋ ラベル（任意）＋ 見出し ＋ 下線
-----------------------------------*/
.b-section-title {
  position: relative;
  text-align: center;
}
@media (min-width: 768px) {
  .b-section-title--left {
    text-align: left;
  }
}
.b-section-title--en-left {
  position: static;
}

.b-section-title__en {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;
  font-family: "Lato", sans-serif;
  font-size: 6rem;
  font-style: italic;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #ebf5fd;
  white-space: nowrap;
  pointer-events: none;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .b-section-title__en {
    font-size: 40px;
  }
}
@media (min-width: 768px) {
  .b-section-title--left .b-section-title__en {
    left: 0;
    -webkit-transform: none;
            transform: none;
  }
}
.b-section-title--en-left .b-section-title__en {
  top: 2.5rem;
  left: 0;
  -webkit-transform: none;
          transform: none;
}
@media screen and (max-width: 767px) {
  .b-section-title--en-left .b-section-title__en {
    top: 24px;
    left: 50%;
    -webkit-transform: translateX(-195px);
            transform: translateX(-195px);
  }
}

.b-section-title__label {
  position: relative;
  z-index: 1;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 0.75rem;
  padding: 0.25rem 1.5rem;
  background: #0c53bc;
  border-radius: 999px;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-section-title__label {
    margin-bottom: 4px;
    padding: 4px 16px;
    font-size: 16px;
  }
}

.b-section-title__main {
  position: relative;
  z-index: 1;
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-section-title__main {
    font-size: 24px;
  }
}
.b-section-title__en + .b-section-title__main {
  padding-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-section-title__en + .b-section-title__main {
    padding-top: 20px;
  }
}
.b-section-title__main::after {
  content: "";
  display: block;
  width: 3rem;
  height: 2px;
  margin: 1.5rem auto 0;
  background: #0c53bc;
}
@media screen and (max-width: 767px) {
  .b-section-title__main::after {
    width: 32px;
    margin-top: 16px;
  }
}
@media (min-width: 768px) {
  .b-section-title--left .b-section-title__main::after {
    margin-left: 0;
  }
}

.b-section-title__accent {
  display: inline;
  color: #0c53bc;
}

.b-section-title--white .b-section-title__en {
  color: rgba(238, 244, 249, 0.2);
}
.b-section-title--white .b-section-title__main {
  color: #fff;
}
.b-section-title--white .b-section-title__main::after {
  background: #fff;
}

.b-section-title--en-white .b-section-title__en {
  color: #fff;
}

/*----------------------------------
  header
-----------------------------------*/
.b-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
}

.b-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 5.6875rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 1199px) {
  .b-header__inner {
    height: 66px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  ロゴ
-----------------------------------*/
.b-header__logo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 9rem;
}
@media (any-hover: hover) {
  .b-header__logo:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1199px) {
  .b-header__logo {
    width: 96px;
  }
}
.b-header__logo img {
  width: 100%;
  height: auto;
}

/*----------------------------------
  グローバルナビ（PC）
-----------------------------------*/
.b-header__nav {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin-left: auto;
}
@media screen and (max-width: 1199px) {
  .b-header__nav {
    display: none;
  }
}

.b-header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.5rem;
  height: 100%;
}

.b-header__nav-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.b-header__nav-item--has-child {
  position: relative;
}

.b-header__nav-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media (any-hover: hover) {
  .b-header__nav-link:hover {
    opacity: 0.7;
  }
}
.b-header__nav-link--parent::after {
  content: "";
  width: 0.4375rem;
  height: 0.4375rem;
  margin-left: 0.5rem;
  margin-top: -0.25rem;
  border-right: 2px solid #0c53bc;
  border-bottom: 2px solid #0c53bc;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}

/*----------------------------------
  ドロップダウン（PC・ホバーで開く）
-----------------------------------*/
.b-header__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  min-width: 16.25rem;
  padding: 1rem 1.5rem;
  background: #fff;
  border-radius: 0 0 0.5rem 0.5rem;
  -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translate(-50%, -0.5rem);
          transform: translate(-50%, -0.5rem);
  -webkit-transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s, -webkit-transform 0.3s;
}

.b-header__nav-item--has-child:focus-within .b-header__submenu {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
.b-header__nav-item--has-child:focus-within .b-header__nav-link--parent::after {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
  margin-top: 0.25rem;
}

@media (any-hover: hover) {
  .b-header__nav-item--has-child:hover .b-header__submenu {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
  }
  .b-header__nav-item--has-child:hover .b-header__nav-link--parent::after {
    -webkit-transform: rotate(225deg);
            transform: rotate(225deg);
    margin-top: 0.25rem;
  }
}
.b-header__submenu-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding-block: 0.375rem;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.b-header__submenu-link::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.5rem;
  height: 1px;
  background: #0c53bc;
}
@media (any-hover: hover) {
  .b-header__submenu-link:hover {
    color: #0c53bc;
  }
}

/*----------------------------------
  電話番号
-----------------------------------*/
.b-header__tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.25rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-left: 2.5rem;
}
@media (any-hover: hover) {
  .b-header__tel:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1199px) {
  .b-header__tel {
    display: none;
  }
}

.b-header__tel-icon {
  width: 1rem;
  height: 1rem;
}

.b-header__tel-number {
  font-family: "Lato", sans-serif;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

/*----------------------------------
  LINE
-----------------------------------*/
.b-header__line {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.5rem;
  margin-left: 2rem;
}
@media (any-hover: hover) {
  .b-header__line:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1199px) {
  .b-header__line {
    display: none;
  }
}
.b-header__line img {
  width: 100%;
  height: auto;
}

/*----------------------------------
  お問い合わせ
-----------------------------------*/
.b-header__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.25rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  width: 12rem;
  margin-left: 2rem;
  background: #0c53bc;
  color: #fff;
}
@media (any-hover: hover) {
  .b-header__contact:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 1199px) {
  .b-header__contact {
    display: none;
  }
}

.b-header__contact-icon {
  width: 1.5rem;
  height: 1.5rem;
}

.b-header__contact-text {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

/*----------------------------------
  mv
-----------------------------------*/
.b-mv {
  background: url(./img/bg-mv-pc.webp) no-repeat center bottom/cover;
}
@media screen and (max-width: 767px) {
  .b-mv {
    background-image: url(./img/bg-mv-sp.webp);
  }
}

.b-mv__inner {
  display: grid;
  grid-template-columns: 38rem 37.5rem;
  grid-template-rows: 1fr auto auto auto auto 1fr;
  grid-template-areas: ".        photos" "title    photos" "lead     photos" "features photos" "btns     photos" ".        photos";
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 3.125rem;
  padding-inline: 5rem 5.5rem;
}
@media screen and (max-width: 767px) {
  .b-mv__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas: "title" "lead" "photos" "features" "btns";
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  キャッチ・リード
-----------------------------------*/
.b-mv__title {
  grid-area: title;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-mv__title {
    font-size: 28px;
    letter-spacing: 0.04em;
  }
}

.b-mv__title-accent {
  color: #0c53bc;
}

.b-mv__lead {
  grid-area: lead;
  margin-top: 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
  .b-mv__lead {
    margin-top: 8px;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.04em;
  }
}

/*----------------------------------
  写真
-----------------------------------*/
.b-mv__photos {
  grid-area: photos;
  display: grid;
  grid-template-columns: repeat(2, 17.5rem);
  gap: 2.5rem;
  align-self: center;
  padding-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .b-mv__photos {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-top: 16px;
    padding-bottom: 0;
  }
}

.b-mv__photo:nth-child(odd) {
  -webkit-transform: translateY(4rem);
          transform: translateY(4rem);
}
@media screen and (max-width: 767px) {
  .b-mv__photo:nth-child(odd) {
    -webkit-transform: none;
            transform: none;
  }
}
.b-mv__photo picture,
.b-mv__photo img {
  display: block;
}
.b-mv__photo img {
  width: 100%;
  height: auto;
  border-radius: 1.5rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-mv__photo img {
    border-radius: 12px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

/*----------------------------------
  特長カード
-----------------------------------*/
.b-mv__features {
  grid-area: features;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .b-mv__features {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 24px;
    padding-top:10px!important;
  }
}

.b-mv__feature {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  width: 12rem;
  padding: 1rem 0.5rem;
  background: #fff;
  border-radius: 0.75rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-mv__feature {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 12px;
    width: 100%;
    padding: 8px 24px;
    border-radius: 12px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    text-align: left;
  }
}

.b-mv__feature-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-mv__feature-icon {
    width: 32px;
    height: 32px;
  }
}

.b-mv__feature-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.25rem;
}
@media screen and (max-width: 767px) {
  .b-mv__feature-body {
    gap: 0;
  }
}

.b-mv__feature-title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-mv__feature-title {
    font-size: 16px; 
  margin:0;
  }
}

.b-mv__feature-text {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
      font-size: 16px;
  margin:0;
}
@media screen and (max-width: 767px) {
  .b-mv__feature-text {
    font-size: 14px;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-mv__btns {
  grid-area: btns;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-mv__btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 24px;
  }
}

.b-mv__btn--contact {
  width: 18.75rem;
}
.b-mv__btn--tel {
  width: 16.25rem;
}
@media screen and (max-width: 767px) {
  .b-mv__btn {
    width: 100%;
  }
}

/*----------------------------------
  worries
-----------------------------------*/
.b-worries {
  position: relative;
  isolation: isolate;
  background: #f4f4f9;
}
.b-worries::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
  width: 100%;
  height: 19.25rem;
  background: url(./img/bg-worries-pc.webp) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-worries::before {
    height: 204px;
    background-image: url(./img/bg-worries-sp.webp);
  }
}

.b-worries__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5.25rem 6rem;
  padding-inline: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-worries__inner {
    padding-block: 46px 48px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  見出し
-----------------------------------*/
.b-worries__title {
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-worries__title {
    font-size: 24px;
  }
}

.b-worries__title-line {
  position: relative;
  display: inline-block;
}
.b-worries__title-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.125rem;
  z-index: -1;
  width: 100%;
  height: 0.75rem;
  background: #d9d9d9;
}
@media screen and (max-width: 767px) {
  .b-worries__title-line::after {
    bottom: -2px;
    height: 8px;
  }
}
@media screen and (max-width: 767px) {
  .b-worries__title-line {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
}

.b-worries__title-dot {
  position: relative;
  display: inline-block;
}
.b-worries__title-dot::before {
  content: "";
  position: absolute;
  top: -0.75rem;
  left: 50%;
  width: 0.5rem;
  height: 0.5rem;
  background: #0c53bc;
  border-radius: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .b-worries__title-dot::before {
    top: -6px;
    width: 6px;
    height: 6px;
  }
}

/*----------------------------------
  吹き出しカード
-----------------------------------*/
.b-worries__card {
  max-width: 56.25rem;
  margin: 2.5rem auto 0;
  -webkit-filter: drop-shadow(0 0 1.25rem rgba(0, 0, 0, 0.1));
          filter: drop-shadow(0 0 1.25rem rgba(0, 0, 0, 0.1));
}
@media screen and (max-width: 767px) {
  .b-worries__card {
    max-width: none;
    margin-top: 16px;
    -webkit-filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.1));
  }
}

.b-worries__card-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3rem;
  padding: 3rem 3.5rem 5rem;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 376' preserveAspectRatio='none'%3E%3Cpath d='M0 16C0 7.1634 7.1634 0 16 0H884C892.837 0 900 7.1634 900 16V313.616C900 321.796 893.831 328.658 885.697 329.526L451.697 375.819C450.569 375.939 449.431 375.939 448.303 375.819L14.303 329.526C6.1695 328.658 0 321.796 0 313.616Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 376' preserveAspectRatio='none'%3E%3Cpath d='M0 16C0 7.1634 7.1634 0 16 0H884C892.837 0 900 7.1634 900 16V313.616C900 321.796 893.831 328.658 885.697 329.526L451.697 375.819C450.569 375.939 449.431 375.939 448.303 375.819L14.303 329.526C6.1695 328.658 0 321.796 0 313.616Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
}
@media screen and (max-width: 767px) {
  .b-worries__card-body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 16px;
    padding: 18px 20px 48px;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 406' preserveAspectRatio='none'%3E%3Cpath d='M0 8C0 3.5817 3.5817 0 8 0H342C346.418 0 350 3.5817 350 8V366.284C350 370.129 347.264 373.431 343.486 374.145L176.486 405.719C175.504 405.905 174.496 405.905 173.514 405.719L6.5138 374.145C2.7356 373.431 0 370.129 0 366.284Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 406' preserveAspectRatio='none'%3E%3Cpath d='M0 8C0 3.5817 3.5817 0 8 0H342C346.418 0 350 3.5817 350 8V366.284C350 370.129 347.264 373.431 343.486 374.145L176.486 405.719C175.504 405.905 174.496 405.905 173.514 405.719L6.5138 374.145C2.7356 373.431 0 370.129 0 366.284Z'/%3E%3C/svg%3E");
  }
}

.b-worries__photo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 22.5rem;
}
@media screen and (max-width: 767px) {
  .b-worries__photo {
    width: 100%;
  }
}
.b-worries__photo picture,
.b-worries__photo img {
  display: block;
}
.b-worries__photo img {
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}
@media screen and (max-width: 767px) {
  .b-worries__photo img {
    border-radius: 8px;
  }
}

/*----------------------------------
  チェックリスト
-----------------------------------*/
.b-worries__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}
@media screen and (max-width: 767px) {
  .b-worries__list {
    gap: 4px;
  }
}

.b-worries__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-worries__item {
    gap: 8px;
    font-size: 16px;
  }
}

.b-worries__check {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-worries__check {
    width: 20px;
    height: 20px;
  }
}

.b-worries__accent {
  color: #0c53bc;
}

/*----------------------------------
  締めの一文
-----------------------------------*/
.b-worries__message {
  margin-top: 3.5rem;
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-worries__message {
    margin-top: 16px;
    font-size: 24px;
  }
}

.b-worries__message-line {
  display: inline-block;
  background: #fff;
}
.b-worries__message-line:first-child {
  padding: 0.25rem 0 0.25rem 1rem;
}
.b-worries__message-line:last-child {
  padding: 0.25rem 1rem 0.25rem 0;
}
@media screen and (max-width: 767px) {
  .b-worries__message-line {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .b-worries__message-line:first-child, .b-worries__message-line:last-child {
    padding: 0 4px;
  }
  .b-worries__message-line + .b-worries__message-line {
    margin-top: 8px;
  }
}

/*----------------------------------
  service
-----------------------------------*/
.b-service {
  background: #fff;
}

.b-service__inner {
  position: relative;
  max-width: 1440px;
  margin-inline: auto;
  padding-top: 5rem;
  padding-inline: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-service__inner {
    padding-top: 56px;
    padding-inline: 20px;
  }
}

.b-service__lead {
  position: relative;
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-service__lead {
    margin-top: 16px;
    font-size: 15px;
    text-align: left;
  }
}

/*----------------------------------
  サービス一覧（画面幅いっぱい）
-----------------------------------*/
.b-service__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3.5rem;
  padding-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .b-service__list {
    grid-template-columns: 1fr;
    gap: 40px;
    margin-top: 24px;
    padding-bottom: 40px;
  }
}

.b-service__img {
  position: relative;
}
.b-service__img picture,
.b-service__img img {
  display: block;
}
.b-service__img img {
  width: 100%;
  height: auto;
}

.b-service__num {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-family: "Lato", sans-serif;
  font-size: 3rem;
  font-style: italic;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  text-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 767px) {
  .b-service__num {
    top: 14px;
    left: 16px;
    font-size: 32px;
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
  }
}

.b-service__title {
  margin-top: 1rem;
  color: #0c53bc;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-service__title {
    margin-top: 8px;
    font-size: 20px;
  }
}

.b-service__text {
  max-width: 20rem;
  margin: 0.5rem auto 0;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-service__text {
    max-width: none;
    margin-top: 4px;
    padding-inline: 20px;
    font-size: 15px;
  }
}

/*----------------------------------
  comparison
-----------------------------------*/
.b-comparison {
  background: #ebf5fd;
}

.b-comparison__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  見出し・リード
-----------------------------------*/
.b-comparison__title-em {
  margin-inline: 0.5rem;
  padding-inline: 0.25rem;
  background: #fff;
  border: 2px solid #0c53bc;
}
@media screen and (max-width: 767px) {
  .b-comparison__title-em {
    margin: 4px 4px 0 0;
    padding-inline: 4px;
  }
}

.b-comparison__lead {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-comparison__lead {
    margin-top: 16px;
    font-size: 15px;
    text-align: left;
  }
}
.b-comparison__lead strong {
  font-weight: 700;
}

/*----------------------------------
  比較カード
-----------------------------------*/
.b-comparison__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__cards {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 24px;
  }
}

.b-comparison__card {
  overflow: hidden;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-comparison__card {
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-comparison__card-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.75rem;
  padding: 0.75rem 0.625rem;
  background: #0c53bc;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-comparison__card-head {
    gap: 8px;
    padding: 8px 10px;
    font-size: 20px;
  }
}
.b-comparison__card--cloud .b-comparison__card-head {
  background: #3ea1f9;
}

.b-comparison__card-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__card-icon {
    width: 24px;
    height: 24px;
  }
}

.b-comparison__card-body {
  padding: 1.5rem 3rem 1.875rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__card-body {
    padding: 16px 20px;
  }
}

.b-comparison__card-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__card-img {
    aspect-ratio: 310/160;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 8px;
  }
}

.b-comparison__list {
  margin-top: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__list {
    margin-top: 16px;
  }
}

.b-comparison__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding-block: 1rem;
  background: linear-gradient(to right, #d9d9d9 3px, transparent 3px) repeat-x left bottom/6px 2px;
  font-size: 1.125rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-comparison__item:first-child {
  padding-top: 0;
}
@media screen and (max-width: 767px) {
  .b-comparison__item {
    gap: 8px;
    padding-block: 8px;
    font-size: 16px;
  }
  .b-comparison__item:first-child {
    padding-top: 0;
  }
}
.b-comparison__item strong {
  font-weight: 700;
}

.b-comparison__check {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__check {
    width: 20px;
    height: 20px;
  }
}

/*----------------------------------
  まとめボックス
-----------------------------------*/
.b-comparison__note {
  margin-top: 3rem;
  padding: 2.5rem;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-comparison__note {
    margin-top: 24px;
    padding: 24px 20px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    text-align: left;
  }
}

.b-comparison__note-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-comparison__note-title::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.5rem;
  height: 1.5rem;
  margin-top: 0.375rem;
  background: #0c53bc;
}
@media screen and (max-width: 767px) {
  .b-comparison__note-title {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 12px;
    font-size: 20px;
  }
  .b-comparison__note-title::before {
    width: 4px;
    height: 24px;
    margin-top: 3px;
  }
}

.b-comparison__accent {
  display: inline;
  color: #0c53bc;
}

.b-comparison__note-text {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-comparison__note-text {
    margin-top: 16px;
    font-size: 15px;
  }
}
.b-comparison__note-text strong {
  font-weight: 700;
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-comparison__btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 24px;
  }
}

.b-comparison__btn {
  width: 25rem;
}
@media screen and (max-width: 767px) {
  .b-comparison__btn {
    width: 100%;
  }
}

/*----------------------------------
  features
-----------------------------------*/
.b-features {
  background: #fff;
}

.b-features__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-features__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-features__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-features__list {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 24px;
  }
}

.b-features__card {
  overflow: hidden;
  padding-bottom: 2rem;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-features__card {
    padding-bottom: 24px;
    border-radius: 8px;
  }
}

.b-features__img {
  position: relative;
}
.b-features__img picture,
.b-features__img img {
  display: block;
}
.b-features__img img {
  width: 100%;
  height: auto;
}

.b-features__badge {
  position: absolute;
  top: 1.5rem;
  left: 0;
  padding: 0.25rem 0.75rem;
  background: #0c53bc;
  border-radius: 0 0.25rem 0.25rem 0;
  color: #fff;
  font-family: "Lato", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-features__badge {
    top: 16px;
    padding: 0 8px;
    border-radius: 0 4px 4px 0;
    font-size: 15px;
  }
}

.b-features__title {
  margin-top: 1.5rem;
  padding-inline: 2.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-features__title {
    margin-top: 16px;
    padding-inline: 20px;
    font-size: 20px;
  }
}

.b-features__marker {
  display: inline;
  padding-bottom: 0.1875rem;
  background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0, #c2e2f8));
  background: linear-gradient(transparent calc(100% - 0.5rem), #c2e2f8 0);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
@media screen and (max-width: 767px) {
  .b-features__marker {
    padding-bottom: 2px;
    background: linear-gradient(transparent calc(100% - 6px), #c2e2f8 0);
  }
}

.b-features__text {
  margin-top: 1rem;
  padding-inline: 2.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-features__text {
    margin-top: 8px;
    padding-inline: 20px;
    font-size: 15px;
  }
}

/*----------------------------------
  one-stop
-----------------------------------*/
.b-onestop {
  background: url(./img/bg-onestep-pc.webp) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-onestop {
    background-image: url(./img/bg-onestep-sp.webp);
  }
}

.b-onestop__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-onestop__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-onestop__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-onestop__list {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 24px;
  }
}

.b-onestop__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1.5rem;
  background: #fff;
  border-top: 0.5rem solid #0c53bc;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-onestop__card {
    display: grid;
    grid-template-columns: 40px 1fr;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: 8px;
       -moz-column-gap: 8px;
            column-gap: 8px;
    padding: 20px 20px 24px;
    border-top-width: 4px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-onestop__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 5.5rem;
  height: 5.5rem;
}
@media screen and (max-width: 767px) {
  .b-onestop__icon {
    width: 40px;
    height: 40px;
  }
}

.b-onestop__title {
  margin-top: 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-onestop__title {
    margin-top: 0;
    font-size: 18px;
    text-align: left;
  }
}

.b-onestop__text {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin-top: 1rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-onestop__text {
    grid-column: 1/-1;
    margin-top: 8px;
    font-size: 15px;
  }
}

/*----------------------------------
  medical
-----------------------------------*/
.b-medical {
  padding-top: 5rem;
  background: #fff;
}
@media screen and (max-width: 767px) {
  .b-medical {
    padding-top: 40px;
  }
}

.b-medical__panel {
  margin-right: 3.5rem;
  background: #f4f4f9;
}
@media screen and (max-width: 767px) {
  .b-medical__panel {
    margin-right: 56px;
  }
}

.b-medical__inner {
  max-width: 1440px;
  margin-right: -3.5rem;
  margin-left: auto;
  padding-block: 3.5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-medical__inner {
    margin-right: -56px;
    padding-block: 40px;
    padding-inline: 20px;
  }
}

@media (min-width: 1440px) {
  .b-medical__inner {
    margin-left: calc((100vw - 1440px) / 2);
    margin-right: 0;
  }
}
/*----------------------------------
  カード
-----------------------------------*/
.b-medical__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.5rem;
  padding: 3.5rem;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-medical__card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 16px;
    padding: 24px 20px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-medical__img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 28.75rem;
}
@media screen and (max-width: 767px) {
  .b-medical__img {
    width: 100%;
  }
}
.b-medical__img picture,
.b-medical__img img {
  display: block;
}
.b-medical__img img {
  width: 100%;
  height: auto;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-medical__img img {
    border-radius: 8px;
  }
}

.b-medical__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.b-medical__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-medical__title::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.5rem;
  height: 2rem;
  background: #33b29a;
}
@media screen and (max-width: 767px) {
  .b-medical__title {
    gap: 12px;
    font-size: 20px;
  }
  .b-medical__title::before {
    width: 4px;
    height: 24px;
  }
}

.b-medical__text {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-medical__text {
    margin-top: 8px;
    font-size: 15px;
    white-space: normal;
  }
}

.b-medical__btn {
  width: 25rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-medical__btn {
    width: 100%;
    margin-top: 24px;
    padding-block: 6px;
    text-align: center;
  }
}

/*----------------------------------
  works
-----------------------------------*/
.b-works {
  position: relative;
  isolation: isolate;
  background: #fff;
}
.b-works::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 3.5rem;
  z-index: -1;
  height: 26.75rem;
  background: #ebf5fd;
}
@media screen and (max-width: 767px) {
  .b-works::before {
    top: 212px;
    left: 56px;
    height: auto;
  }
}

.b-works__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem 3.5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-works__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-works__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5625rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-works__list {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 24px;
  }
}

.b-works__card {
  overflow: hidden;
  padding-bottom: 1.5rem;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-works__card {
    padding-bottom: 24px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-works__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
}


@media screen and (max-width: 767px) {
  .b-works__img {
    aspect-ratio: 350 / 160;
    object-fit: cover;
  }
}

.b-works__tags {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-inline: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-works__tags {
    gap: 8px;
    margin-top: 16px;
    padding-inline: 20px;
  }
}

.b-works__tag {
  padding-inline: 0.75rem;
  background: #ebf5fd;
  border-radius: 0.25rem;
  color: #0c53bc;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-works__tag {
    padding-inline: 12px;
    border-radius: 4px;
    font-size: 14px;
  }
}

.b-works__title {
  margin-top: 0.75rem;
  padding-inline: 1.5rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-works__title {
    margin-top: 8px;
    padding-inline: 20px;
    font-size: 18px;
  }
}

.b-works__text {
  margin-top: 0.5rem;
  padding-inline: 1.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-works__text {
    margin-top: 8px;
    padding-inline: 20px;
    font-size: 14px;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-works__btn-wrap {
  margin-top: 3.5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-works__btn-wrap {
    margin-top: 24px;
  }
}

.b-works__btn {
  width: 17.5rem;
}
@media screen and (max-width: 767px) {
  .b-works__btn {
    width: 100%;
  }
}

/*----------------------------------
  price
-----------------------------------*/
.b-price {
  background: #fff;
}

.b-price__inner {
  display: grid;
  grid-template-columns: 17.5rem 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas: "title table" "btn   table";
  -webkit-column-gap: 7.5rem;
     -moz-column-gap: 7.5rem;
          column-gap: 7.5rem;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 10rem 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-price__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas: "title" "table" "btn";
    padding-block: 40px;
    padding-inline: 20px;
  }
}

.b-price__title {
  grid-area: title;
}

/*----------------------------------
  料金表
-----------------------------------*/
.b-price__body {
  grid-area: table;
}
@media screen and (max-width: 767px) {
  .b-price__body {
    margin-top: 24px;
  }
}

.b-price__table {
  overflow: hidden;
  border: 1px solid #d9d9d9;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-price__table {
    border-radius: 8px;
  }
}

.b-price__table-head {
  padding: 0.5rem 0.625rem;
  background: #0c53bc;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-price__table-head {
    padding: 8px 10px;
    font-size: 20px;
  }
}

.b-price__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 5rem;
  padding-left: 3.5rem;
}
.b-price__row:nth-child(even) {
  background: #f4f4f9;
}
@media screen and (max-width: 767px) {
  .b-price__row {
    display: block;
    height: auto;
    padding-left: 0;
  }
  .b-price__row:nth-child(even) {
    background: none;
  }
}

.b-price__label {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 26.5rem;
          flex: 0 0 26.5rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-price__label {
    padding-block: 12px;
    background: #f4f4f9;
    font-size: 18px;
    text-align: center;
  }
}

.b-price__value {
  margin: 0;
}
@media screen and (max-width: 767px) {
  .b-price__value {
    padding-block: 8px;
    text-align: center;
  }
}

.b-price__num {
  display: inline;
  color: #0c53bc;
  font-family: "Lato", sans-serif;
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .b-price__num {
    font-size: 32px;
  }
}

.b-price__unit {
  display: inline;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 767px) {
  .b-price__unit {
    font-size: 20px;
  }
}

.b-price__note {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-price__note {
    margin-top: 8px;
    font-size: 15px;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-price__btn {
  grid-area: btn;
  align-self: start;
  width: 17.5rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-price__btn {
    width: 100%;
    margin-top: 16px;
  }
}

/*----------------------------------
  flow
-----------------------------------*/
.b-flow {
  background: #f4f4f9;
}

.b-flow__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-flow__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  ステップ
-----------------------------------*/
.b-flow__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-flow__list {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 24px;
  }
}

.b-flow__item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  padding: 2rem 1.5rem;
  background: #fff;
  border-radius: 0.75rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
.b-flow__item:not(:nth-child(3n))::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(100% + 0.375rem);
  width: 1.75rem;
  height: 1.75rem;
  background: url(./img/icon-triangle-blue.svg) no-repeat center/contain;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .b-flow__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 8px;
    padding: 16px 16px 16px 64px;
    border-radius: 6px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
  .b-flow__item:not(:nth-child(3n))::after {
    content: none;
  }
  .b-flow__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 20px;
    height: 20px;
    background: url(./img/icon-triangle-blue.svg) no-repeat center/contain;
    -webkit-transform: translateX(-50%) rotate(90deg);
            transform: translateX(-50%) rotate(90deg);
  }
}

.b-flow__num {
  position: absolute;
  top: 1rem;
  left: 1.5rem;
  color: #0c53bc;
  font-family: "Lato", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-flow__num {
    top: 8px;
    left: 16px;
    font-size: 20px;
  }
}

.b-flow__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4.5rem;
  height: 4.5rem;
}
@media screen and (max-width: 767px) {
  .b-flow__icon {
    width: 40px;
    height: 40px;
  }
}

.b-flow__title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-flow__title {
    font-size: 18px;
    text-align: left;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-flow__btn-wrap {
  margin-top: 3.5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-flow__btn-wrap {
    margin-top: 24px;
  }
}

.b-flow__btn {
  width: 17.5rem;
}
@media screen and (max-width: 767px) {
  .b-flow__btn {
    width: 100%;
  }
}

/*----------------------------------
  area
-----------------------------------*/
.b-area {
  background: url(./img/bg-area-pc.webp) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-area {
    background-image: url(./img/bg-area-sp.webp);
  }
}

.b-area__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-area__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-area__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.5rem;
  margin-top: 2.5rem;
  padding: 3.5rem;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-area__card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 8px;
    margin-top: 24px;
    padding: 24px 20px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-area__map {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 25rem;
}
@media screen and (max-width: 767px) {
  .b-area__map {
    width: 100%;
  }
}
.b-area__map picture,
.b-area__map img {
  display: block;
}
.b-area__map img {
  width: 100%;
  height: auto;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-area__map img {
    border-radius: 8px;
  }
}

.b-area__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.b-area__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-area__title {
    font-size: 20px;
  }
}

.b-area__accent {
  display: inline;
  color: #0c53bc;
}

.b-area__text {
  margin-top: 2rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
  word-break: auto-phrase;
}
@media screen and (max-width: 767px) {
  .b-area__text {
    margin-top: 16px;
    font-size: 15px;
    word-break: normal;
  }
}

.b-area__btn {
  width: 17.5rem;
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .b-area__btn {
    width: 100%;
    margin-top: 24px;
  }
}

/*----------------------------------
  faq
-----------------------------------*/
.b-faq {
  background: #fff;
}

.b-faq__inner {
  display: grid;
  grid-template-columns: 17.5rem 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas: "title list" "btn   list";
  -webkit-column-gap: 7.5rem;
     -moz-column-gap: 7.5rem;
          column-gap: 7.5rem;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-faq__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas: "title" "list" "btn";
    padding-block: 40px;
    padding-inline: 20px;
  }
}

.b-faq__title {
  grid-area: title;
}

/*----------------------------------
  質問リスト（アコーディオン）
-----------------------------------*/
.b-faq__list {
  grid-area: list;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-faq__list {
    gap: 16px;
    margin-top: 24px;
  }
}

.b-faq__item {
  background: #f4f4f9;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-faq__item {
    border-radius: 8px;
  }
}

.b-faq__question {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 1.5rem;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .b-faq__question {
    gap: 12px;
    padding: 16px 20px;
  }
}
@media (any-hover: hover) {
  .b-faq__question:hover {
    opacity: 0.7;
  }
}

.b-faq__q,
.b-faq__a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  font-family: "Lato", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-faq__q,
  .b-faq__a {
    width: 32px;
    height: 32px;
    font-size: 18px;
  }
}

.b-faq__q {
  background: #0c53bc;
  color: #f4f4f9;
}

.b-faq__a {
  background: #fff;
  color: #0c53bc;
}

.b-faq__question-text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-faq__question-text {
    font-size: 16px;
  }
}

.b-faq__toggle {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-faq__toggle {
    width: 16px;
    height: 16px;
  }
}
.b-faq__toggle::before, .b-faq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.0625rem;
  height: 3px;
  background: #0c53bc;
  border-radius: 999px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
@media screen and (max-width: 767px) {
  .b-faq__toggle::before, .b-faq__toggle::after {
    width: 13px;
  }
}
.b-faq__toggle::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.b-faq__item.is-open .b-faq__toggle::after {
  -webkit-transform: translate(-50%, -50%) rotate(0deg);
          transform: translate(-50%, -50%) rotate(0deg);
}

/*----------------------------------
  回答
-----------------------------------*/
.b-faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  -webkit-transition: grid-template-rows 0.3s, visibility 0.3s;
  transition: grid-template-rows 0.3s, visibility 0.3s;
  transition: grid-template-rows 0.3s, visibility 0.3s, -ms-grid-rows 0.3s;
}
.b-faq__item.is-open .b-faq__answer {
  grid-template-rows: 1fr;
  visibility: visible;
}

.b-faq__answer-inner {
  overflow: hidden;
  min-height: 0;
}

.b-faq__answer-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 1rem;
  margin-inline: 1.5rem;
  padding-block: 1rem 1.5rem;
  border-top: 1px solid #d9d9d9;
}
@media screen and (max-width: 767px) {
  .b-faq__answer-body {
    gap: 12px;
    margin-inline: 20px;
    padding-block: 16px;
  }
}

.b-faq__answer-text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-top: 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-faq__answer-text {
    padding-top: 4px;
    font-size: 15px;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-faq__btn {
  grid-area: btn;
  align-self: start;
  width: 17.5rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .b-faq__btn {
    width: 100%;
    margin-top: 24px;
  }
}

/*----------------------------------
  blog & news（お役立ち情報・お知らせ）
-----------------------------------*/
.b-topics {
  background: #ebf5fd;
}

.b-topics__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-topics__inner {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-block: 40px;
    padding-inline: 20px;
  }
}

.b-topics__col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/*----------------------------------
  見出し行
-----------------------------------*/
.b-topics__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
}

.b-topics__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 1rem;
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-topics__title {
    gap: 8px;
    font-size: 24px;
  }
}

.b-topics__title-en {
  color: #0c53bc;
  font-family: "Lato", sans-serif;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-topics__title-en {
    font-size: 14px;
  }
}

.b-topics__more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media (any-hover: hover) {
  .b-topics__more:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 767px) {
  .b-topics__more {
    gap: 8px;
    font-size: 15px;
  }
}

.b-topics__more-arrow {
  width: 1.25rem;
  height: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-topics__more-arrow {
    width: 20px;
    height: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-topics__card {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-top: 1rem;
  padding: 2.5rem 1.5rem;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-topics__card {
    margin-top: 12px;
    padding: 24px 20px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-topics__item:not(:last-child) {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  background: linear-gradient(to right, #d9d9d9 3px, transparent 3px) repeat-x left bottom/6px 2px;
}
@media screen and (max-width: 767px) {
  .b-topics__item:not(:last-child) {
    margin-bottom: 12px;
    padding-bottom: 12px;
  }
}

.b-topics__link {
  display: block;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (any-hover: hover) {
  .b-topics__link:hover {
    opacity: 0.7;
  }
}
.b-topics__link--blog {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  grid-template-rows: auto auto 1fr;
  grid-template-areas: "thumb date" "thumb title" "thumb excerpt";
  -webkit-column-gap: 1.25rem;
     -moz-column-gap: 1.25rem;
          column-gap: 1.25rem;
}
@media screen and (max-width: 767px) {
  .b-topics__link--blog {
    grid-template-columns: 80px 1fr;
    grid-template-rows: auto 1fr auto;
    grid-template-areas: "thumb date" "thumb title" "excerpt excerpt";
    -webkit-column-gap: 16px;
       -moz-column-gap: 16px;
            column-gap: 16px;
  }
}

.b-topics__thumb {
  grid-area: thumb;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  -o-object-fit: cover;
     object-fit: cover;
  background: #d9d9d9;
  border-radius: 0.5rem;
}
@media screen and (max-width: 767px) {
  .b-topics__thumb {
    border-radius: 8px;
  }
}

.b-topics__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
}
@media screen and (max-width: 767px) {
  .b-topics__meta {
    gap: 8px;
  }
}

.b-topics__tag {
  width: 4.5rem;
  padding: 0.125rem 0.75rem;
  background: #0c53bc;
  border-radius: 0.25rem;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .b-topics__tag {
    width: 72px;
    padding: 0 12px;
    border-radius: 4px;
    font-size: 12px;
  }
}

.b-topics__date {
  grid-area: date;
  color: #888;
  font-family: "Lato", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-topics__date {
    font-size: 14px;
  }
}

.b-topics__item-title {
  grid-area: title;
  margin-top: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-topics__item-title {
    margin-top: 4px;
    font-size: 15px;
  }
}

.b-topics__excerpt {
  grid-area: excerpt;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-topics__excerpt {
    margin-top: 4px;
    font-size: 14px;
  }
}

/*----------------------------------
  cta
-----------------------------------*/
.b-cta {
  background: #0c53bc url(./img/bg-cta.svg) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-cta {
    background-position: 82% center;
  }
}

.b-cta__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: 14.5rem;
}
@media screen and (max-width: 767px) {
  .b-cta__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

@media screen and (max-width: 767px) {
  .b-cta__heading {
    font-size: 20px;
  }
}

/*----------------------------------
  白い箱
-----------------------------------*/
.b-cta__box {
  margin-top: 2.5rem;
  padding: 3.5rem 5rem;
  background: #fff;
  border-radius: 1rem;
}
@media screen and (max-width: 767px) {
  .b-cta__box {
    margin-top: 24px;
    padding: 24px 20px;
    border-radius: 8px;
  }
}

.b-cta__text {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-cta__text {
    font-size: 15px;
    text-align: left;
  }
}

.b-cta__btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-cta__btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 24px;
  }
}

.b-cta__btn {
  width: 25rem;
}
@media screen and (max-width: 767px) {
  .b-cta__btn {
    width: 100%;
  }
}

/*----------------------------------
  footer
-----------------------------------*/
.b-footer {
  background: #fff;
}

.b-footer__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 2.5rem;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 3.5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-footer__main {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 32px;
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  会社情報
-----------------------------------*/
.b-footer__company {
  font-style: normal;
}

.b-footer__name {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-footer__name {
    font-size: 20px;
  }
}

.b-footer__address {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-footer__address {
    margin-top: 8px;
    font-size: 15px;
  }
}

.b-footer__tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.25rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 1.5rem;
}
@media (any-hover: hover) {
  .b-footer__tel:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 767px) {
  .b-footer__tel {
    gap: 8px;
    margin-top: 8px;
  }
}

.b-footer__tel-icon {
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (max-width: 767px) {
  .b-footer__tel-icon {
    width: 20px;
    height: 20px;
  }
}

.b-footer__tel-number {
  font-family: "Lato", sans-serif;
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-footer__tel-number {
    font-size: 20px;
  }
}

/*----------------------------------
  サイトマップ
  PC: 3列×2段（列方向に流し、2段目の見出しを横一列にそろえる）
  SP: 2列グリッドに行方向で流す
-----------------------------------*/
.b-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, 14.0625rem);
  grid-template-rows: auto auto;
  grid-auto-flow: column;
  row-gap: 2.5rem;
}
@media screen and (max-width: 767px) {
  .b-footer__nav {
    grid-template-columns: 178px 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
    row-gap: 24px;
  }
}

.b-footer__nav-col {
  display: contents;
}

.b-footer__nav-heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.b-footer__nav-heading::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.25rem;
  height: 0.75rem;
  background: #0c53bc;
}
@media screen and (max-width: 767px) {
  .b-footer__nav-heading {
    gap: 8px;
    font-size: 15px;
  }
  .b-footer__nav-heading::before {
    width: 4px;
    height: 12px;
  }
}

.b-footer__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
@media screen and (max-width: 767px) {
  .b-footer__nav-list {
    gap: 4px;
    margin-top: 12px;
  }
}

.b-footer__nav-link {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media (any-hover: hover) {
  .b-footer__nav-link:hover {
    color: #0c53bc;
  }
}
@media screen and (max-width: 767px) {
  .b-footer__nav-link {
    font-size: 14px;
  }
}

/*----------------------------------
  下部の帯
-----------------------------------*/
.b-footer__bottom {
  background: #333;
  color: #fff;
}

.b-footer__bottom-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 1.5rem;
  padding-inline: 10.625rem;
}
@media screen and (max-width: 767px) {
  .b-footer__bottom-inner {
    padding-block: 16px;
    padding-inline: 20px;
  }
}

.b-footer__privacy {
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media (any-hover: hover) {
  .b-footer__privacy:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 767px) {
  .b-footer__privacy {
    font-size: 14px;
  }
}

.b-footer__copyright {
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-footer__copyright {
    font-size: 12px;
  }
}

.b-hidden-sp {
  display: inline;
}
@media screen and (max-width: 767px) {
  .b-hidden-sp {
    display: none;
  }
}

.b-hidden-pc {
  display: none;
}
@media screen and (max-width: 767px) {
  .b-hidden-pc {
    display: inline;
  }
}/*# sourceMappingURL=style.css.map */

/* ==========================================================
   WordPress 投稿本文の保護・復元
   ----------------------------------------------------------
   既存の b- 系デザインには手を入れず、WordPress本文で
   段落・リスト・リンク・画像が通常どおり使えるようにする。

   対象候補:
   - .entry-content           : 多くのクラシックテーマ
   - .wp-block-post-content   : ブロックテーマ / Gutenberg
   - .post-content            : 一部テーマ
   - .page-content            : 一部テーマ
   ========================================================== */

/* 段落間の余白。
   rem ではなく em を使うため、既存の html font-size の影響を受けにくい。 */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  p:not(:where([class^="b-"], [class*=" b-"]) *) {
  margin-top: 0;
  margin-bottom: 1.5em;
}

/* 最後の段落だけ余白を残しすぎない */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  p:last-child:not(:where([class^="b-"], [class*=" b-"]) *) {
  margin-bottom: 0;
}

/* 通常の箇条書き・番号付きリストを復元。
   b- 系コンポーネント内のリストには適用しない。 */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ul:not(:where([class^="b-"], [class*=" b-"]) *) {
  margin-top: 1em;
  margin-bottom: 1.5em;
  padding-left: 1.5em;
  list-style: disc outside;
}

:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ol:not(:where([class^="b-"], [class*=" b-"]) *) {
  margin-top: 1em;
  margin-bottom: 1.5em;
  padding-left: 1.5em;
  list-style: decimal outside;
}

:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  li:not(:where([class^="b-"], [class*=" b-"]) *) {
  display: list-item;
  margin-bottom: 0.4em;
}

/* 入れ子リスト */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ul ul:not(:where([class^="b-"], [class*=" b-"]) *) {
  list-style-type: circle;
  margin-block: 0.4em;
}

:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ol ol:not(:where([class^="b-"], [class*=" b-"]) *) {
  margin-block: 0.4em;
}

/* 元CSSの a / span { display:inline-block; } が本文へ波及するのを戻す */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  :where(a, span):not(:where([class^="b-"], [class*=" b-"]) *) {
  display: inline;
}

/* 元CSSの img { width:100%; height:100%; } を本文画像では解除。
   WordPressの画像ブロックのサイズ指定を壊しにくくする。 */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  img:not(:where([class^="b-"], [class*=" b-"]) *) {
  max-width: 100%;
  width: auto;
  height: auto;
}

/* WordPress標準の画像ブロックは指定サイズいっぱいに表示できるようにする */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  .wp-block-image img {
  width: auto;
  max-width: 100%;
  height: auto;
}

/* Gutenberg の wp-block-list にテーマ側で list-style:none があっても復元 */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ul.wp-block-list {
  list-style: disc outside;
  padding-left: 1.5em;
}

:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ol.wp-block-list {
  list-style: decimal outside;
  padding-left: 1.5em;
}

/* li 側で list-style:none が指定されているテーマへの保険 */
:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ul > li:not(:where([class^="b-"], [class*=" b-"]) *) {
  list-style-type: disc;
}

:where(.entry-content, .wp-block-post-content, .post-content, .page-content)
  ol > li:not(:where([class^="b-"], [class*=" b-"]) *) {
  list-style-type: decimal;
}

/* ==========================================================
   b- 系デザインリストのリセット
   ----------------------------------------------------------
   WordPress投稿本文の ul / ol は通常のマーカーを表示しつつ、
   コーダー制作の b- 系コンポーネントに付いたリストだけ
   ブラウザ標準の黒丸・番号・余白を無効化する。
   ========================================================== */

ul[class^="b-"],
ul[class*=" b-"],
ol[class^="b-"],
ol[class*=" b-"] {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* WordPress本文復元ルールより後ろで確実にマーカーを消す */
ul[class^="b-"] > li,
ul[class*=" b-"] > li,
ol[class^="b-"] > li,
ol[class*=" b-"] > li {
  list-style: none;
}
/* ｍが追加した */
.home .b-section-title__main {
  white-space: nowrap;
}
.b-comparison__list{
  padding-top:20px!important;
}

/* トップページ様に動き追加したここから */
/* ==========================================================
   TOP PAGE：控えめなモーション装飾
   レイアウト・サイズには影響しない指定のみ
   ========================================================== */


/* ----------------------------------------------------------
   スクロール表示
   ---------------------------------------------------------- */

.motion-reveal {
  opacity: 0;
  translate: 0 24px;
}

.motion-reveal.is-visible {
  animation:
    motionReveal 1.2s cubic-bezier(.16, 1, .3, 1)
    var(--motion-delay, 0ms) forwards;
}

@keyframes motionReveal {
  0% {
    opacity: 0;
    translate: 0 18px;
  }

  100% {
    opacity: 1;
    translate: 0 0;
  }
}


/* ----------------------------------------------------------
   ボタン
   ---------------------------------------------------------- */

@media (hover: hover) {

  .b-btn__arrow {
    transition: translate 0.25s ease;
  }

  .b-btn:hover .b-btn__arrow {
    translate: 4px 0;
  }

}


/* ----------------------------------------------------------
   ONE-STOP アイコン
   ---------------------------------------------------------- */

@media (hover: hover) {

  .b-onestop__icon {
    transition:
      translate 0.3s ease,
      filter 0.3s ease;
  }

  .b-onestop__card:hover .b-onestop__icon {
    translate: 0 -4px;
    filter: drop-shadow(0 5px 7px rgba(0, 0, 0, 0.08));
  }

}


/* ----------------------------------------------------------
   写真をほんの少し明るく
   ※拡大させないのでレイアウトへの影響なし
   ---------------------------------------------------------- */

@media (hover: hover) {

  .b-service__img img,
  .b-features__img img,
  .b-medical__img img {
    transition: filter 0.35s ease;
  }

  .b-service__item:hover .b-service__img img,
  .b-features__card:hover .b-features__img img,
  .b-medical__card:hover .b-medical__img img {
    filter: brightness(1.04) saturate(1.03);
  }

}


/* ----------------------------------------------------------
   動きを減らす設定をしている端末への配慮
   ---------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

  .motion-reveal {
    opacity: 1 !important;
    translate: none !important;
    animation: none !important;
  }

  .b-btn__arrow,
  .b-onestop__icon {
    transition: none !important;
  }

}

/* トップページ様に動き追加ここまで */














/* 医療系cssここから */

/*----------------------------------
  セクションタイトル：見出し上の小さな英字
-----------------------------------*/
.b-section-title__en-sub {
  display: block;
  margin-bottom: calc(8 * var(--u));
  color: #0c53bc;
  font-family: "Lato", sans-serif;
  font-size: calc(18 * var(--u));
  font-style: italic;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-section-title__en-sub {
    margin-bottom: 4px;
    font-size: 14px;
  }
}

/*----------------------------------
  セクションタイトル：改行させない語句のまとまり
-----------------------------------*/
.b-section-title__phrase {
  display: inline-block;
}

/*----------------------------------
  医療・介護施設向け MV
-----------------------------------*/
.b-medical-mv {
  position: relative;
  display: grid;
  background: #fff;
}
.b-medical-mv::before {
  content: "";
  grid-area: 1/1;
  padding-top: calc(min(800px, calc(620 * var(--u)) + max(0px, (100% - 1440px) * 180 / 1120)) + calc(80 * var(--u)));
}
@media screen and (max-width: 767px) {
  .b-medical-mv {
    display: block;
  }
  .b-medical-mv::before {
    content: none;
  }
}

.b-medical-mv__inner {
  grid-area: 1/1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: calc(40 * var(--u));
  padding-inline: calc(104 * var(--u)) 0;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    padding-block: 0 40px;
    padding-inline: 20px;
  }
}

.b-medical-mv__body {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__body {
    margin-top: -40px;
  }
}

/*----------------------------------
  見出し
-----------------------------------*/
.b-medical-mv__title {
  margin: 0;
  color: #333;
  font-size: calc(48 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__title {
    font-size: 24px;
    letter-spacing: 0.04em;
  }
}

.b-medical-mv__title-line {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding-inline: calc(4 * var(--u));
  background: #fff;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__title-line {
    padding-inline: 4px calc(4px - 0.04em);
  }
}
@media screen and (max-width: 767px) {
  .b-medical-mv__title-line:nth-child(2) {
    display: inline-block;
    vertical-align: top;
    padding-right: 0;
  }
}
@media screen and (max-width: 767px) {
  .b-medical-mv__title-line:nth-child(3) {
    display: inline-block;
    vertical-align: top;
    padding-left: 0;
  }
}

.b-medical-mv__title-accent {
  color: #0c53bc;
}

/*----------------------------------
  リード
-----------------------------------*/
.b-medical-mv__lead {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: calc(32 * var(--u)) 0 0;
  padding: calc(4 * var(--u)) calc(calc(4 * var(--u)) - 0.08em) calc(4 * var(--u)) calc(4 * var(--u));
   background: transparent;
    text-shadow:
      0 1px 2px rgba(255, 255, 255, 0.95),
      0 0 6px rgba(255, 255, 255, 0.9),
      0 0 12px rgba(255, 255, 255, 0.75);
  color: #333;
  font-size: calc(16 * var(--u));
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__lead {
    width: auto;
    margin-top: 8px;
    padding: 4px calc(4px - 0.04em) 4px 4px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5333333333;
    letter-spacing: 0.04em;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-medical-mv__btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: calc(16 * var(--u));
  margin-top: calc(40 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-mv__btns {
    gap: 12px;
    margin-top: 16px;
  }
}

.b-medical-mv__btn {
  width: calc(360 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-mv__btn {
    width: 100%;
  }
}

/*----------------------------------
  写真
-----------------------------------*/
.b-medical-mv__img {
  position: absolute;
  top: calc(40 * var(--u));
  right: 0;
  bottom: calc(40 * var(--u));
  left: max(calc(580 * var(--u)), 50% - 140px);
  display: block;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__img {
    position: static;
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
    margin-right: -20px;
  }
}

.b-medical-mv__img img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: calc(40 * var(--u)) 0 0 calc(40 * var(--u));
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 20%;
     object-position: 50% 20%;
}
@media screen and (max-width: 767px) {
  .b-medical-mv__img img {
    height: auto;
    border-radius: 20px 0 0 30px;
  }
}

/*----------------------------------
  お困りごと（医療・介護施設向け）
-----------------------------------*/
.b-worries--medical::before {
  background-image: url(./img/bg-worries-pc.webp);
}
@media screen and (max-width: 767px) {
  .b-worries--medical::before {
    height: 240px;
    background-image: url(./img/bg-worries-sp.webp);
  }
}

/*----------------------------------
  吹き出しカード
-----------------------------------*/
@media screen and (max-width: 767px) {
  .b-worries--medical .b-worries__card-body {
    padding-top: 20px;
    border-radius: 8px 8px 0 0;
    -webkit-mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000)) no-repeat top/100% calc(100% - 39.574px + 1px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 39.574' preserveAspectRatio='none'%3E%3Cpath d='M0 0H350C350 3.845 347.264 7.147 343.486 7.861L176.486 39.435C175.504 39.621 174.496 39.621 173.514 39.435L6.5138 7.861C2.7356 7.147 0 3.845 0 0Z'/%3E%3C/svg%3E") no-repeat bottom/100% 39.574px;
    -webkit-mask: linear-gradient(#000 0 0) no-repeat top/100% calc(100% - 39.574px + 1px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 39.574' preserveAspectRatio='none'%3E%3Cpath d='M0 0H350C350 3.845 347.264 7.147 343.486 7.861L176.486 39.435C175.504 39.621 174.496 39.621 173.514 39.435L6.5138 7.861C2.7356 7.147 0 3.845 0 0Z'/%3E%3C/svg%3E") no-repeat bottom/100% 39.574px;
    mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000)) no-repeat top/100% calc(100% - 39.574px + 1px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 39.574' preserveAspectRatio='none'%3E%3Cpath d='M0 0H350C350 3.845 347.264 7.147 343.486 7.861L176.486 39.435C175.504 39.621 174.496 39.621 173.514 39.435L6.5138 7.861C2.7356 7.147 0 3.845 0 0Z'/%3E%3C/svg%3E") no-repeat bottom/100% 39.574px;
    mask: linear-gradient(#000 0 0) no-repeat top/100% calc(100% - 39.574px + 1px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 350 39.574' preserveAspectRatio='none'%3E%3Cpath d='M0 0H350C350 3.845 347.264 7.147 343.486 7.861L176.486 39.435C175.504 39.621 174.496 39.621 173.514 39.435L6.5138 7.861C2.7356 7.147 0 3.845 0 0Z'/%3E%3C/svg%3E") no-repeat bottom/100% 39.574px;
  }
}

.b-worries--medical .b-worries__photo {
  width: calc(280 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-worries--medical .b-worries__photo {
    width: 100%;
  }
}

/*----------------------------------
  チェックリスト
-----------------------------------*/
@media screen and (max-width: 767px) {
  .b-worries--medical .b-worries__item {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    white-space: normal;
  }
}

@media screen and (max-width: 767px) {
  .b-worries--medical .b-worries__check {
    margin-top: 2px;
  }
}

@media screen and (max-width: 767px) {
  .b-worries__text {
    margin-right: -0.04em;
  }
}

.b-worries--medical .b-worries__accent {
  display: inline;
}

/*----------------------------------
  サービス（医療・介護施設向け）
-----------------------------------*/
.b-medical-service {
  background: #fff;
}

.b-medical-service__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: calc(80 * var(--u));
  padding-inline: calc(170 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-service__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード一覧（PC：3枚＋2枚を中央寄せ / SP：1列）
-----------------------------------*/
.b-medical-service__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: calc(40 * var(--u));
  margin: calc(56 * var(--u)) 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767px) {
  .b-medical-service__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 16px;
    margin-top: 24px;
  }
}

.b-medical-service__item {
  width: calc(340 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-service__item {
    width: auto;
  }
}

.b-medical-service__img {
  position: relative;
}
.b-medical-service__img picture,
.b-medical-service__img img {
  display: block;
  max-width: 100%;
}
.b-medical-service__img img {
  width: 100%;
  height: auto;
  border-radius: calc(16 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-service__img img {
    border-radius: 8px;
  }
}

.b-medical-service__num {
  position: absolute;
  top: calc(16 * var(--u));
  left: calc(16 * var(--u));
  color: #fff;
  font-family: "Lato", sans-serif;
  font-size: calc(36 * var(--u));
  font-style: italic;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.04em;
  text-shadow: 0 0 calc(20 * var(--u)) rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 767px) {
  .b-medical-service__num {
    top: 16px;
    left: 16px;
    font-size: 32px;
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
  }
}

.b-medical-service__title {
  margin: calc(8 * var(--u)) 0 0;
  color: #0c53bc;
  font-size: calc(24 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-medical-service__title {
    margin-top: 8px;
    font-size: 20px;
  }
}

.b-medical-service__text {
  margin: calc(8 * var(--u)) 0 0;
  font-size: calc(16 * var(--u));
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-medical-service__text {
    margin-top: 4px;
    font-size: 15px;
    line-height: 1.5333333333;
  }
}

/*----------------------------------
  下向き矢印
-----------------------------------*/
.b-medical-service__arrow {
  display: block;
  width: calc(38 * var(--u));
  height: auto;
  margin: calc(48 * var(--u)) auto 0;
}
@media screen and (max-width: 767px) {
  .b-medical-service__arrow {
    width: auto;
    height: 36px;
    margin-top: 24px;
  }
}

/*----------------------------------
  締めの一文
-----------------------------------*/
.b-medical-service__message {
  margin-top: calc(24 * var(--u));
  font-size: calc(32 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-medical-service__message {
    margin-top: 8px;
    font-size: 20px;
  }
}

.b-medical-service__message-text {
  margin: 0;
}

.b-medical-service__message-em {
  margin: calc(8 * var(--u)) 0 0;
}
@media screen and (max-width: 767px) {
  .b-medical-service__message-em {
    margin-top: 8px;
  }
}

.b-medical-service__message-line {
  display: inline-block;
  background: #0c53bc;
  color: #fff;
}
.b-medical-service__message-line:first-child {
  padding-left: calc(8 * var(--u));
}
.b-medical-service__message-line:last-child {
  padding-right: calc(calc(8 * var(--u)) - 0.04em);
}
@media screen and (max-width: 767px) {
  .b-medical-service__message-line {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .b-medical-service__message-line:first-child, .b-medical-service__message-line:last-child {
    padding-inline: 8px calc(8px - 0.04em);
  }
  .b-medical-service__message-line + .b-medical-service__message-line {
    margin-top: 8px;
  }
}

/*----------------------------------
  ソリューション（医療・介護施設向け）
-----------------------------------*/
.b-medical-solution {
  background: url(./img/bg-solution-pc.webp) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-medical-solution {
    background-image: url(./img/bg-solution-sp.webp);
  }
}

.b-medical-solution__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-block: calc(80 * var(--u));
  padding-inline: calc(170 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-solution__inner {
    padding-block: 40px;
    padding-inline: 20px;
  }
}

/*----------------------------------
  カード
-----------------------------------*/
.b-medical-solution__card {
  margin-top: calc(40 * var(--u));
  padding: calc(56 * var(--u));
  background: #fff;
  border-radius: calc(16 * var(--u));
  -webkit-box-shadow: 0 0 calc(20 * var(--u)) rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 calc(20 * var(--u)) rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .b-medical-solution__card {
    margin-top: 24px;
    padding: 24px 20px;
    border-radius: 8px;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  }
}

.b-medical-solution__heading {
  isolation: isolate;
  margin: 0;
  font-size: calc(24 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__heading {
    font-size: 20px;
  }
}

.b-medical-solution__heading-line {
  position: relative;
  display: inline-block;
}
.b-medical-solution__heading-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(2 * var(--u));
  z-index: -1;
  width: 100%;
  height: calc(8 * var(--u));
  background: #c2e2f8;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__heading-line::after {
    bottom: 2px;
    width: calc(100% - 0.04em);
    height: 6px;
  }
}
.b-medical-solution__heading-line:last-child::after {
  width: calc(100% - 0.04em);
}
@media screen and (max-width: 767px) {
  .b-medical-solution__heading-line {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
}

.b-medical-solution__text {
  margin: calc(24 * var(--u)) 0 0;
  font-size: calc(16 * var(--u));
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__text {
    margin-top: 16px;
    margin-right: -0.04em;
    font-size: 15px;
    line-height: 1.5333333333;
  }
}

/*----------------------------------
  3つの項目（PC：横並びで高さをそろえる / SP：縦並び）
-----------------------------------*/
.b-medical-solution__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: calc(32 * var(--u));
  margin: calc(40 * var(--u)) 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 16px;
    margin-top: 24px;
  }
}

.b-medical-solution__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden;
  background: #f4f4f9;
  border-radius: calc(8 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-solution__item {
    border-radius: 8px;
  }
}

.b-medical-solution__img picture,
.b-medical-solution__img img {
  display: block;
  max-width: 100%;
}
.b-medical-solution__img img {
  width: 100%;
  height: auto;
}

.b-medical-solution__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: calc(8 * var(--u));
  margin: 0;
  padding-block: calc(28 * var(--u));
  font-size: calc(18 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__label {
    gap: 8px;
    padding-block: 16px;
    font-size: 16px;
  }
}

.b-medical-solution__check {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: calc(24 * var(--u));
  height: calc(24 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-solution__check {
    width: 20px;
    height: 20px;
  }
}

/*----------------------------------
  ボタン
-----------------------------------*/
.b-medical-solution__btn-wrap {
  margin-top: calc(56 * var(--u));
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-medical-solution__btn-wrap {
    margin-top: 24px;
  }
}

.b-medical-solution__btn {
  width: calc(400 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-medical-solution__btn {
    width: 100%;
  }
}

/*----------------------------------
  施工事例（医療・介護施設向け）
-----------------------------------*/
.b-works--medical {
  margin-bottom: calc(80 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-works--medical {
    margin-bottom: 40px;
  }
}
.b-works--medical::before {
  height: calc(407 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-works--medical::before {
    top: 181px;
    height: auto;
  }
}

/*----------------------------------
  導入の流れ（医療・介護施設向け）
-----------------------------------*/
.b-flow__lead {
  margin: calc(24 * var(--u)) 0 0;
  font-size: calc(16 * var(--u));
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-flow__lead {
    margin-top: 16px;
    margin-right: -0.04em;
    font-size: 15px;
    line-height: 1.5333333333;
    text-align: left;
  }
}

.b-flow--medical .b-flow__list {
  grid-auto-rows: 1fr;
}

/*----------------------------------
  カード（説明文を追加）
-----------------------------------*/
.b-flow--medical .b-flow__item {
  gap: 0;
}
@media screen and (max-width: 767px) {
  .b-flow--medical .b-flow__item {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-line-pack: start;
        align-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 8px;
    padding: 16px 20px;
  }
}

@media screen and (max-width: 767px) {
  .b-flow--medical .b-flow__icon {
    margin-left: 44px;
  }
}

.b-flow--medical .b-flow__title {
  margin-top: calc(16 * var(--u));
}
@media screen and (max-width: 767px) {
  .b-flow--medical .b-flow__title {
    margin-top: 0;
  }
}

.b-flow__text {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin: calc(8 * var(--u)) 0 0;
  font-size: calc(14 * var(--u));
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .b-flow__text {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    margin-top: 0;
    margin-right: -0.04em;
    font-size: 14px;
  }
}

/*----------------------------------
  お問い合わせ（医療・介護施設向け）
-----------------------------------*/
.b-cta--medical {
  background: url(./img/bg-medical-cta-pc.webp) no-repeat center/cover;
}
@media screen and (max-width: 767px) {
  .b-cta--medical {
    background-image: url(./img/bg-medical-cta-sp.webp);
    background-position: center;
  }
}

@media screen and (max-width: 767px) {
  .b-cta--medical .b-cta__text {
    line-height: 1.5333333333;
  }
}

/*----------------------------------
  ボタン下の一文（マーカー付き）
-----------------------------------*/
.b-cta__note {
  margin: calc(40 * var(--u)) 0 0;
  font-size: calc(24 * var(--u));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .b-cta__note {
    margin-top: 24px;
    font-size: 16px;
    text-align: left;
  }
}

.b-cta__note-marker {
  background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0, #c2e2f8), color-stop(0, transparent));
  background: linear-gradient(transparent calc(100% - calc(2 * var(--u)) + 0.026em - calc(8 * var(--u))), #c2e2f8 0 calc(100% - calc(2 * var(--u)) + 0.026em), transparent 0);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
@media screen and (max-width: 767px) {
  .b-cta__note-marker {
    background: linear-gradient(transparent calc(100% - 2px + 0.026em - 6px), #c2e2f8 0 calc(100% - 2px + 0.026em), transparent 0);
  }
}
/* 医療系ｃｓｓここまで */
