@charset "UTF-8";
/* scss/foundation/_reset.scss */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  line-height: 1;
  font-family: sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 管理バーがある時だけ少し下げる */
body.admin-bar .header {
  top: 32px;
}

@media (max-width: 782px) {
  body.admin-bar .header {
    top: 46px;
  }
}
/* メイン側はヘッダー分の余白を確保（margin の相殺回避のため padding 推奨） */
ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

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

/* ---common--- */
html {
  font-size: 2.6666666667vw;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1;
}

/* ログイン中だけヘッダーを 32px 下げる */
.admin-bar .header {
  top: 32px;
}

.is-scroll {
  overflow: hidden;
}

.content__wrap {
  max-width: 750px;
  width: 100%;
  margin: auto;
}

.font__en {
  font-family: "EB Garamond", sans-serif;
}

.color-org {
  color: #f84004;
}

.u-textBold {
  font-weight: bold;
}

.u-font9 {
  font-size: 0.9rem !important;
}

.u-font10 {
  font-size: 1rem !important;
}

.u-font11 {
  font-size: 1.1rem !important;
}

.u-font12 {
  font-size: 1.2rem !important;
}

.u-font24 {
  font-size: 2.4rem !important;
}

.u-font09 {
  font-size: 0.9em;
}

@media (min-width: 751px) {
  .u-font9 {
    font-size: 18px !important;
  }
  .u-font10 {
    font-size: 20px !important;
  }
  .u-font11 {
    font-size: 22px !important;
  }
  .u-font12 {
    font-size: 24px !important;
  }
  .u-font24 {
    font-size: 48px !important;
  }
  .u-font09 {
    font-size: 0.9em;
  }
}
/* --- header --- */
header {
  max-width: 750px;
  width: 100%;
  max-height: 120px;
  height: 6rem;
  background-color: #fff;
  position: fixed;
  z-index: 1000;
}

.header__inner {
  width: 100%;
  max-height: 120px;
  height: 6rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.headerLogo__wrap {
  max-width: 325px;
  width: 16.25rem;
  position: absolute;
  left: 0;
}

.header__logo {
  width: 100%;
}

.header_nav {
  max-width: 750px;
  width: 100%;
  height: 100vh;
  overflow: auto;
  padding-bottom: 6rem;
  position: fixed;
  top: 6rem;
  left: 0;
  z-index: 990;
  background-color: #6e8cbe;
  transform: translateX(100vw);
  transition: all 0.3s linear;
}

.header_nav.is-active {
  transform: translateX(0);
  position: absolute;
}

.headerNav_list {
  width: 100%;
  padding: 5.24rem 5rem 0;
}

.headerNav_item {
  width: 100%;
}

.headerNav_link {
  display: block;
  padding-bottom: 2.725rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.4rem;
  color: #fff;
}

.headerNav_icon {
  max-width: 81px;
  width: 4rem;
  max-height: 70px;
  height: auto;
  position: absolute;
  right: 20px;
}

.headerNav_icon img {
  width: 100%;
  height: 100%;
}

@media (min-width: 751px) {
  header {
    width: 750px;
    height: 120px;
  }
  .header__inner {
    height: 120px;
  }
  .headerLogo__wrap {
    width: 325px;
  }
  .header_nav {
    padding-bottom: 120px;
    position: fixed;
    top: 120px;
    left: 0;
    z-index: 990;
  }
  .headerNav_list {
    width: 100%;
    padding: 104.8px 100px 0;
  }
  .headerNav_link {
    padding-bottom: 54.5px;
    font-size: 48px;
  }
  .headerNav_icon {
    width: 81px;
    height: auto;
    position: absolute;
    right: 20px;
  }
  .headerNav_icon img {
    width: 100%;
    height: 100%;
  }
}
/* 離脱防止ポップアップ */
.banner-exit-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}

.banner-exit-popup {
  position: relative;
  width: 100%;
  max-width: 480px;
}

.popup-banner {
  display: block;
  margin: 0 auto;
  width: 70%;
  height: auto;
}

/* 下部テキストの閉じる */
.banner-close-text {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /* bottom: calc(12px + env(safe-area-inset-bottom, 0)); iOSの下部バー回避 */
  padding: 15px;
  /* タップ領域を確保 */
  background: transparent;
  color: #fff;
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 400;
  font-style: normal;
  border: none;
  font-size: clamp(12px, 1.2rem, 15px);
  text-decoration: none;
  line-height: 1;
  cursor: pointer;
  z-index: 1;
  /* ポップアップより前面に */
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

@media (min-width: 751px) {
  .banner-close-text {
    font-size: 15px;
  }
}
/* もし下の背景が明るくて見えづらいなら影を足す */
.banner-close-text {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

.c-compare {
  margin: 0 1rem 0;
}

.c-compare__table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

/* 列幅（合計100%になるように） */
.c-compare__col--row {
  width: 19%;
}

/* =========================
  Benefits table（医療おすすめ）
========================= */
.c-compare--benefits {
  margin: 1.5rem 1rem 2rem;
  /* デュアル列強調（列全体） */
  /* デュアルの見出しを“タブっぽく飛び出し” */
  /* タブが浮いた分、下の境界線が気になる場合の保険 */
}
.c-compare--benefits .c-compare__table {
  background-color: #e8e8e8;
}
.c-compare--benefits .c-compare__col--row {
  width: 18.5%;
}
.c-compare--benefits .c-compare__col--dual {
  width: 21.4%;
}
.c-compare--benefits .c-compare__col--office,
.c-compare--benefits .c-compare__col--home,
.c-compare--benefits .c-compare__col--self {
  width: 20%;
}
.c-compare--benefits .c-compare__head th,
.c-compare--benefits .c-compare__body th,
.c-compare--benefits .c-compare__body td {
  border: 1px solid #fff;
  padding: 0.2rem;
  text-align: center;
  vertical-align: middle;
}
.c-compare--benefits .c-compare__blank {
  border: none !important;
}
.c-compare--benefits .c-compare__headRow .c-compare__group {
  padding: 0.2rem 0.2rem 0.4rem;
}
.c-compare--benefits .c-compare__group {
  background: #97a4ba;
  color: #fff;
  font-weight: 700;
  font-size: 1.2rem;
  padding: 0.6rem 0.2rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.c-compare--benefits .c-compare__group--self {
  background: #e8e8e8;
  color: #222222;
  font-size: 0.8rem;
  font-weight: 500;
}
.c-compare--benefits .c-compare__colhead {
  background: #6e8cbe;
  color: #fff;
  font-weight: 500;
  line-height: 1.2;
  font-size: 0.9rem;
}
.c-compare--benefits .c-compare__rowhead {
  background: #8ea1bf;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
}
.c-compare--benefits .c-compare__cell {
  font-size: 2.2rem;
}
.c-compare--benefits .is-dual {
  background: #f0d1d4;
  padding-bottom: 0.4rem !important;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: bold;
  color: #d98286;
  font-size: 2.75rem;
  position: relative;
  box-shadow: 3px 4px 7px rgba(89, 87, 87, 0.25);
}
.c-compare--benefits .u-font11 {
  letter-spacing: -0.1em;
  padding: 0.6rem 0.35rem 0.4rem 0 !important;
}
.c-compare--benefits .c-compare__table .c-compare__head tr .c-compare__colhead--dual {
  background: #d98a8f;
  position: relative;
  padding: 0.8rem 0.2rem 0 !important;
  transform: translateY(-5px);
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
  border: none;
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
  border-top: 1px solid #fff;
  box-shadow: 3px 0 7px rgba(89, 87, 87, 0.25);
  z-index: 2;
}
.c-compare--benefits .c-compare__colhead--dual::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 0.5rem;
  background: #d98a8f;
  z-index: -1;
}
.c-compare--benefits .c-compare__table .c-compare__body tr:first-child .is-dual {
  border-top: none;
}

@media (min-width: 751px) {
  .c-compare--benefits {
    margin: 30px 20px 40px;
    /* デュアル列強調（列全体） */
    /* デュアルの見出しを“タブっぽく飛び出し” */
    /* タブが浮いた分、下の境界線が気になる場合の保険 */
  }
  .c-compare--benefits .c-compare__head th,
  .c-compare--benefits .c-compare__body th,
  .c-compare--benefits .c-compare__body td {
    padding: 4px;
  }
  .c-compare--benefits .c-compare__headRow .c-compare__group {
    padding: 4px 4px 8px;
  }
  .c-compare--benefits .c-compare__group {
    font-size: 24px;
    padding: 12px 4px;
  }
  .c-compare--benefits .c-compare__group--self {
    font-size: 16px;
  }
  .c-compare--benefits .c-compare__colhead {
    font-size: 18px;
  }
  .c-compare--benefits .c-compare__rowhead {
    font-size: 28px;
  }
  .c-compare--benefits .c-compare__cell {
    font-size: 44px;
  }
  .c-compare--benefits .is-dual {
    font-size: 55px;
    padding-bottom: 8px !important;
  }
  .c-compare--benefits .u-font11 {
    padding: 12px 7px 8px 0 !important;
  }
  .c-compare--benefits .c-compare__table .c-compare__head tr .c-compare__colhead--dual {
    padding: 16px 4px 0 !important;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
  }
  .c-compare--benefits .c-compare__colhead--dual::after {
    height: 8px;
  }
}
/* =========================
  Reason table（選ばれる理由）
========================= */
.c-compare--reason {
  margin: 0 1rem 2rem;
}
.c-compare--reason .c-compare__col--our {
  width: 21%;
}
.c-compare--reason .c-compare__col--a,
.c-compare--reason .c-compare__col--b,
.c-compare--reason .c-compare__col--c,
.c-compare--reason .c-compare__col--d {
  width: 14.2%;
}
.c-compare--reason .c-compare__head th,
.c-compare--reason .c-compare__body th,
.c-compare--reason .c-compare__body td {
  padding: 0.8rem 0.2rem;
  text-align: center;
  vertical-align: middle;
  border: 1px solid #fff;
}
.c-compare--reason .c-compare__blank {
  border: none;
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
}
.c-compare--reason .c-compare__body th {
  background: #97a4ba;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 400;
}
.c-compare--reason .c-compare__head th {
  background: #6e8cbe;
  color: #fff;
  font-weight: 400;
  font-size: 1.6rem;
}
.c-compare--reason .c-compare__head .is-our {
  position: relative;
  transform: translateY(-6px);
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
  border: none;
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  background: #d98a8f;
  box-shadow: 3px 4px 7px rgba(89, 87, 87, 0.25);
  z-index: 2;
  font-size: 2.4rem;
  padding-top: 0.4em;
  padding-bottom: 0.1em;
}
.c-compare--reason .c-compare__sub {
  display: block;
  font-size: 0.5rem;
  line-height: 1.2;
  margin-top: 0.2rem;
}
.c-compare--reason .c-compare__body th.u-font11 {
  letter-spacing: -0.05em;
}
.c-compare--reason .c-compare__body td {
  background-color: #e8e8e8;
  color: #363427;
}
.c-compare--reason .c-compare__body tr .is-our {
  background: #ead0d3;
  color: #d98286;
  box-shadow: 3px 4px 7px rgba(89, 87, 87, 0.25);
}
.c-compare--reason .c-compare__body tr .is-our .c-compare__mark {
  font-weight: 700;
  letter-spacing: -0.03em;
}
.c-compare--reason .c-compare__body tr .is-our .mark--double {
  font-size: 2.75rem;
}
.c-compare--reason .c-compare__body:last-child tr th,
.c-compare--reason .c-compare__body:last-child tr td {
  border-bottom: none;
}
.c-compare--reason .c-compare__head .is-our::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 6px;
  background: #d98a8f;
}
.c-compare--reason .c-compare__mark {
  font-size: 2.2rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.c-compare--reason .c-compare__table .c-compare__body tr:first-child th {
  border: none;
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
}
.c-compare--reason .c-compare__table .c-compare__body tr .text-strt {
  text-align: start;
}

@media (min-width: 751px) {
  .c-compare--reason {
    margin: 0 20px 40px;
  }
  .c-compare--reason .c-compare__head th,
  .c-compare--reason .c-compare__body th,
  .c-compare--reason .c-compare__body td {
    padding: 16px 4px;
  }
  .c-compare--reason .c-compare__body th {
    font-size: 28px;
  }
  .c-compare--reason .c-compare__head th {
    font-size: 32px;
  }
  .c-compare--reason .c-compare__head .is-our {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    font-size: 48px;
  }
  .c-compare--reason .c-compare__sub {
    font-size: 10px;
    margin-top: 4px;
  }
  .c-compare--reason .c-compare__body tr .is-our {
    background: #ead0d3;
    color: #d98286;
    box-shadow: 3px 4px 7px rgba(89, 87, 87, 0.25);
  }
  .c-compare--reason .c-compare__body tr .is-our .mark--double {
    font-size: 55px;
  }
  .c-compare--reason .c-compare__mark {
    font-size: 44px;
  }
}
/* --- main --- */
main {
  scroll-margin-top: 6rem;
  /* ヘッダーの高さに合わせる */
  padding-top: 6rem;
  overflow: hidden;
}

@media (min-width: 751px) {
  main {
    scroll-margin-top: 120px;
    padding-top: 120px;
  }
}
.cta {
  background-image: url(../images/bg__cta--bonus.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
}

.cta__eyebrow {
  background: linear-gradient(90deg, #5f7cab, #b4c9ec, #5f7cab);
  color: #fff;
  text-shadow: 0 0 130px rgb(110, 140, 190), 0 0 130px rgb(110, 140, 190), 0 0 70px rgb(110, 140, 190), 0 0 70px rgb(110, 140, 190), 0 0 40px rgba(110, 140, 190, 0.6), 0 0 10px rgba(110, 140, 190, 0.4);
  text-align: center;
  font-size: 3rem;
  line-height: 1;
  font-family: "EB Garamond", sans-serif;
  padding: 1.5rem 0 3rem;
}

.cta__bage {
  position: absolute;
  z-index: 999;
  width: 10.65rem;
  top: 16%;
  right: 4%;
}

.cta__inner {
  position: relative;
  z-index: 90;
  height: auto;
  margin: -2rem 1.3rem 0;
  padding: 0.2rem 1.75rem 1rem;
  background-color: #fff;
  border: 0.1rem solid #6e8cbe;
}

.cta__price {
  display: grid;
  color: #6e8cbe;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}
.cta__price .cta__price--usually {
  display: flex;
  width: 100%;
  margin: 0 auto;
  align-items: center;
  color: #363427;
  gap: 0.5rem;
}
.cta__price .cta__price--usually dt {
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  border: 0.05rem solid #363427;
  padding: 0.55rem 0.8rem;
}
.cta__price .cta__price--usually .cta__usually--price {
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
  flex-wrap: nowrap;
  margin: 0;
}
.cta__price .cta__price--usually .cta__usually--price .price-old {
  position: relative;
}
.cta__price .cta__price--usually .cta__usually--price .price-old::after {
  content: "";
  position: absolute;
  left: -0.3rem;
  right: -0.3rem;
  top: 50%;
  width: 90%;
  height: 0.12rem;
  background: #d02121;
  transform: rotate(-15deg);
}
.cta__price .cta__price--usually .cta__usually--price .num {
  font-family: "EB Garamond", sans-serif;
  font-size: 3.7rem;
  line-height: 1;
  font-weight: 400;
}
.cta__price .cta__price--usually .cta__usually--price .yen {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 2.1rem;
  margin-left: 0.2rem;
}
.cta__price .cta__price--usually .cta__usually--price .tax {
  position: absolute;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 0.7rem;
  top: 20%;
  right: 2%;
}
.cta__price .cta__price--onece {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.35rem;
}
.cta__price .cta__price--onece dt {
  display: inline-block;
  background: #6e8cbe;
  color: #fff;
  padding: 0.9rem 0 0.9rem 1.05rem;
  position: relative;
  font-size: 1.5rem;
  line-height: 1.2em;
}
.cta__price .cta__price--onece dt::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1.75rem;
  /* 矢印の横幅 */
  width: 0;
  height: 0;
  border-top: 2.7rem solid transparent;
  border-bottom: 2.7rem solid transparent;
  border-left: 1.8rem solid #6e8cbe;
}
.cta__price .cta__price--onece .cta__price-per {
  font-size: 7.5rem;
  color: #6e8cbe;
  font-family: "EB Garamond", sans-serif;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.01em;
  position: relative;
}
.cta__price .cta__price--onece .cta__price-per .font__small {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 3.4rem;
}
.cta__price .cta__price--onece .cta__price-per .tax {
  position: absolute;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 0.9rem;
  top: 34%;
  right: 3%;
}

/* CTAボタン */
.cta__btn {
  display: block;
  margin: 1.3rem auto 0;
  width: 94%;
  text-align: center;
  text-decoration: none;
  color: #fff;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 2.3rem;
  letter-spacing: -0.07em;
  text-shadow: 0px 0px 4px rgb(196, 163, 80), 0px 0px 5px rgb(196, 163, 80), 0px 0px 6px rgb(196, 163, 80), 0px 0px 6px rgb(196, 163, 80), 0px 0px 6px rgb(196, 163, 80), 0px 0px 6px rgb(196, 163, 80), 0px 0px 8px rgb(196, 163, 80), 0px 0px 8px rgb(196, 163, 80), 0px 0px 8px rgb(196, 163, 80), 0px 0px 10px rgb(196, 163, 80), 0px 0px 10px rgb(196, 163, 80), 0px 0px 10px rgb(196, 163, 80), 0px 0px 10px rgb(196, 163, 80);
  /* 背景画像（SP全幅前提） */
  background: url(../images/bg__button--shadow.png);
  background-repeat: no-repeat;
  background-size: contain;
  padding: 1.8rem 0 4rem;
  /* テキストの上下余白 */
  /* 押下/フォーカス */
}
.cta__btn:active {
  transform: translateY(1px);
}

@media (min-width: 751px) {
  .cta__eyebrow {
    font-size: 60px;
    padding: 30px 0 60px;
  }
  .cta__bage {
    width: 213px;
  }
  .cta__inner {
    position: relative;
    z-index: 90;
    height: auto;
    margin: -40px 26px 0;
    padding: 4px 35px 20px;
    border: 2px solid #6e8cbe;
  }
  .cta__price {
    display: grid;
  }
  .cta__price .cta__price--usually {
    gap: 10px;
  }
  .cta__price .cta__price--usually dt {
    font-size: 30px;
    border: 1px solid #363427;
    padding: 11px 16px;
  }
  .cta__price .cta__price--usually .cta__usually--price {
    gap: 4px;
  }
  .cta__price .cta__price--usually .cta__usually--price .price-old {
    position: relative;
  }
  .cta__price .cta__price--usually .cta__usually--price .price-old::after {
    content: "";
    position: absolute;
    left: -6px;
    right: -6px;
    top: 50%;
    width: 90%;
    height: 2.4px;
  }
  .cta__price .cta__price--usually .cta__usually--price .num {
    font-size: 74px;
  }
  .cta__price .cta__price--usually .cta__usually--price .yen {
    font-size: 42px;
    margin-left: 4px;
  }
  .cta__price .cta__price--usually .cta__usually--price .tax {
    font-size: 14px;
    top: 20%;
    right: 2%;
  }
  .cta__price .cta__price--onece {
    gap: 7px;
  }
  .cta__price .cta__price--onece dt {
    padding: 18px 0 18px 21px;
    font-size: 30px;
    line-height: 1.2em;
  }
  .cta__price .cta__price--onece dt::after {
    content: "";
    position: absolute;
    top: 0;
    right: -35px;
    width: 0;
    height: 0;
    border-top: 54px solid transparent;
    border-bottom: 54px solid transparent;
    border-left: 36px solid #6e8cbe;
  }
  .cta__price .cta__price--onece .cta__price-per {
    font-size: 150px;
  }
  .cta__price .cta__price--onece .cta__price-per .font__small {
    font-size: 68px;
  }
  .cta__price .cta__price--onece .cta__price-per .tax {
    font-size: 18px;
    top: 34%;
    right: 3%;
  }
  /* CTAボタン */
  .cta__btn {
    margin: 26px auto 0;
    font-size: 46px;
    padding: 36px 0 80px;
  }
  .cta__btn:active {
    transform: translateY(1px);
  }
}
.features {
  background-image: url(../images/bg__features.png);
  background-repeat: no-repeat;
  background-size: contain;
  padding: 4.4rem 0 4.7rem;
  position: relative;
}

.features__title {
  position: relative;
  z-index: 2;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 3rem;
  line-height: 1.4;
  color: #fff;
  text-align: start;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
.features__title .features__em {
  color: #363427;
  font-size: 4.6rem;
  line-height: 1.2;
  margin-left: -8px;
}

.features__bg--cloud {
  content: "";
  position: absolute;
  z-index: 1;
  top: 9.5%;
  right: 16.9%;
  width: 16.25rem;
  height: 7.8rem;
  background-image: url(../images/bg__features--cloud.png);
  background-size: contain;
}

/* ====== 悩みリスト ====== */
.features__item {
  position: relative;
  margin: 2.4rem auto 3.4rem;
  width: 63%;
}
.features__item li {
  position: relative;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.2rem;
  color: #fff;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.7rem 0 0.7rem 2rem;
  background-image: repeating-linear-gradient(90deg, #ffffff, #ffffff 4px, transparent 4px, transparent 6px);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 100% 1px;
}
.features__item li::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 16%;
  width: 2.1rem;
  height: 1.65rem;
  background-image: url(../images/features__check.png);
  background-size: contain;
  vertical-align: middle;
}
.features__item li + li {
  margin-top: 0.6rem;
}

@media (min-width: 751px) {
  .features {
    padding: 88px 0 94px;
  }
  .features__title {
    font-size: 60px;
  }
  .features__title .features__em {
    font-size: 92px;
    margin-left: -8px;
  }
  .features__bg--cloud {
    width: 325px;
    height: 156px;
  }
  /* ====== 悩みリスト ====== */
  .features__item {
    margin: 48px auto 68px;
  }
  .features__item li {
    font-size: 24px;
    padding: 14px 0 14px 40px;
  }
  .features__item li::before {
    width: 42px;
    height: 33px;
  }
  .features__item li + li {
    margin-top: 12px;
  }
}
.voice {
  position: relative;
  background-image: url(../images/bg__voice.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom;
  overflow: hidden;
  padding-bottom: 4.1rem;
}
.voice__title {
  background-image: url(../images/bg__voice--title.png);
  background-repeat: no-repeat;
  background-size: cover;
  margin-bottom: 1.5rem;
  padding: 1.2rem 0 4rem;
  position: relative;
  z-index: 1;
  text-align: center;
  color: #fff;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.6rem;
}
.voice__title .voice__subtitle {
  display: block;
  font-family: "EB Garamond", sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.14em;
  color: #fff;
}
.voice__title .font-small {
  font-size: 2.4rem;
}
.voice__list {
  padding: 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 3.6rem;
}
.voice__body {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1.6rem;
}
.voice__photo {
  width: 18.6rem;
  height: auto;
}
.voice__photo img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 0 3px 10px rgba(153, 151, 151, 0.41);
}
.voice__label {
  position: absolute;
  left: 0;
  top: 4%;
  font-family: "EB Garamond", sans-serif;
  color: #6e8cbe;
  font-size: 2.95rem;
}
.voice__number {
  font-size: 3.7rem;
}
.voice__catch {
  display: inline-flex;
  flex-direction: column;
  align-items: start;
  gap: 0.4rem;
  /* 行間の隙間 */
  position: absolute;
  left: -4%;
  top: 19%;
}
.voice__catch span {
  padding: 0.8rem 0.65rem;
  background: #fff;
  color: #6e8cbe;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.6rem;
  font-weight: 500;
  border: 0.05rem solid #6e8cbe;
}
.voice__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #363427;
  font-size: 1.2rem;
  letter-spacing: -0.03em;
  line-height: 2;
}
.voice__text span {
  letter-spacing: -0.036em;
}
.voice__note {
  margin: 2.4rem 0 3rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  text-align: right;
  font-size: 0.7rem;
}
.voice__item--reverse .voice__body {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.6rem;
}
.voice__item--reverse .voice__body .voice__label {
  position: absolute;
  right: 0;
  left: auto;
  top: 2%;
  font-family: "EB Garamond", sans-serif;
  color: #6e8cbe;
  font-size: 2.95rem;
}
.voice__item--reverse .voice__body .voice__catch {
  display: inline-flex;
  flex-direction: column;
  align-items: start;
  gap: 0.4rem;
  /* 行間の隙間 */
  position: absolute;
  right: -4%;
  left: auto;
  top: 21%;
}

@media (min-width: 751px) {
  .voice {
    padding-bottom: 82px;
  }
  .voice__title {
    margin-bottom: 30px;
    padding: 24px 0 80px;
    font-size: 52px;
  }
  .voice__title .voice__subtitle {
    font-size: 24px;
  }
  .voice__title .font-small {
    font-size: 48px;
  }
  .voice__list {
    padding: 0 20px;
    gap: 72px;
  }
  .voice__body {
    gap: 32px;
  }
  .voice__photo {
    width: 372px;
    height: auto;
  }
  .voice__label {
    font-size: 59px;
  }
  .voice__number {
    font-size: 74px;
  }
  .voice__catch {
    gap: 8px;
  }
  .voice__catch span {
    padding: 16px 13px;
    font-size: 32px;
    border: 1px solid #6e8cbe;
  }
  .voice__text {
    font-size: 24px;
  }
  .voice__note {
    margin: 48px 0 60px;
    font-size: 14px;
  }
  .voice__item--reverse .voice__body {
    gap: 32px;
  }
  .voice__item--reverse .voice__body .voice__label {
    font-size: 59px;
  }
  .voice__item--reverse .voice__body .voice__catch {
    gap: 8px;
  }
}
/* --- faq --- */
.faq {
  background-image: url(../images/bg__faq.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  padding: 2.4rem 0 2.5rem;
}

.faq__title {
  text-align: center;
  color: #363427;
  margin: 0 0 3.3rem;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.65rem;
  font-weight: 500;
}
.faq__title .faq__eyebrow {
  display: block;
  font-size: 1.2rem;
  color: #363427;
  font-weight: 400;
  font-family: "EB Garamond", sans-serif;
}

.qa__item {
  max-width: 707px;
  width: 94.26%;
  margin: 0 auto;
  border: 1px solid #6e8cbe;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 600;
  font-style: normal;
}

.qa__item + .qa__item {
  margin-top: 1.3rem;
}

.qa__row {
  display: flex;
  align-items: flex-start;
  padding: 1.05rem 1.25rem;
}
.qa__row--q {
  background-color: #6e8cbe;
  color: #fff;
}
.qa__row--q .qa__text {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.4rem;
  line-height: 1.8;
}
.qa__row--a {
  background: #f6f9ff;
  color: #6e8cbe;
}
.qa__row--a .qa__text {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.2rem;
  line-height: 1.8;
}
.qa__row--a .qa__text span {
  letter-spacing: -0.03em;
}

.qa__label {
  flex-shrink: 0;
  font-family: "EB Garamond", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  margin-top: 0.2rem;
  margin-right: 1.1rem;
  line-height: 1;
}
.qa__label--q {
  color: #fff;
}
.qa__label--a {
  color: #6e8cbe;
}

@media (min-width: 751px) {
  .faq {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-color: #f1eceb;
    padding: 48px 0 50px;
  }
  .faq__title {
    margin: 0 auto 66px;
    font-size: 53px;
  }
  .faq__title .faq__eyebrow {
    font-size: 24px;
  }
  .qa__item {
    width: 707px;
    margin: 0 auto;
    margin-bottom: 44px;
  }
  .qa__item + .qa__item {
    margin-top: 26px;
  }
  .qa__row {
    padding: 21px 25px;
  }
  .qa__row--q {
    background-color: #6e8cbe;
    color: #fff;
  }
  .qa__row--q .qa__text {
    font-size: 28px;
  }
  .qa__row--a {
    background: #f6f9ff;
    color: #6e8cbe;
  }
  .qa__row--a .qa__text {
    font-size: 24px;
  }
  .qa__label {
    font-size: 36px;
    margin-top: 4px;
    margin-right: 22px;
  }
}
/* ===== セクション（斜め背景＋見出し） ===== */
.solutions {
  margin-top: -4.5rem;
  position: relative;
  z-index: -1;
  padding: 9rem 0 0;
  background-image: url(../images/bg__solution.png);
  background-repeat: no-repeat;
  background-size: cover;
  /* ===== バッジ画像 ===== */
  /* ===== 画像 ===== */
  /* 画像上の青リボン */
  /* ===== 本文カード ===== */
}
.solutions__title {
  margin: 0 auto 2rem;
  width: 35.15rem;
  height: auto;
}
.solutions__title img {
  display: block;
  margin: 0 auto;
}
.solutions__list {
  list-style: none;
  margin: 0;
  padding-top: 0.6rem;
}
.solutions__item {
  counter-increment: sol;
  position: relative;
}
.solutions__bage {
  position: absolute;
  z-index: 5;
  right: 9%;
  top: 9%;
  width: 4.7rem;
}
.solutions__media {
  position: relative;
  margin: 0;
  width: 100%;
}
.solutions__media img {
  display: block;
  width: 76%;
  height: auto;
  box-shadow: 0 25px 24px rgba(0, 0, 0, 0.1);
}
.solutions__ribbon {
  display: inline-flex;
  flex-direction: column;
  align-items: end;
  gap: 6px;
  /* 行間の隙間 */
  position: absolute;
  right: 2.7%;
  bottom: 8%;
}
.solutions__ribbon span {
  display: inline-block;
  background: #6e8cbe;
  color: #f1eceb;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1;
  padding: 0.3rem 0.95rem;
  box-shadow: 0 4px 13px rgba(89, 87, 87, 0.25);
  width: -moz-fit-content;
  width: fit-content;
}
.solutions__body {
  padding: 1.8rem 1rem 4.65rem;
  color: #363427;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.4rem;
  line-height: 1.9;
}
.solutions__body p {
  margin: 0 0 10px;
}
.solutions__body p:last-child {
  margin-bottom: 0;
}

.solutions__item:nth-child(even) {
  margin: 0;
  /* ===== バッジ画像 ===== */
}
.solutions__item:nth-child(even) .solutions__bage {
  position: absolute;
  left: 8%;
  top: 7%;
}
.solutions__item:nth-child(even) .solutions__media {
  position: relative;
  margin: 0;
}
.solutions__item:nth-child(even) .solutions__media img {
  display: block;
  margin-left: auto;
  width: 76%;
  height: auto;
  box-shadow: 5px 13px 18px 0px rgba(0, 0, 0, 0.16);
}
.solutions__item:nth-child(even) .solutions__ribbon {
  left: 2.7%;
  bottom: 13%;
  align-items: start;
}

@media (min-width: 751px) {
  .solutions {
    margin-top: -90px;
    padding: 180px 0 0;
  }
  .solutions__title {
    margin: 0 0 40px;
    width: 703px;
    height: auto;
  }
  .solutions__list {
    padding-top: 20px;
  }
  /* ===== バッジ画像 ===== */
  .solutions__bage {
    position: absolute;
    right: 72px;
    top: 50px;
    width: 94px;
  }
  /* 画像上の緑リボン */
  .solutions__ribbon {
    gap: 6px;
  }
  .solutions__ribbon span {
    font-size: 30px;
    padding: 6px 10px;
  }
  /* ===== 本文カード ===== */
  .solutions__body {
    padding: 36px 20px 93px;
    font-size: 28px;
  }
  .solutions__item:nth-child(even) {
    margin: 0;
    /* ===== バッジ画像 ===== */
  }
  .solutions__item:nth-child(even) .solution__bage {
    position: absolute;
    left: 72px;
    top: 90px;
  }
}
/* --- concept ---  */
.concept {
  width: 100%;
  background-color: #6e8cbe;
  padding: 1.5rem 1rem 3.5rem;
}

.profile__card {
  background-color: #f1eceb;
  border-radius: 2.5rem;
  padding: 1.9rem 1.5rem 3rem;
}

.profile__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}

.profile__avatar {
  width: 12rem;
  height: auto;
}

.profile__namewrap {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.2;
}

.profile__en {
  font-size: 2.4rem;
  color: rgba(110, 140, 190, 0.4);
  font-family: "EB Garamond", sans-serif;
}

.profile__jp {
  font-size: 3.4rem;
  color: #6e8cbe;
  font-weight: 600;
}

.profile__role {
  font-size: 1.8rem;
  color: #6e8cbe;
}

.profile__body {
  margin-top: 2.6rem;
}

.profile__block-title {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.profile__timeline {
  margin: 0 0 2em;
}

.profile__row {
  display: grid;
  grid-template-columns: 2.8rem 1fr;
  /* 年の幅 */
  gap: 0.5rem;
  padding: 0.3rem 0;
  font-size: 0.95rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
}

.profile__row dt {
  font-weight: 400;
}

.profile__row dd {
  margin: 0;
  color: #363427;
  line-height: 1.2;
}

.profile__block {
  margin-bottom: 2em;
  padding-left: 1.1em;
  color: #363427;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
}
.profile__block li + li {
  margin-top: 2px;
}
.profile__block:last-child {
  margin-bottom: 0;
}

.profile__paper-title {
  font-size: 0.95rem;
  letter-spacing: -0.04em;
  line-height: 1.5;
}

.concept__title {
  padding: 3.4rem 0 0;
  text-align: center;
  color: #fff;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.6rem;
  font-weight: 600;
}
.concept__title .concept__subtitle {
  display: block;
  font-family: "EB Garamond", sans-serif;
  font-size: 1.5rem;
  color: #fff;
  font-weight: 400;
}

/* --- レスポンシブ ---  */
@media (min-width: 751px) {
  .concept {
    width: 100%;
    padding: 30px 20px 70px;
  }
  .profile__card {
    border-radius: 50px;
    padding: 38px 30px 60px;
  }
  .profile__head {
    gap: 40px;
  }
  .profile__avatar {
    width: 240px;
    height: auto;
  }
  .profile__en {
    font-size: 48px;
  }
  .profile__jp {
    font-size: 68px;
  }
  .profile__role {
    font-size: 36px;
  }
  .profile__body {
    margin-top: 52px;
  }
  .profile__block-title {
    font-size: 22px;
    margin-bottom: 10px;
  }
  .profile__timeline {
    margin: 0 0 40px;
  }
  .profile__row {
    display: grid;
    grid-template-columns: 56px 1fr;
    /* 年の幅 */
    gap: 10px;
    padding: 6px 0;
    font-size: 19px;
  }
  .profile__block {
    margin-bottom: 40px;
    padding-left: 22px;
  }
  .profile__paper-title {
    font-size: 19px;
    letter-spacing: -0.04em;
    line-height: 1.5;
  }
  .concept__title {
    padding: 68px 0 0;
    font-size: 52px;
    font-weight: 600;
  }
  .concept__title .concept__subtitle {
    font-size: 30px;
  }
  .more__item {
    margin: 67px auto 0;
  }
  .more__item summary {
    padding: 26px 66px 25px 209px;
    font-size: 29px;
  }
  .more__item summary::after {
    width: 15px;
    height: 15px;
    margin-left: 14px;
    border-bottom: 4px solid #363427;
    border-right: 4px solid #363427;
  }
  .more__item div {
    margin-top: 44px;
    margin-left: 20px;
    gap: 70px;
  }
  .more__item p {
    font-size: 28px;
  }
  .more__item span {
    font-size: 36px;
  }
}
.plan {
  padding: 2.5rem 0;
  background-image: url(../images/bg__plan.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center;
}

/* タイトル */
.plans__title {
  text-align: center;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 2.6rem;
  margin: 0 0 0.8rem;
  line-height: 1.5;
}
.plans__title span {
  display: block;
  font-size: 1.2rem;
  letter-spacing: 0.15em;
  color: #363427;
  line-height: 1;
}

/* --- プラン一覧 --- */
.plans__list {
  list-style: none;
  margin: 3.75rem 1.2rem 0;
  padding: 0;
  display: grid;
  gap: 3.35rem;
}
.plans__list .plan {
  background: #fff;
  border: 0.1rem solid #9f8a6c;
  padding: 1rem 0.8rem 1.8rem;
  text-align: left;
  position: relative;
}
.plans__list .plan .plan__tag {
  background: #6e8cbe;
  color: #f1eceb;
  display: block;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.35rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 600;
  margin: -2.5rem auto 1.1rem;
  padding: 0.65rem 3.85rem 0.65rem 4rem;
}
.plans__list .plan .plan__bage {
  position: absolute;
  top: 4.7%;
  right: 5.2%;
  width: 5.3rem;
  height: auto;
}
.plans__list .plan .plan__inner {
  height: auto;
  margin: 0 auto;
}
.plans__list .plan .plan__price {
  margin: 0 0 1rem;
  display: grid;
  color: #6e8cbe;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}
.plans__list .plan .plan__price .plan__price--usually {
  display: flex;
  width: 87.1%;
  margin: 0 auto;
  align-items: center;
  color: #363427;
  gap: 0.5rem;
}
.plans__list .plan .plan__price .plan__price--usually dt {
  font-size: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  border: 0.05rem solid #363427;
  padding: 0.9rem 1.3rem;
}
.plans__list .plan .plan__price .plan__price--usually .plan__usually--price {
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
  flex-wrap: nowrap;
  margin: 0;
}
.plans__list .plan .plan__price .plan__price--usually .plan__usually--price .price-old {
  position: relative;
}
.plans__list .plan .plan__price .plan__price--usually .plan__usually--price .num {
  font-family: "EB Garamond", sans-serif;
  font-size: 5.45rem;
  letter-spacing: -0.02em;
  line-height: 1;
  font-weight: 400;
}
.plans__list .plan .plan__price .plan__price--usually .plan__usually--price .yen {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 3.1rem;
  margin-left: 0.2rem;
}
.plans__list .plan .plan__price .plan__price--usually .plan__usually--price .tax {
  position: absolute;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1rem;
  top: 20%;
  right: 2%;
}
.plans__list .plan .plan__features {
  width: 87.1%;
  margin: auto;
  padding: 0.8rem 0.8rem 1.1rem 0.8rem;
  background: #6e8cbe;
  color: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.7;
}
.plans__list .plan .plan__features .font__small {
  font-size: 0.8rem;
}
.plans__list .plan:first-child {
  position: relative;
}
.plans__list .plan:first-child .plan__bage {
  position: absolute;
  top: 4.7%;
  right: 5.2%;
  width: 5.3rem;
  height: auto;
}
.plans__list .plan:first-child .plan__inner {
  height: auto;
  margin: 0 auto;
}
.plans__list .plan:first-child .plan__price {
  margin: 0 0 0.8rem;
}
.plans__list .plan:first-child .plan__price .plan__price--usually {
  margin: 0 auto;
}
.plans__list .plan:first-child .plan__price .plan__price--usually dt {
  font-size: 1.3rem;
  padding: 0.55rem 0.8rem;
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price {
  display: flex;
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .price-old {
  position: relative;
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .price-old::after {
  content: "";
  position: absolute;
  left: -0.3rem;
  right: -0.3rem;
  top: 50%;
  width: 90%;
  height: 0.12rem;
  background: #d02121;
  transform: rotate(-15deg);
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .num {
  font-size: 3.5rem;
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .yen {
  font-size: 2rem;
}
.plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .tax {
  position: absolute;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 0.6rem;
  top: 20%;
  right: 2%;
}
.plans__list .plan:first-child .plan__price .plan__price--onece {
  width: 87.1%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.35rem;
}
.plans__list .plan:first-child .plan__price .plan__price--onece dt {
  display: inline-block;
  background: #6e8cbe;
  color: #fff;
  padding: 0.9rem 0 0.9rem 1.05rem;
  position: relative;
  font-size: 1.35rem;
  line-height: 1.2em;
}
.plans__list .plan:first-child .plan__price .plan__price--onece dt::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1.75rem;
  /* 矢印の横幅 */
  width: 0;
  height: 0;
  border-top: 2.55rem solid transparent;
  border-bottom: 2.55rem solid transparent;
  border-left: 1.8rem solid #6e8cbe;
}
.plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per {
  font-size: 6.8rem;
  color: #6e8cbe;
  font-family: "EB Garamond", sans-serif;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: -0.01em;
  position: relative;
}
.plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per .font__small {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 3.05rem;
}
.plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per .tax {
  position: absolute;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 0.8rem;
  top: -7%;
  right: 3%;
}
.plans__list .plan:first-child .plan__features {
  padding: 0.8rem 0.65rem 1.1rem 0.75rem;
}
.plans__list .plan:first-child .plan__features .font__small {
  letter-spacing: -0.02em;
}

@media (min-width: 751px) {
  .plan {
    padding: 50px 0;
  }
  /* タイトル */
  .plans__title {
    font-size: 52px;
    margin: 0 0 16px;
  }
  .plans__title span {
    font-size: 24px;
  }
  /* --- プラン一覧 --- */
  .plans__list {
    list-style: none;
    margin: 75px 24px 0;
    gap: 67px;
  }
  .plans__list .plan {
    border: 2px solid #9f8a6c;
    padding: 20px 16px 36px;
  }
  .plans__list .plan .plan__tag {
    font-size: 27px;
    margin: -50px auto 22px;
    padding: 13px 7.5px 13px 8px;
  }
  .plans__list .plan .plan__bage {
    width: 106px;
    height: auto;
  }
  .plans__list .plan .plan__price {
    margin: 0 0 20px;
  }
  .plans__list .plan .plan__price .plan__price--usually {
    gap: 10px;
  }
  .plans__list .plan .plan__price .plan__price--usually dt {
    font-size: 44px;
    border: 1px solid #363427;
    padding: 18px 26px;
  }
  .plans__list .plan .plan__price .plan__price--usually .plan__usually--price {
    gap: 4px;
  }
  .plans__list .plan .plan__price .plan__price--usually .plan__usually--price .num {
    font-size: 109px;
  }
  .plans__list .plan .plan__price .plan__price--usually .plan__usually--price .yen {
    font-size: 62px;
    margin-left: 4px;
  }
  .plans__list .plan .plan__price .plan__price--usually .plan__usually--price .tax {
    font-size: 20px;
  }
  .plans__list .plan .plan__features {
    padding: 16px 16px 22px 16px;
    font-size: 24px;
  }
  .plans__list .plan .plan__features .font__small {
    font-size: 16px;
  }
  .plans__list .plan:first-child {
    position: relative;
  }
  .plans__list .plan:first-child .plan__bage {
    width: 106px;
    height: auto;
  }
  .plans__list .plan:first-child .plan__price {
    margin: 0 0 16px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually {
    margin: 0 auto;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually dt {
    font-size: 26px;
    padding: 11px 16px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price {
    display: flex;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .price-old {
    position: relative;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .price-old::after {
    left: -6px;
    right: -6px;
    height: 2.4px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .num {
    font-size: 70px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .yen {
    font-size: 40px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--usually .plan__usually--price .tax {
    font-size: 12px;
    top: 20%;
    right: 2%;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece {
    gap: 7px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece dt {
    padding: 18px 0 18px 21px;
    font-size: 27px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece dt::after {
    right: -35px;
    /* 矢印の横幅 */
    border-top: 51px solid transparent;
    border-bottom: 51px solid transparent;
    border-left: 36px solid #6e8cbe;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per {
    font-size: 136px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per .font__small {
    font-size: 61px;
  }
  .plans__list .plan:first-child .plan__price .plan__price--onece .plan__price-per .tax {
    font-size: 16px;
  }
  .plans__list .plan:first-child .plan__features {
    padding: 16px 13px 22px 15px;
  }
}
.doctor {
  background: #6e8cbe;
  padding: 1.4rem 1.2rem 1.8rem;
}

/* 見出し */
.doctor__title {
  text-align: center;
  color: #fff;
  margin: 0 0 1.8rem;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.65rem;
  font-weight: 600;
}
.doctor__title .doctor__eyebrow {
  display: block;
  font-size: 1.2rem;
  color: #fff;
  font-weight: 400;
  font-family: "EB Garamond", sans-serif;
}

/* ── カード全体 ───────────────────────── */
.doctor__card {
  background: #fff;
  border-radius: 2.5rem;
  padding: 2.9rem 1.3rem;
  max-width: 710px;
  margin: 0 auto 1rem;
}

/* プロフィール行（写真＋名前） */
.doctor__profile--head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
}
.doctor__profile--head .profile__namewrap {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.2;
}
.doctor__profile--head .doctor__profile--en {
  font-size: 2.4rem;
  color: rgba(110, 140, 190, 0.39);
  font-family: "EB Garamond", sans-serif;
  letter-spacing: -0.01em;
}
.doctor__profile--head .doctor__name {
  font-size: 3.3rem;
  color: #6e8cbe;
  font-weight: 600;
}
.doctor__profile--head .doctor__role {
  font-size: 1.8rem;
  color: #6e8cbe;
  font-weight: 600;
}

/* 下部テキストエリア */
.doctor__profile-body {
  margin-top: 1.6rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
  font-size: 0.95rem;
}

.doctor__block + .doctor__block {
  margin-top: 1.5em;
}

.doctor__block-title {
  font-weight: 500;
  margin-bottom: 0.2rem;
}

/* 経歴：年＋本文 */
.doctor__list--career .doctor__row {
  display: grid;
  grid-template-columns: 3rem 1fr;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}

.doctor__list--career dt {
  font-weight: 500;
}

.doctor__list--career dd {
  margin: 0 0 0.2rem;
}

.doctor__list--career .doctor__row:nth-child(2) dd {
  letter-spacing: -0.03em;
}

/* 箇条書き */
.doctor__list--plain {
  list-style: none;
  margin: 0;
  padding: 0;
}

.doctor__list--plain li + li {
  margin-top: 0.1rem;
}

@media (min-width: 751px) {
  .doctor {
    padding: 28px 24px 36px;
  }
  /* 見出し */
  .doctor__title {
    margin: 0 0 18px;
    font-size: 53px;
  }
  .doctor__title .doctor__eyebrow {
    font-size: 24px;
  }
  /* ── カード全体 ───────────────────────── */
  .doctor__card {
    background: #fff;
    border-radius: 50px;
    padding: 58px 26px;
    max-width: 710px;
    margin: 0 auto 20px;
  }
  /* プロフィール行（写真＋名前） */
  .doctor__profile--head {
    gap: 30px;
  }
  .doctor__profile--head .doctor__profile--en {
    font-size: 48px;
  }
  .doctor__profile--head .doctor__name {
    font-size: 66px;
  }
  .doctor__profile--head .doctor__role {
    font-size: 36px;
  }
  /* 下部テキストエリア */
  .doctor__profile-body {
    margin-top: 32px;
    font-size: 19px;
  }
  .doctor__block + .doctor__block {
    margin-top: 30px;
  }
  .doctor__block-title {
    margin-bottom: 4px;
  }
  /* 経歴：年＋本文 */
  .doctor__list--career .doctor__row {
    display: grid;
    grid-template-columns: 60px 1fr;
    -moz-column-gap: 20px;
         column-gap: 20px;
  }
  .doctor__list--career dd {
    margin: 0 0 4px;
  }
  .doctor__list--plain li + li {
    margin-top: 2px;
  }
}
.flow {
  position: relative;
  padding: 2.5rem 1.1rem 3.5rem 0.95rem;
  background-image: url("../images/bg__flow.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  /* 中央の縦の破線 */
}
.flow::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 17.5rem;
  left: 50%;
  width: 0.15rem;
  height: 25rem;
  transform: translateX(-50%);
  background-image: repeating-linear-gradient(to bottom, rgb(255, 240, 109) 0 0.6rem, transparent 5px 9px);
  pointer-events: none;
}

/* 見出し */
.flow__title {
  text-align: center;
  color: #363427;
  margin: 0 0 18px;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.6rem;
  font-weight: 600;
}
.flow__title .flow__eyebrow {
  display: block;
  font-size: 1.5rem;
  color: #363427;
  font-weight: 400;
  font-family: "EB Garamond", sans-serif;
}

/* リスト全体 */
.flow__list {
  counter-reset: step;
  /* 通し番号 */
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.9rem;
}

/* ====== 各ステップ ====== */
.flow__step {
  counter-increment: step;
  display: flex;
  background: #6e8cbe;
  gap: 0.5rem;
  justify-content: space-between;
  align-items: center;
  position: relative;
  height: 8.9rem;
  z-index: 1;
  /* 白い丸い切り欠き（左上） */
  /* 通し番号（白い切り欠きの上に） */
  /* 左の緑帯 */
  /* 右の写真 */
}
.flow__step::before {
  content: "";
  background-image: url(../images/bg__flow--step.png);
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  left: -0.05rem;
  top: -0.05rem;
  width: 5.7rem;
  height: 5rem;
  /* 見切れを馴染ませる */
  z-index: 0;
}
.flow__step::after {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: "EB Garamond", sans-serif;
  font-size: 2.65rem;
  color: #6e8cbe;
  font-weight: 400;
  font-style: italic;
  z-index: 1;
}
.flow__step .flow__content {
  position: relative;
  color: #fff;
  padding: 0 0 0 5.5rem;
  /* 左は番号スペース分 */
}
.flow__step .flow__heading {
  margin: 0 0 6px;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.65rem;
  line-height: 1.5;
}
.flow__step .flow__desc {
  margin: 0 0 0.3rem;
  line-height: 1.5;
  font-size: 0.9rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.flow__step .flow__media {
  margin: 0;
  overflow: hidden;
  width: 13.25rem;
  height: auto;
}
.flow__step .flow__media img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

/* スライドする要素 */
.slide-img {
  width: 15rem;
  height: 8rem;
}

/* スライドレールの枠 */
.slide-wrap {
  display: flex;
  align-items: center;
  padding: 2.25rem 0 0;
  position: relative;
  z-index: 1;
  gap: 0.75rem;
}

/* content4つをまとめたスライドブロック */
.slideshow {
  display: flex;
  gap: 0.75rem;
  animation: loop-slide 40s infinite linear 1s both;
}
@keyframes loop-slide {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
@media (min-width: 751px) {
  .flow {
    padding: 50px 22px 70px 19px;
    /* 中央の縦の破線 */
  }
  .flow::after {
    top: 350px;
    left: 50%;
    width: 3px;
    height: 500px;
    background-image: repeating-linear-gradient(to bottom, rgb(255, 240, 109) 0 12px, transparent 5px 20px);
  }
  /* 見出し */
  .flow__title {
    margin: 0 0 32px;
    font-size: 52px;
  }
  .flow__title .flow__eyebrow {
    font-size: 30px;
  }
  /* リスト全体 */
  .flow__list {
    gap: 38px;
  }
  /* ====== 各ステップ ====== */
  .flow__step {
    gap: 10px;
    height: 178px;
    /* 白い丸い切り欠き（左上） */
    /* 通し番号（白い切り欠きの上に） */
    /* 左の緑帯 */
  }
  .flow__step::before {
    left: -2px;
    top: 0;
    width: 114px;
    height: 100px;
  }
  .flow__step::after {
    font-size: 53px;
  }
  .flow__step .flow__content {
    padding: 0 0 0 110px;
  }
  .flow__step .flow__heading {
    margin: 0 0 6px;
    font-size: 33px;
  }
  .flow__step .flow__desc {
    margin: 0 0 6px;
    font-size: 18px;
  }
  .flow__step .flow__media {
    width: 265px;
  }
  /* スライドする要素 */
  .slide-img {
    width: 300px;
    height: 160px;
  }
  /* スライドレールの枠 */
  .slide-wrap {
    padding: 45px 0 0;
    gap: 15px;
  }
  /* content4つをまとめたスライドブロック */
  .slideshow {
    gap: 15px;
  }
}
.access {
  background: #6e8cbe;
  padding: 2.3rem 1.25rem 3.5rem;
}

/* 見出し */
.access__title {
  text-align: center;
  color: #fff;
  margin: 0 0 18px;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.3;
  font-size: 2.6rem;
  font-weight: 600;
}
.access__title .access__eyebrow {
  display: block;
  font-size: 1.5rem;
  color: #fff;
  font-weight: 400;
  font-family: "EB Garamond", sans-serif;
}

.map {
  margin: 3.15rem auto 0;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9ã®ã‚¢ã‚¹ãƒšã‚¯ãƒˆæ¯” */
  height: 0;
}

.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.addoress {
  margin-top: 1.3rem;
  color: #fffefe;
}
.addoress p {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.8;
}

@media (min-width: 751px) {
  .access {
    padding: 46px 25px 70px;
  }
  /* 見出し */
  .access__title {
    margin: 0 0 18px;
    font-size: 52px;
  }
  .access__title .access__eyebrow {
    font-size: 30px;
  }
  .map {
    margin: 63px auto 0;
  }
  .addoress {
    margin-top: 26px;
    color: #fffefe;
  }
  .addoress p {
    font-size: 24px;
    line-height: 1.8;
  }
}
.blog {
  padding-bottom: 2.35rem;
  max-width: 750px;
}
.blog__header {
  position: relative;
  margin-bottom: 2rem;
  padding: 12rem 2rem 0;
  background-image: url("../images/blog__mv.png");
  background-repeat: no-repeat;
  background-size: contain;
}
.blog__header .blog__text {
  width: 3.25rem;
  height: auto;
  display: block;
  margin: 1.75rem auto 0;
}
.blog__title {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #6e8cbe;
  font-size: 4rem;
  font-weight: 600;
  margin: 0;
  text-shadow: 2px 2px 3px rgb(255, 255, 255), 4px 4px 8px rgb(255, 255, 255), 7px 7px 16px rgb(255, 255, 255);
}
.blog__list {
  margin: 0 2.5rem 2rem;
}
.blog__item {
  border-bottom: 0.05rem solid #6e8cbe;
  padding: 1rem 0 1.5rem 0.5rem;
}
.blog__item:first-child {
  border-top: 0.05rem solid #6e8cbe;
}
.blog__item a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  color: #000;
}
.blog__article {
  text-decoration: none;
  color: #000;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.blog__article .blog__date {
  font-size: 0.9rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
}
.blog__article .blog__excerpt {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0;
}
.blog .blog__arrow {
  width: 1.2rem;
  height: auto;
}
.blog .pagination {
  display: flex;
  justify-content: center;
  margin: 2rem 0;
}
.blog .pagination ul {
  display: flex;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.blog .pagination li a,
.blog .pagination li span {
  display: block;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #f0f0f0;
  text-align: center;
  line-height: 2rem;
  font-size: 1.3rem;
  font-family: "EB Garamond", sans-serif;
  color: #20223f;
  text-decoration: none;
}
.blog .pagination li.active a {
  background: #6e8cbe;
  color: #fff;
}
.pager__next .blog .pagination::after {
  content: "";
  background-image: url("../images/blog__next--arrow.png");
  top: 59%;
  left: -10px;
  width: 0.7rem;
  height: 0.7rem;
  background: currentColor;
  transform: rotate(-11deg);
  transform-origin: center;
}
.blog__back {
  width: 77.3%;
  display: block;
  margin: 2rem auto;
  text-align: center;
  background: #f1eceb;
}
.blog__back .back__btn {
  display: flex;
  gap: 8.7rem;
  justify-content: flex-end;
  padding: 1.25rem 3.6rem 1.5rem 0;
  font-size: 1.5rem;
  color: #363427;
  text-decoration: none;
  border-radius: 4px;
}
.blog__back .back__btn img {
  width: 0.7rem;
  height: auto;
}
.blog__back .back__btn:hover {
  background: #ecebea;
}

.page {
  margin: 3.75rem auto 0;
  width: 50%;
  max-width: 350px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.page p {
  margin: 0;
}

.page p a,
.page__dots span {
  width: 2.55rem;
  height: 2.55rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  text-decoration: none;
  font-size: 1.3rem;
  line-height: 1;
}

.page p a {
  background: #f1f1f1;
  color: #20223f;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.page p a:hover {
  opacity: 0.8;
  transform: translateY(-1px);
}

.page .page__text--blue a {
  background: #6e8cbe;
  color: #fff;
}

.page .page__text--blue a:hover {
  background: #6e8cbe;
  color: #fff;
  transform: none;
  opacity: 1;
}

.page__dots span {
  background: #f0f0f0;
  color: #20223f;
}

.page__img--left,
.page__img--right {
  width: 0.5rem;
  height: 0.7rem;
}

.page__img--left a,
.page__img--right a {
  width: 0.5rem;
  height: 0.7rem;
  display: grid;
  place-items: center;
  background: transparent;
}

.page__img--left img,
.page__img--right img {
  width: 0.5rem;
  height: auto;
  display: block;
}

@media (min-width: 751px) {
  .blog {
    padding-bottom: 47px;
  }
  .blog__header {
    position: relative;
    margin-bottom: 40px;
    padding: 240px 40px 0;
  }
  .blog__header .blog__text {
    width: 65px;
    height: auto;
    display: block;
    margin: 35px auto 0;
  }
  .blog__title {
    font-size: 80px;
    font-weight: 600;
    margin: 0;
    text-shadow: 0px 0px 16px rgb(255, 255, 255);
  }
  .blog__list {
    margin: 0 50px 40px;
  }
  .blog__item {
    border-bottom: 1px solid #6e8cbe;
    padding: 20px 0 30px 10px;
  }
  .blog__item:first-child {
    border-top: 1px solid #6e8cbe;
  }
  .blog__article {
    gap: 30px;
  }
  .blog__article .blog__date {
    font-size: 18px;
  }
  .blog__article .blog__excerpt {
    font-size: 30px;
  }
  .blog .blog__arrow {
    width: 24px;
    height: auto;
  }
  .blog .pagination {
    display: flex;
    justify-content: center;
    margin: 40px 0;
  }
  .blog .pagination ul {
    display: flex;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .blog .pagination li a,
  .blog .pagination li span {
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f0f0f0;
    text-align: center;
    line-height: 2em;
    font-size: 26px;
  }
  .blog .pagination li.active a {
    background: #6e8cbe;
    color: #fff;
  }
  .pager__next .blog .pagination::after {
    left: -10px;
    width: 14px;
    height: 14px;
  }
  .blog__back {
    width: 77.3%;
    display: block;
    margin: 40px auto;
  }
  .blog__back .back__btn {
    display: flex;
    gap: 174px;
    justify-content: flex-end;
    padding: 25px 72px 30px 0;
    font-size: 30px;
    color: #363427;
    text-decoration: none;
    border-radius: 4px;
  }
  .blog__back .back__btn img {
    width: 14px;
    height: auto;
  }
  .blog__back .back__btn:hover {
    background: #ecebea;
  }
  .page {
    margin: 55px auto 0;
  }
  .page p a,
  .page__dots span {
    width: 51px;
    height: 51px;
    font-size: 26px;
  }
  .page__img--left,
  .page__img--right {
    width: 10px;
    height: 14px;
  }
  .page__img--left a,
  .page__img--right a {
    width: 10px;
    height: 14px;
    display: grid;
  }
  .page__img--left img,
  .page__img--right img {
    width: 10px;
    height: auto;
    display: block;
  }
}
.single {
  max-width: 750px;
  margin: 0 auto;
  padding: 2rem 1rem;
}
.single__header {
  margin-bottom: 2rem;
  text-align: center;
}
.single__header .single__thumb img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}
.single__header .single__meta {
  margin-top: 1rem;
}
.single__header .single__meta .single__date {
  font-size: 0.875rem;
  color: #666;
  display: block;
  margin-bottom: 0.5rem;
}
.single__header .single__meta .single__title {
  font-size: 1.5rem;
  font-weight: bold;
  color: #2f3e2f;
}
.single .blog__inner {
  margin: 0 2.5rem 2rem;
}
.single__content {
  margin-top: 1.8rem;
  font-size: 1.5rem;
  line-height: 1.8;
  color: #333;
}
.single__content p {
  margin-bottom: 1.5rem;
}
.single__back {
  width: 77.3%;
  display: block;
  margin: 2rem auto;
  text-align: center;
  background: #f1eceb;
}
.single__back .back__btn {
  display: flex;
  gap: 4.4rem;
  justify-content: flex-end;
  padding: 1.25rem 3.6rem 1.5rem 0;
  font-size: 1.5rem;
  color: #363427;
  text-decoration: none;
  border-radius: 4px;
}
.single__back .back__btn img {
  width: 0.7rem;
  height: auto;
}
.single__back .back__btn:hover {
  background: #ecebea;
}

@media (min-width: 751px) {
  .single {
    max-width: 750px;
    margin: 0 auto;
    padding: 40px 20px;
  }
  .single .blog__inner {
    margin: 0 50px 40px;
  }
  .single__content {
    margin-top: 36px;
    font-size: 30px;
  }
  .single__content p {
    margin-bottom: 30px;
  }
  .single__back {
    width: 77.3%;
    display: block;
    margin: 40px auto;
    text-align: center;
    background: #f1eceb;
  }
  .single__back .back__btn {
    display: flex;
    gap: 88px;
    justify-content: flex-end;
    padding: 25px 78px 30px 0;
    font-size: 30px;
    color: #363427;
    text-decoration: none;
    border-radius: 4px;
  }
  .single__back .back__btn img {
    width: 14px;
    height: auto;
  }
}
.benefits {
  background-image: url(../images/bg__benefits.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  padding-top: 13.1rem;
}

.benefits__list {
  display: grid;
}

.benefits__item {
  position: relative;
  width: 100%;
  aspect-ratio: 750/702;
  background: center/cover no-repeat;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

/* 各カードの背景画像 */
.benefits__item--01 {
  background-image: url("../images/benefits--card01.png");
}

.benefits__item--02 {
  background-image: url("../images/benefits--card02.png");
}
.benefits__item--02 .benefits__num,
.benefits__item--02 .benefits__lead,
.benefits__item--02 .benefits__heading {
  color: #6e8cbe;
}
.benefits__item--02 .benefits__num .u-textmark,
.benefits__item--02 .benefits__lead .u-textmark,
.benefits__item--02 .benefits__heading .u-textmark {
  background-color: #6e8cbe;
  color: #fff;
  display: inline-block;
  padding: 0 0.2rem 0.4rem;
}
.benefits__item--02 .benefits__text {
  color: #6e8cbe;
  text-shadow: 0 0 2px rgb(255, 255, 255), 0 0 4px rgb(255, 255, 255), 0 0 5px rgb(255, 255, 255), 0 0 5px rgb(255, 255, 255), 0 0 7px rgb(255, 255, 255), 0 0 7px rgb(255, 255, 255), 0 0 8px rgb(255, 255, 255), 0 0 8px rgb(255, 255, 255), 0 0 9px rgb(255, 255, 255), 0 0 9px rgb(255, 255, 255), 0 0 9px rgb(255, 255, 255), 0 0 10px rgb(255, 255, 255), 0 0 10px rgb(255, 255, 255), 0 0 10px rgb(255, 255, 255), 0 0 11px rgba(255, 255, 255, 0.9), 0 0 11px rgba(255, 255, 255, 0.8);
}

.benefits__item--03 {
  background-image: url("../images/benefits--card03.png");
}
.benefits__item--03 .benefits__heading {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  font-size: 4rem;
  color: #fff;
  font-weight: 500;
  line-height: 1;
}
.benefits__item--03 .benefits__heading .u-font075 {
  font-size: 0.75em;
}
.benefits__item--03 .benefits__lead {
  position: absolute;
  top: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  font-size: 2.4rem;
  color: #fff;
}

.benefits__item + .benefits__item {
  margin-top: -5.25rem;
}

/* 文字は上に重ねる */
.benefits__num {
  position: absolute;
  top: 8%;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.85rem;
  font-family: "EB Garamond", sans-serif;
  font-style: italic;
  color: #fff;
}

.benefits__lead {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  font-size: 2.4rem;
  color: #fff;
}

.benefits__heading {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  font-size: 4rem;
  color: #fff;
  font-weight: 500;
  line-height: 1;
}
.benefits__heading .u-textmark {
  background-color: #fff;
  color: #6e8cbe;
  display: inline-block;
  padding: 0 0.2rem 0.4rem;
}

.benefits__text {
  position: absolute;
  top: 46%;
  left: 50%;
  transform: translateX(-50%);
  width: 93%;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.5;
  text-shadow: 0 0 2px rgb(94, 119, 160), 0 0 5px rgb(96, 122, 167), 0 0 8px rgb(110, 140, 190), 0 0 9px rgb(110, 140, 190), 0 0 9px rgba(110, 140, 190, 0.98), 0 0 10px rgba(110, 140, 190, 0.96), 0 0 12px rgba(110, 140, 190, 0.96), 0 0 14px rgba(110, 140, 190, 0.96), 0 0 16px rgba(110, 140, 190, 0.96), 0 0 24px rgba(110, 140, 190, 0.9), 0 0 44px rgba(110, 140, 190, 0.8), 0 0 64px rgba(110, 140, 190, 0.7);
}

@media (min-width: 751px) {
  .benefits {
    padding-top: 262px;
  }
  .benefits__item--02 {
    background-image: url("../images/benefits--card02.png");
  }
  .benefits__item--02 .benefits__num,
  .benefits__item--02 .benefits__lead,
  .benefits__item--02 .benefits__heading {
    color: #6e8cbe;
  }
  .benefits__item--02 .benefits__num .u-textmark,
  .benefits__item--02 .benefits__lead .u-textmark,
  .benefits__item--02 .benefits__heading .u-textmark {
    padding: 0 4px 8px;
  }
  .benefits__item--03 {
    background-image: url("../images/benefits--card03.png");
  }
  .benefits__item--03 .benefits__heading {
    font-size: 80px;
  }
  .benefits__item--03 .benefits__heading .u-font075 {
    font-size: 60px;
  }
  .benefits__item--03 .benefits__lead {
    font-size: 48px;
  }
  .benefits__item + .benefits__item {
    margin-top: -105px;
  }
  /* 文字は上に重ねる */
  .benefits__num {
    font-size: 57px;
  }
  .benefits__lead {
    font-size: 48px;
  }
  .benefits__heading {
    font-size: 80px;
  }
  .benefits__heading .u-textmark {
    padding: 0 4px 8px;
  }
  .benefits__text {
    font-size: 24px;
  }
}
.reason__cards {
  display: grid;
  margin-top: -1.8rem;
}

.reason__card {
  position: relative;
  width: 100%;
  background: center/cover no-repeat;
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.reason__lead {
  position: absolute;
  top: 6%;
  left: 2.67%;
  width: 100%;
  font-size: 1.8rem;
  color: #fff;
}

.reason__heading {
  position: absolute;
  top: 13%;
  left: 2.67%;
  width: 100%;
  font-size: 3rem;
  color: #fff;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.05em;
}
.reason__heading .u-textmark {
  background-color: #fff;
  color: #6e8cbe;
  display: inline-block;
  padding: 0 0.2rem 0.4rem;
  margin-top: 0.5rem;
}

.reason__text {
  position: absolute;
  top: 43%;
  left: 2.67%;
  width: 93.4%;
  font-size: 1.4rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #fff;
  line-height: 1.7;
}

/* 背景画像の指定 */
.reason__card--quality {
  background-image: url("../images/reason__card--quality.png");
  aspect-ratio: 750/606;
}

.reason__card--price {
  background-image: url("../images/reason__card--price.png");
  aspect-ratio: 738/606;
}
.reason__card--price .reason__lead {
  position: absolute;
  top: 6%;
  right: 2.67%;
  left: auto;
  text-align: end;
  text-shadow: 0 0 4px rgb(147, 169, 206), 0 0 6px rgb(147, 169, 206), 0 0 8px rgba(147, 169, 206, 0.9), 0 0 10px rgba(147, 169, 206, 0.8);
}
.reason__card--price .reason__heading {
  position: absolute;
  top: 13%;
  right: 2.67%;
  left: auto;
  text-align: end;
}
.reason__card--price .reason__text {
  position: absolute;
  right: 2.67%;
  left: auto;
  width: 89.6%;
  letter-spacing: -0.02em;
}

@media (min-width: 751px) {
  .reason__cards {
    margin-top: -36px;
  }
  .reason__lead {
    font-size: 36px;
  }
  .reason__heading {
    font-size: 60px;
    letter-spacing: -0.05em;
  }
  .reason__heading .u-textmark {
    padding: 0 4px 8px;
    margin-top: 10px;
  }
  .reason__text {
    font-size: 28px;
  }
}/*# sourceMappingURL=style.css.map */