/* ---------------------------------------------------------------  PC - Header --------------------------------------------------------------- */
/* ヘッダーNav */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 50;
  height: 70px;
  background: #fff;
  box-shadow: var(--shadow-header), inset 0 -1px 0 0 #ff8600;
}

/* ヘッダー内部 */
.site-header__inner {
  display: flex;
  align-items: stretch;
  height: 70px;
  padding: 0 0 0 calc(15px + 25 * var(--fluid-t));
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

/* ヘッダーLogo */
.site-header__logo {
  display: flex;
  align-items: center;
  flex: 0 0 220px;
  margin-right: 24px;
}

/* ヘッダーLogo画像 */
.site-header__logo img {
  display: block;
  width: 220px;
  height: auto;
}

/* ヘッダーお問い合わせ */
.site-header__contact {
  transition: opacity 0.6s ease;
  flex: 0 0 auto;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0 clamp(20px, 3vw, 40px);
  min-width: min(200px, 100%);
  background: linear-gradient(90deg, var(--color-blue-a), var(--color-blue-b));
  color: #fff;
  font-weight: 600;
  font-size: 1.125rem;
  letter-spacing: 0.0225rem;
}

/* ヘッダーお問い合わせアイコン */
.site-header__contact-icon img {
  width: 28px;
  height: 28px;
  display: block;
}


/* PC版のみ (1024px超) */
@media (min-width: 1025px) {

  /* ヘッダー下線 */
  .site-header {
    box-shadow: var(--shadow-header), 0 1px 0 0 #ff8600;
  }

  /* ヘッダーナビ */
  .site-header__nav {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
  }

  /* SPドロワー要素とハンバーガーは非表示 */
  .site-header__nav-panel,
  .site-header__hamburger {
    display: none !important;
  }

  /* ヘッダーお問い合わせ（PC版ホバー透過） */
  .site-header__contact:hover {
    opacity: 0.8;
  }

  /* LP キャッチコピー */
  .site-header__tagline {
    margin: 0;
    max-width: 100%;
    font-weight: 600;
    font-size: 0.9375rem;
    /* 固定サイズに変更 */
    line-height: 1.34;
    color: var(--color-text);
    text-align: center;
  }

  /* ヘッダーナビリスト(HP版) */
  .site-header__hp-list {
    display: flex;
    align-items: stretch;
    align-self: stretch;
    justify-content: center;
    flex-wrap: wrap;
    row-gap: 6px;
    column-gap: clamp(12px, 2vw, 28px);
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-width: 0;
  }

  .site-header__hp-item {
    display: flex;
    align-items: stretch;
    position: relative;
  }

  /* ヘッダーナビリストアイテム(HP版) */
  .site-header__hp-list a {
    display: flex;
    align-items: center;
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.34;
    letter-spacing: 0.0175rem;
    white-space: nowrap;
    transition: color 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;
  }

  /* ヘッダーナビリストアイテム（ホバー）(HP版) */
  .site-header__hp-list a:hover {
    color: var(--color-orange);
    box-shadow: inset 0 -4px 0 0 var(--color-orange);
  }

  /* ------------------------------------- */
  /* 第2階層メニュー (HP版) */
  /* ------------------------------------- */
  .site-header__hp-sublist {
    position: absolute;
    top: 100%;
    left: 0;
    width: max-content;
    min-width: 220px;
    background-color: var(--color-orange);
    border-radius: 8px;
    padding: 0 0 9px 0;
    margin: 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease, visibility 0.6s ease;
    z-index: 100;
  }

  /* 親ホバーで表示 */
  .site-header__hp-item:hover .site-header__hp-sublist {
    opacity: 1;
    visibility: visible;
  }

  /* サブリンク（第2階層のaタグ） */
  .site-header__hp-list .site-header__hp-sublist a.site-header__hp-sublink {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 50px;
    padding: 0 20px;
    color: #fff;
    font-weight: 500;
    font-size: 0.9375rem;
    box-shadow: none;
    /* トップ階層のホバー下線を打ち消す */
    border-bottom: 1px dashed rgba(255, 255, 255, 0.5);
    /* SP版と同じ点線を白線で */
  }

  /* サブリンクのホバー時 */
  .site-header__hp-list .site-header__hp-sublist a.site-header__hp-sublink:hover {
    color: #fff;
    opacity: 0.7;
    box-shadow: none;
  }

  /* スクロールマージン */
  #main-content,
  #point,
  #about,
  #reform,
  #price,
  #feauters,
  #flow,
  #faq {
    scroll-margin-top: 70px;
  }
}


/* --------------------------------------------------------------- PC - FV --------------------------------------------------------------- */
/* FV */
.fv {
  position: relative;
  width: 100%;
  height: calc(600px + 200 * var(--fluid-t));
  background: #fff;
  border-radius: 0 0 calc(50px + 50 * var(--fluid-t)) calc(50px + 50 * var(--fluid-t));
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(71, 58, 28, 0.06);
}

/* FVグリッド */
.fv__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  width: 100%;
  height: 100%;
  min-height: 0;
}

/* FVセル */
.fv__cell {
  overflow: hidden;
}

/* FVセル画像 */
.fv__cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* FVリード */
.fv__lead {
  --fv-circle-size: clamp(300px, min(36vw, 48vh), 480px);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* FVリード円 */
.fv__lead-circle {
  position: absolute;
  width: var(--fv-circle-size);
  height: var(--fv-circle-size);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin-top: -10px;
}

/* FVリード円画像 */
.fv__lead-circle img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

/* FVリードコンテンツ */
.fv__lead-content {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: min(420px, 85vw, calc(var(--fv-circle-size) * 0.92));
  max-width: min(420px, calc(var(--fv-circle-size) * 0.92));
  margin-top: -44px;
  transform: translate(-50%, -50%);
  pointer-events: auto;
}

/* FVカウンター */
.fv__counter {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-shrink: 0;
}

/* FVカウンターメイン */
.fv__counter-main {
  text-align: center;
}

/* FVカウンター月桂 */
.fv__counter-laurel img {
  width: clamp(24px, calc(var(--fv-circle-size) * 42 / 480), 42px);
  height: auto;
  max-height: min(119px, calc(var(--fv-circle-size) * 119 / 480));
  display: block;
}

/* FVカウンター月桂右 */
.fv__counter-laurel--right img {
  transform: scaleX(-1);
}

/* FVカウンター数字 */
.fv__counter-value {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(3.90625rem, min(7.5vw, 10vh), 6.25rem);
  line-height: 1;
  background: linear-gradient(180deg, #f29125 28%, #fdd11a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* FVカウンターラベル */
.fv__counter-label {
  margin: 2px 0 0;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: clamp(0.859375rem, min(1.65vw, 2.2vh), 1.375rem);
  line-height: 1.34;
  color: var(--color-text);
}

/* FV見出し */
.fv__heading {
  position: relative;
  margin: 18px 0 0;
  max-width: 100%;
  padding: 0 12px;
  text-align: center;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.015625rem, min(1.95vw, 2.6vh), 1.625rem);
  line-height: 1.75;
  letter-spacing: clamp(0.040625rem, min(0.078vw, 0.104vh), 0.065rem);
  color: var(--color-text);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* FV見出し行 */
.fv__heading-line {
  display: block;
}

/* FV SCROLL */
.fv__scroll {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, calc(var(--fv-circle-size) * 0.025), 12px);
  margin-top: -10px;
  transform: translate(-50%,
      calc(-50% + var(--fv-circle-size) / 2 - clamp(4px, calc(var(--fv-circle-size) * 0.0125), 8px)));
  pointer-events: none;
}

/* FV SCROLLラベル */
.fv__scroll-label {
  margin: 0;
  font-weight: 600;
  font-size: clamp(0.703125rem, min(1.35vw, 1.8vh), 1.125rem);
  line-height: 1.2;
  letter-spacing: clamp(0.0140625rem, min(0.027vw, 0.036vh), 0.0225rem);
  color: var(--color-orange);
  white-space: nowrap;
}

/* FV SCROLL線ラップ */
.fv__scroll-line-wrap {
  width: clamp(32px, calc(var(--fv-circle-size) * 0.1), 48px);
  height: clamp(30px, calc(var(--fv-circle-size) * 0.094), 45px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

/* FV SCROLL線 */
.fv__scroll-line {
  width: clamp(32px, calc(var(--fv-circle-size) * 0.096), 46px);
  height: clamp(10px, calc(var(--fv-circle-size) * 0.03125), 15px);
  max-width: none;
  transform: rotate(90deg);
  flex-shrink: 0;
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {

  /* FV背景画像 */
  .fv__hero-img {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
  }

  /* FVグリッド */
  .fv__grid {
    display: none;
  }

  /* FVリードコンテンツ */
  .fv__lead-content {
    transform: translate(-50%, calc(-50% + 40px));
  }

  /* FV見出し */
  .fv__heading {
    margin-top: 26px;
  }
}


/* --------------------------------------------------------------- PC - Point --------------------------------------------------------------- */
/* Point */
.point {
  position: relative;
  z-index: 2;
  max-width: var(--w-page);
  margin: clamp(16.375px, calc(100vw * 60 / 1440), 60px) auto;
}

/* Pointアイテム */
.point__item {
  position: relative;
  width: calc(155px + 115 * var(--fluid-t));
  flex: 0 0 auto;
  aspect-ratio: 1;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible;
}

/* Pointコンテンツ */
.point__content {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 18px 10px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* Pointタイトル */
.point__title {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--color-text);
}

/* Pointタイトル（スタックでない場合） */
.point__title:not(.point__title--stack) {
  line-height: 1.34;
}

/* Point価格 */
.point__price {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  margin-bottom: 0;
  line-height: 1.34;
}

/* Point価格数字 */
.point__price-num {
  font-size: calc(1.625rem + 18 * var(--fluid-t));
  color: var(--color-orange);
}

/* Point価格円 */
.point__price-yen {
  font-size: calc(0.875rem + 6 * var(--fluid-t));
  color: var(--color-orange);
}

/* Point価格税 */
.point__price-tax {
  font-size: calc(0.625rem + 6 * var(--fluid-t));
  color: var(--color-text);
}

/* Pointサブタイトル */
.point__title-sub {
  display: block;
  font-size: calc(0.875rem + 8 * var(--fluid-t));
  line-height: 1.34;
  /* 134% */
}

/* Point注記 */
.point__note {
  margin: calc(5px + 7 * var(--fluid-t)) 0 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: calc(0.5625rem + 6 * var(--fluid-t));
  line-height: 1.34;
}

/* Pointタイトル（スタック） */
.point__title--stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: calc(0.875rem + 12 * var(--fluid-t));
  line-height: 1.34;
}

/* Pointライン */
.point__line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
}

/* Pointアクセント */
.point__accent {
  color: var(--color-orange);
  font-size: calc(1.375rem + 12 * var(--fluid-t));
}

/* Pointアクセント（大） */
.point__accent--lg {
  font-size: calc(1.375rem + 12 * var(--fluid-t));
}

/* Pointライン残り */
.point__line-rest {
  font-size: calc(0.875rem + 8 * var(--fluid-t));
  color: var(--color-text);
}

/* Pointライン残り（小） */
.point__line-rest--sm {
  font-size: calc(0.75rem + 10 * var(--fluid-t));
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {

  /* Pointリスト */
  .point__list {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: clamp(24px, 3vw, 40px);
    padding: 0 clamp(20px, 4vw, 40px);
  }

  /* Pointデコレーション */
  .point__decor {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  /* Pointゴールド */
  .point__gold {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 105.92%;
    height: 105.92%;
    max-width: none;
    transform: translate(-50%, -50%);
    object-fit: contain;
  }
}


/* --------------------------------------------------------------- PC - About --------------------------------------------------------------- */
/* About */
.about {
  position: relative;
  width: 100%;
  max-width: none;
  padding: calc(70px - 6 * var(--fluid-t)) var(--pad-x) calc(60px + 20 * var(--fluid-t));
  min-height: calc(0px + 1217 * var(--fluid-t));
  margin-left: auto;
  margin-right: auto;
  border-radius: calc(50px + 50 * var(--fluid-t));
  overflow: hidden;
  isolation: isolate;
}

/* Aboutコンテンツ */
.about>*:not(.about__bg) {
  position: relative;
  z-index: 2;
}

/* About背景 */
.about__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  border-radius: inherit;
}

/* About背景画像 */
.about__bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Section見出し */
.section-heading {
  text-align: center;
  margin-top: 20px;
  margin-bottom: 24px;
}

/* Section見出しアイコン */
.section-heading__icon {
  margin: 0 0 8px;
}

/* Section見出しアイコン画像 */
.section-heading__icon img {
  display: inline-block;
  width: 50px;
  height: auto;
}

/* Section見出しタイトル */
.section-heading__title {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.75rem + 12 * var(--fluid-t));
  line-height: 1.34;
}

/* --------------------------------------------------------------- 下層ページ (Subpages) --------------------------------------------------------------- */
/* 下層リード（パンくず等） */
.page-lead {
  margin-top: 20px;
  margin-left: 40px;
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  /* 13px */
}

.page-lead__breadcrumb a,
.page-lead__breadcrumb .breadcrumb-separator {
  color: #FF8600;
  text-decoration: none;
}

.page-lead__breadcrumb a:hover {
  text-decoration: underline;
}

/* 下層コンテンツ */
.under-content {
  margin-top: 94px;
  margin-left: 132px;
  margin-right: 132px;
  margin-bottom: 120px;
}

@media (max-width: 767px) {
  .under-content {
    margin-top: 30px;
    margin-left: 15px;
    margin-right: 15px;
  }
}

/* 404 Page */
.error-404 {
  padding: clamp(60px, 10vw, 120px) 0;
  text-align: center;
}

.error-404__inner {
  display: flex;
  margin-bottom: 300px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.error-404__body {
  margin-top: 40px;
}

.error-404__text {
  margin-bottom: 48px;
  line-height: 2;
  font-size: calc(1rem + 2 * var(--fluid-t));
  color: var(--color-text);
}

.error-404__btn-wrap {
  display: flex;
  justify-content: center;
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 40px;
  background: var(--color-orange);
  color: #fff;
  font-weight: 700;
  border-radius: 50px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(255, 134, 0, 0.2);
}

.btn-primary:hover {
  background: #ff9d33;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 134, 0, 0.3);
  color: #fff;
}


/* About導入文 */
.about__intro {
  /* --about-intro-s logic removed */
  max-width: var(--w-content);
  margin: 0 auto calc(30px + 10 * var(--fluid-t));
  text-align: center;
  font-weight: 600;
  font-size: calc(0.9375rem + 3 * var(--fluid-t));
  line-height: 2;
  zoom: 1;
  /* Fallback applied */
}

/* About導入文段落 */
.about__intro p {
  margin: 0;
}

/* About比較 */
.about__compare {
  margin: 0 auto 20px;
  max-width: calc(363px + 537 * var(--fluid-t));
}

/* About比較画像 */
.about__compare-images {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: calc(10px + 14 * var(--fluid-t));
  margin-bottom: calc(14px + 2 * var(--fluid-t));
}

/* About比較画像（左） */
.about__compare-images>img:first-child {
  width: calc(168px + 121 * var(--fluid-t));
  height: calc(73px + 51 * var(--fluid-t));
  object-fit: contain;
}

/* About比較画像（右） */
.about__compare-images>img:last-child {
  width: calc(172px + 123 * var(--fluid-t));
  height: calc(123px + 88 * var(--fluid-t));
  object-fit: contain;
}

/* About比較矢印 */
.about__compare-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 auto;
}

/* About比較矢印画像 */
.about__compare-arrow-img {
  display: block;
  width: calc(14px + 6 * var(--fluid-t));
  height: auto;
  max-width: none;
  object-fit: contain;
  aspect-ratio: 67 / 120;
}

/* About比較ラベル：各画像の真下中央に配置 */
.about__compare-labels {
  display: flex;
  justify-content: center;
  gap: calc((10px + 14 * var(--fluid-t)) * 2 + 14px + 6 * var(--fluid-t));
  margin: 0 auto;
  padding: 0;
}

/* Before ラベル幅 */
.about__compare-label--before {
  display: block;
  width: calc(168px + 121 * var(--fluid-t));
  text-align: center;
}

/* After ラベル幅 */
.about__compare-label--after {
  display: block;
  width: calc(172px + 123 * var(--fluid-t));
  text-align: center;
}

.about__compare-label {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.5rem + 6 * var(--fluid-t));
  letter-spacing: 0.0375rem;
}

/* About比較ラベル（右） */
.about__compare-label--after {
  color: var(--color-orange);
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {

  /* About table */
  .about__table-wrap {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  /* About table */
  .about__table-scale {
    --about-table-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 1060), 1px);
    flex: 0 0 auto;
    display: block;
    box-sizing: border-box;
    width: min(100%, calc(1038 * var(--about-table-s)));
    margin: 0 auto;
    overflow: hidden;
  }

  /* About table */
  .about__table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: calc(4 * var(--about-table-s));
  }

  /* About tableキャプション */
  .about__table caption {
    caption-side: top;
    padding-bottom: 16px;
    font-weight: 600;
    font-size: 0.875rem;
    color: transparent;
    height: 0;
    overflow: hidden;
  }

  /* About tableヘッダセル */
  .about__table thead th {
    height: calc(72 * var(--about-table-s));
    font-weight: 600;
    font-size: calc(20 * var(--about-table-s));
    text-align: center;
    vertical-align: middle;
    border-radius: calc(8 * var(--about-table-s));
    padding: 0 calc(16 * var(--about-table-s));
  }

  /* About table角 */
  .about__table-corner {
    width: 150px;
    background: transparent;
  }

  /* About tableヘッダセル（左） */
  .about__table-heading--left {
    background: var(--color-gray-heading);
    color: var(--color-text);
  }

  /* About tableヘッダセル（右） */
  .about__table-heading--right {
    background: var(--color-orange);
    color: #fff;
    font-size: calc(24 * var(--about-table-s));
  }

  /* About tableボディセル */
  .about__table tbody th,
  .about__table tbody td {
    vertical-align: middle;
    border-radius: calc(8 * var(--about-table-s));
    padding: calc(16 * var(--about-table-s)) calc(20 * var(--about-table-s));
    font-size: calc(16 * var(--about-table-s));
    line-height: 1.6;
  }

  /* About table軸 */
  .about__table-axis {
    width: 150px;
    background: var(--color-gray-axis);
    color: #fff;
    font-weight: 600;
    font-size: calc(18 * var(--about-table-s));
    text-align: center;
  }

  /* About tableセル（前） */
  .about__table-cell--before {
    background: var(--color-gray-cell);
    color: #000;
  }

  /* About tableセル（後） */
  .about__table-cell--after {
    background: var(--color-peach-cell);
    color: #000;
  }

  /* About table列（軸） */
  .about__col-axis {
    width: 14.453%;
  }

  /* About table列（前） */
  .about__col-before,
  .about__col-after {
    width: 42.7735%;
  }

  /* About table列（角） */
  .about__table-corner {
    width: auto;
    min-width: 0;
    padding: 0;
  }

  /* About table列（軸） */
  .about__table-axis {
    width: auto;
    min-width: 0;
  }

  /* About tableヘッダセル（左） */
  .about__table-heading--left {
    padding: calc(20 * var(--about-table-s)) clamp(calc(12 * var(--about-table-s)), 8.5%, calc(88 * var(--about-table-s)));
  }

  /* About tableヘッダセル（右） */
  .about__table-heading--right {
    padding: calc(20 * var(--about-table-s)) clamp(calc(12 * var(--about-table-s)), 4.2%, calc(41 * var(--about-table-s))) calc(20 * var(--about-table-s)) clamp(calc(12 * var(--about-table-s)), 4.2%, calc(40 * var(--about-table-s)));
  }

  /* About tableボディセル */
  .about__table tbody td.about__table-cell {
    vertical-align: top;
    height: calc(100 * var(--about-table-s));
    padding: calc(24 * var(--about-table-s)) calc(21 * var(--about-table-s));
  }

  /* About table軸 */
  .about__table tbody th.about__table-axis {
    height: calc(100 * var(--about-table-s));
    padding: calc(26 * var(--about-table-s)) calc(30 * var(--about-table-s));
    vertical-align: middle;
  }
}


/* --------------------------------------------------------------- PC - Reform --------------------------------------------------------------- */
.reform {
  margin: calc(56px + 16 * var(--fluid-t)) var(--pad-x);
}

.reform__scale {
  --reform-grid-s: 1px;
  --reform-text-mul: 1;
  --reform-text-s: calc(var(--reform-grid-s) * var(--reform-text-mul));
}

/* Reformバナー */
.reform__banner {
  position: relative;
  isolation: isolate;
  overflow: visible;
  width: 100%;
  max-width: calc(363px + 187 * var(--fluid-t));
  margin: 0 auto calc(35px + 5 * var(--fluid-t));
}

/* Reformバナーレイヤー */
.reform__banner-layers {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
}

/* Reformバナーレイヤー */
.reform__banner-layer {
  position: absolute;
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
}

/* Reformバナーレイヤー（影） */
.reform__banner-layer--shadow {
  z-index: 0;
  transform: translate(4px, 4px);
}

/* Reformバナーレイヤー（顔） */
.reform__banner-layer--face {
  z-index: 1;
}

/* Reformグリッド */
.reform__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-start;
  width: 100%;
}

/* Reformカード */
.reform-card {
  width: 100%;
  min-width: 0;
  max-width: calc(363px + 187 * var(--fluid-t));
}

/* Reformカード画像 */
.reform-card__media {
  position: relative;
  border-radius: calc(7px + 1 * var(--fluid-t));
  overflow: hidden;
  aspect-ratio: 550 / 264;
}

/* Reformカード画像 */
.reform-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Reformカード画像（比較） */
.reform-card__media--compare .reform-card__badges {
  position: absolute;
  top: 18px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9375rem;
  font-weight: 500;
}

/* Reformカードボディ */
.reform-card__body {
  position: relative;
  margin: -40px 47px 0;
  padding: 24px var(--pad-x);
  min-height: calc(145px + 21 * var(--fluid-t));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(10px + 10 * var(--fluid-t));
  background: #fff;
  border: 1px solid var(--color-orange);
  border-radius: calc(7px + 1 * var(--fluid-t));
  box-shadow: var(--shadow-card);
}

/* Reformカードボディ（3番目） */
.reform-card:nth-child(3) .reform-card__body {
  min-height: calc(145px + 69 * var(--fluid-t));
}

/* Reformカードボディ（4番目） */
.reform-card:nth-child(4) .reform-card__body {
  min-height: calc(167px + 47 * var(--fluid-t));
}

/* Reformカードボディ（角SVG） */
.reform-card__body::before,
.reform-card__body::after {
  content: "";
  position: absolute;
  width: 30px;
  height: 30px;
  background: url("../img/reform_card_corner.svg") center / 100% 100% no-repeat;
}

/* Reformカードボディ（角SVG）（左上） */
.reform-card__body::before {
  top: -6px;
  left: -6px;
}

/* Reformカードボディ（角SVG）（右下） */
.reform-card__body::after {
  bottom: -6px;
  right: -6px;
  transform: rotate(180deg);
}

/* Reformカードタイトル */
.reform-card__title {
  margin: 0;
  font-weight: 500;
  font-size: calc(1.125rem + 6 * var(--fluid-t));
  line-height: 1.6;
  letter-spacing: 0.03rem;
  text-align: center;
  color: var(--color-text);
}

/* Reformカードテキスト */
.reform-card__text {
  margin: 0;
  font-weight: 400;
  font-size: calc(0.875rem + 1 * var(--fluid-t));
  line-height: 1.6;
  text-align: center;
  color: var(--color-text);
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {
  .reform__scale {
    --reform-grid-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 1240), 1px);
  }

  /* Reform */
  .reform {
    padding: calc(56 * var(--reform-grid-s)) var(--pad-x) calc(72 * var(--reform-grid-s));
  }

  /* Reformバナー */
  .reform__banner {
    max-width: calc(1100 * var(--reform-grid-s) + min(calc(60 * var(--reform-grid-s)), 4vw));
    margin: 0 auto calc(40 * var(--reform-grid-s));
    height: auto;
    aspect-ratio: 1160 / 88;
  }

  .reform__banner-layer--shadow {
    transform: translate(calc(4 * var(--reform-grid-s)),
        calc(4 * var(--reform-grid-s)));
  }

  /* Reformバナータイトル（1440 時点＝30px） */
  .reform__banner-title {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: calc(100% * 18 / 88);
    z-index: 2;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: clamp(18px, 1.146vw + 13.5px, 30px);
    line-height: 1.34;
    text-align: center;
    color: #fff;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
  }

  /* Reform：2 列グリッドに制限。1280+ は等倍、1280 未満は --reform-grid-s（zoom なし） */
  .reform__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: center;
    width: 100%;
    row-gap: calc(40 * var(--reform-grid-s));
    column-gap: calc(min(calc(60 * var(--reform-grid-s)), 4vw));
    max-width: calc(1100 * var(--reform-grid-s) + min(calc(60 * var(--reform-grid-s)), 4vw));
    margin: 0 auto;
  }

  .reform-card {
    flex: 0 1 calc(550 * var(--reform-grid-s));
    max-width: calc(550 * var(--reform-grid-s));
  }

  .reform-card__media {
    border-radius: calc(8 * var(--reform-grid-s));
  }

  .reform-card__media--compare .reform-card__badges {
    top: calc(18 * var(--reform-grid-s));
    gap: calc(40 * var(--reform-grid-s));
    font-size: calc(15 * var(--reform-text-s));
  }

  .reform-card__body {
    margin: calc(-40 * var(--reform-grid-s)) calc(47 * var(--reform-grid-s)) 0;
    padding: 0 calc(24 * var(--reform-grid-s));
    min-height: 0;
    height: calc(166 * var(--reform-grid-s));
    max-height: calc(166 * var(--reform-grid-s));
    gap: calc(20 * var(--reform-grid-s));
    border-radius: calc(8 * var(--reform-grid-s));
  }

  .reform-card:nth-child(3) .reform-card__body,
  .reform-card:nth-child(4) .reform-card__body {
    min-height: 0;
    height: calc(214 * var(--reform-grid-s));
    max-height: calc(214 * var(--reform-grid-s));
  }

  .reform-card__body::before,
  .reform-card__body::after {
    width: calc(30 * var(--reform-grid-s));
    height: calc(30 * var(--reform-grid-s));
  }

  .reform-card__body::before {
    top: calc(-6 * var(--reform-grid-s));
    left: calc(-6 * var(--reform-grid-s));
  }

  .reform-card__body::after {
    bottom: calc(-6 * var(--reform-grid-s));
    right: calc(-6 * var(--reform-grid-s));
  }

  .reform-card__title {
    font-size: calc(24 * var(--reform-text-s));
  }

  .reform-card__text {
    font-size: calc(15 * var(--reform-text-s));
  }
}


/* --------------------------------------------------------------- PC - CTA --------------------------------------------------------------- */
/* CTA */
.cta {
  margin: calc(40px + 16 * var(--fluid-t)) calc(15px - 15 * var(--fluid-t));
  padding: 0;
  display: flex;
  justify-content: center;
}

/* CTA内部 */
.cta__inner {
  width: 100%;
  max-width: calc(363px + 537 * var(--fluid-t));
  background: var(--color-cta-bg);
  border-radius: 8px;
  padding: 30px var(--pad-x);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  box-shadow: var(--shadow-card);
}

/* CTAタイトル */
.cta__title {
  margin: 0;
  font-weight: 600;
  font-size: calc(1.125rem + 6 * var(--fluid-t));
  letter-spacing: 0.03rem;
  text-align: center;
}

/* CTAタイトル（スタック） */
.cta__title-text--sp {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

/* CTAタイトル行 */
.cta__title-line {
  display: block;
  line-height: 1.34;
}

/* CTAボタン */
.cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  gap: 20px;
  width: 260px;
  max-width: 100%;
  min-height: 59px;
  padding: 20px 15px 20px 50px;
  border-radius: 35px;
  background: linear-gradient(90deg, var(--color-blue-a), var(--color-blue-b));
  color: #fff;
  font-weight: 500;
  font-size: 1rem;
  outline: 2px solid transparent;
  outline-offset: 0;
  transition: outline-color 0.3s ease, outline-offset 0.3s ease;
}

/* CTAボタン（ホバー） */
.cta__button:hover {
  animation: cta-button-light 0.8s infinite;
}

/* CTAボタン（ホバー）アニメーション */
@keyframes cta-button-light {
  0% {
    outline-color: rgba(255, 255, 255);
    outline-offset: 0;
  }

  100% {
    outline-color: transparent;
    outline-offset: 18px;
  }
}

/* CTAボタン（ホバー）アニメーション（低速モーション） */
@media (prefers-reduced-motion: reduce) {
  .cta__button:hover {
    animation: none;
  }
}

/* CTAボタンアイコン */
.cta__button img {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

/* CTAボタンラベル */
.cta__button>span {
  flex-shrink: 0;
  white-space: nowrap;
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {
  .cta {
    --cta-pc-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 984), 1px);
  }

  .cta__inner {
    max-width: calc(363px + 537 * var(--cta-pc-s));
  }
}

/* --------------------------------------------------------------- PC - Price --------------------------------------------------------------- */
/* Price */
.price {
  --ft: var(--fluid-t);
  padding: calc(40px + 8 * var(--ft)) var(--pad-x) calc(50px + 30 * var(--ft));
}

/* Priceセクション見出し */
.price .section-heading {
  margin-bottom: calc(26px + 14 * var(--ft));
}

/* Priceブロック */
.price-block {
  max-width: calc(363px + 537 * var(--ft));
  margin: 0 auto calc(40px + 8 * var(--ft));
  padding-bottom: 4px;
  --price-table-rule: var(--color-gray-heading);
}

/* Priceブロックバナー */
.price-block__banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(60px + 30 * var(--ft));
  margin-bottom: calc(21px - 5 * var(--ft));
  border-radius: calc(7px + 7 * var(--ft));
  border: 4px solid var(--color-orange-light);
  background: var(--color-orange);
  overflow: visible;
}

/* Priceブロックバナーダック */
.price-block__banner-duck {
  position: absolute;
  left: calc(4px + 9 * var(--ft));
  top: -1px;
  transform: rotate(180deg) scaleY(-1);
  z-index: 5;
  width: calc(41px + 15 * var(--ft));
  height: auto;
}

/* Priceブロックバナーフィル */
.price-block__banner-fill {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.4;
  pointer-events: none;
  z-index: 1;
  border-radius: calc(5px + 5 * var(--ft));
  overflow: hidden;
}

/* Priceブロックバナーフィル画像 */
.price-block__banner-fill img {
  width: calc(361px + 532 * var(--ft));
  max-width: none;
  height: calc(58px + 26 * var(--ft));
}

/* Priceブロックバナーティトル */
.price-block__banner-title {
  position: relative;
  z-index: 3;
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.375rem + 8 * var(--ft));
  color: #fff;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
}

/* Priceブロックテーブル */
.price-block__table {
  display: grid;
  grid-template-columns: minmax(0, 281px) minmax(0, 1fr);
  border: 1px solid var(--price-table-rule);
  border-radius: calc(7px + 1 * var(--ft));
  overflow: hidden;
  height: calc(102px + 6 * var(--ft));
  margin-bottom: 16px;
  background: transparent;
}

/* Priceブロック価格 */
.price-block__price {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: calc(1rem + 8 * var(--ft));
  line-height: 1.34;
  border-right: 1px solid var(--price-table-rule);
  background: var(--color-orange-pale);
}

/* Priceブロック仕様 */
.price-block__spec {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: 50px 50px;
  align-content: stretch;
  height: 100%;
  min-height: calc(102px + 6 * var(--ft));
  min-width: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  line-height: 1.6;
}

/* Priceブロック仕様行 */
.price-block__spec div {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 0 calc(12px + 8 * var(--ft)) 0 calc(8px + 12 * var(--ft));
  min-height: 0;
}

/* Priceブロック仕様行（最初） */
.price-block__spec div:first-child {
  background: #fff;
  border-bottom: 1px solid var(--price-table-rule);
}

/* Priceブロック仕様行（最後） */
.price-block__spec div:last-child {
  background: var(--color-cream);
}

/* Priceブロック仕様見出し */
.price-block__spec dt {
  flex-shrink: 0;
  margin: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  font-weight: 700;
  line-height: 1.6;
}

/* Priceブロック仕様データ */
.price-block__spec dd {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  font-weight: 400;
  line-height: 1.6;
}

/* Priceブロックテーブル（スタック） */
.price-block__table--stack {
  display: flex;
  flex-direction: column;
  height: auto;
  border: none;
  background: transparent;
  gap: 0;
}

/* Priceティア */
.price-tier {
  display: grid;
  grid-template-columns: minmax(0, 281px) minmax(0, 1fr);
  min-height: calc(0px + 108 * var(--ft));
  border: 1px solid var(--price-table-rule);
  border-bottom: none;
  background: transparent;
  overflow: hidden;
}

/* Priceティアラベル */
.price-tier__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border-right: 1px solid var(--price-table-rule);
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: calc(1rem + 8 * var(--ft));
  text-align: center;
  gap: calc(2px + 2 * var(--ft));
  background: var(--color-orange-pale);
}

/* Priceティアラベルテキスト */
.price-tier__label p {
  margin: 0;
}

/* Priceティアラベルテキスト（最後） */
.price-tier__label p:last-child {
  line-height: 1.34;
}

/* Priceティア仕様 */
.price-tier__spec {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-rows: 50px 50px;
  align-content: stretch;
  height: 100%;
  min-height: calc(0px + 108 * var(--ft));
  min-width: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  line-height: 1.6;
}

/* Priceティア行 */
.price-tier__row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 0 calc(8px + 12 * var(--ft));
  min-height: 0;
}

/* Priceティア行（最初） */
.price-tier__row:first-child {
  background: #fff;
  border-bottom: 1px solid var(--price-table-rule);
}

/* Priceティア行（最後） */
.price-tier__row:last-child {
  background: var(--color-cream);
}

/* Priceティア見出し */
.price-tier__k {
  flex-shrink: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  font-weight: 700;
  line-height: 1.6;
}

/* Priceティアデータ */
.price-tier__v {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: calc(0.8125rem + 2 * var(--ft));
  font-weight: 400;
  line-height: 1.6;
}

/* Priceフィーチャ */
.price-feature {
  display: flex;
  gap: calc(6px + 24 * var(--ft));
  align-items: flex-start;
  padding: 25px 40px;
  margin-top: calc(16px + 8 * var(--ft));
  background: #fff;
  border: 1px solid var(--color-gold-border);
  border-radius: calc(7px + 1 * var(--ft));
  position: relative;
}

/* Priceフィーチャ（フィーチャー） */
.price-feature::before {
  content: "";
  position: absolute;
  left: -1px;
  top: calc(-45px - 7 * var(--ft));
  width: calc(22px + 4 * var(--ft));
  height: calc(40px + 7 * var(--ft));
  transform-origin: left bottom;
  transform: rotate(90.41deg);
  background: url("../img/price_feature_feather.svg") left bottom / contain no-repeat;
  pointer-events: none;
}

/* Priceフィーチャラベル */
.price-feature__label {
  margin: 0;
  flex: 0 0 auto;
  font-size: calc(1rem + 4 * var(--ft));
  font-weight: 600;
}

/* Priceフィーチャテキスト */
.price-feature__text,
.price-feature__body {
  flex: 1;
  font-size: calc(0.875rem + 1 * var(--ft));
  line-height: 1.6;
  margin: 0;
}

/* Priceフィーチャブロック（次） */
.price-feature__block+.price-feature__block {
  margin-top: 1em;
}

/* Priceフィーチャリード行 */
.price-feature__lead-row {
  margin: 0 0 0.35em;
  font-size: calc(0.875rem + 2 * var(--ft));
  line-height: 1.6;
}

/* Priceフィーチャグレード */
.price-feature__grade {
  font-weight: 700;
  font-size: calc(0.875rem + 2 * var(--ft));
}

/* Priceフィーチャスター */
.price-feature__stars {
  margin-left: 0.2em;
  color: var(--color-star);
  font-weight: 400;
}

/* Priceフィーチャパラグラフ */
.price-feature__para {
  margin: 0;
  font-weight: 400;
  font-size: calc(0.875rem + 1 * var(--ft));
}

/* PC追記（min-width: 768px） */
@media (min-width: 768px) {

  /* PC：Price */
  .price {
    --price-pc-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 984), 1px);
    --ft: var(--price-pc-s);
  }

  /* Priceティア（最後） */
  .price-tier:last-child {
    border-bottom: 1px solid var(--price-table-rule);
    border-radius: 0 0 8px 8px;
  }

  /* Priceティア（最初） */
  .price-tier:first-child {
    border-radius: 8px 8px 0 0;
  }

  /* Priceフィーチャ（テキストがある場合） */
  .price-feature:has(> .price-feature__text) {
    align-items: center;
  }
}


/* --------------------------------------------------------------- PC - Feauter --------------------------------------------------------------- */
/* Feauters */
.feauters {
  position: relative;
  padding: calc(50px - 2 * var(--fluid-t)) var(--pad-x) calc(60px + 12 * var(--fluid-t)) calc(15px + 232 * var(--fluid-t));
  min-height: calc(663px - 23 * var(--fluid-t));
  overflow: hidden;
  border-radius: calc(50px + 50 * var(--fluid-t));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Feauters背景 */
.feauters__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 1;
  pointer-events: none;
}

/* Feauters背景画像 */
.feauters__bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: clamp(48%, calc(48% + (1024px - 100vw) / 256px * 20%), 80%) center;
}

/* Feautersタイトル */
.feauters__title {
  position: relative;
  z-index: 2;
  margin: 0 0 calc(26px - 2 * var(--fluid-t));
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.75rem + 4 * var(--fluid-t));
  text-align: left;
}

/* Feautersリボン */
.feauters__ribbon {
  position: relative;
  z-index: 2;
  width: calc(277px + 50 * var(--fluid-t));
  height: calc(271px + 49 * var(--fluid-t));
  margin: 0 0 32px -14px;
  flex-shrink: 0;
}

/* Feautersリボン画像 */
.feauters__ribbon-img {
  position: absolute;
  inset: 0;
  width: calc(277px + 50 * var(--fluid-t));
  height: calc(271px + 49 * var(--fluid-t));
  object-fit: contain;
}

/* Feautersリボンリード */
.feauters__ribbon-lead {
  position: absolute;
  left: calc(56 / 327 * 100%);
  right: 4%;
  top: 22%;
  transform: none;
  margin: 0;
  width: auto;
  text-align: left;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.5rem + 6 * var(--fluid-t));
}

/* Feautersリボンスタット */
.feauters__ribbon-stat {
  position: absolute;
  left: calc(75 / 327 * 100%);
  top: 38%;
  transform: none;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
  margin: 0;
}

/* Feautersリボンスタット垂直 */
.feauters__ribbon-stat-vertical {
  display: flex;
  flex-direction: column;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: calc(1.375rem - 2 * var(--fluid-t));
  line-height: 1.06;
  margin-right: -0.1em;
}

/* Feautersリボンスタット数字 */
.feauters__ribbon-stat-num {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(5.625rem + 10 * var(--fluid-t));
  line-height: 0.85;
  letter-spacing: 0;
  margin-right: -0.1em;
}

/* Feautersリボンスタット単位 */
.feauters__ribbon-stat-unit {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1;
}

/* Feautersリボンスタットオクト */
.feauters__ribbon-stat-oku {
  font-size: calc(3.875rem + 10 * var(--fluid-t));
}

/* Feautersリボンスタットハリ */
.feauters__ribbon-stat-hari {
  font-size: 1.5rem;
}

/* Feautersリボンスレッド */
.feauters__ribbon-thread {
  position: absolute;
  left: calc(210 / 327 * 100%);
  right: auto;
  bottom: 36%;
  top: auto;
  width: 102px;
  height: 83px;
  pointer-events: none;
}

/* Feautersリボンスレッド画像 */
.feauters__ribbon-thread img {
  display: block;
  width: calc(79px + 23 * var(--fluid-t));
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Feauters達成リスト */
.feauters__achievements {
  position: relative;
  z-index: 2;
  list-style: none;
  margin: 0 0 0 -67px;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(10px + 5 * var(--fluid-t));
}

/* Feauters達成リストアイテム */
.feauters__achievements li {
  display: flex;
  align-items: center;
  gap: calc(10px + 5 * var(--fluid-t));
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: calc(1.25rem + 6 * var(--fluid-t));
  letter-spacing: 0.0325rem;
}

/* PC追記（中間帯：feauters zoom） */
@media (min-width: 768px) and (max-width: 1280px) {
  .feauters {
    zoom: 0.85;
    /* Fallback applied */
  }
}

/* 768px〜1024px中間帯：feauters ribbon テキストをbox内に収める
 * zoom は vw 参照の --fluid-t に影響しないため、
 * ribbon-lead / ribbon-stat のサイズを zoom 後の実効幅に合わせて上限を設ける。
 * 820px（iPad Air 4th Gen Chrome縦）での zoom ≈ 0.73
 * → ribbon幅は約277px × 0.73 = 202px相当
 * ribbon-lead は overflow を起こさないよう font-size を clamp で抑制する。
 */
/* @media (min-width: 768px) and (max-width: 1024px) {
  .feauters__ribbon-lead {
    font-size: clamp(1rem, calc(0.75rem + 2vw), 1.5rem);
  }

  .feauters__ribbon-stat-num {
    font-size: clamp(4rem, calc(2rem + 6vw), 5.625rem);
  }

  .feauters__ribbon-stat-oku {
    font-size: clamp(2.5rem, calc(1.5rem + 3.5vw), 3.875rem);
  }

  .feauters__ribbon-stat-vertical {
    font-size: clamp(0.875rem, calc(0.5rem + 1.5vw), 1.375rem);
  }
} */

/* --------------------------------------------------------------- PC - Flow --------------------------------------------------------------- */

/* Flow */
.flow {
  padding: calc(40px + 16 * var(--fluid-t)) var(--pad-x) calc(50px + 22 * var(--fluid-t));
}

/* Flow見出し */
.flow .section-heading {
  margin-bottom: calc(30px + 10 * var(--fluid-t));
}

/* Flowステップリスト */
.flow__steps {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 22px;
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 1162px;
}

/* Flowステップ */
.flow-step {
  position: relative;
  width: 274px;
  padding-top: calc(28px + 10 * var(--fluid-t));
}

/* Flowステップカード */
.flow-step__card {
  display: flex;
  flex-direction: column;
  height: calc(280px + 62 * var(--fluid-t));
  border: 1px solid var(--color-orange);
  border-radius: calc(6px + 2 * var(--fluid-t));
  background: #fff;
  overflow: hidden;
}

/* Flowステップバッジ */
.flow-step__badge {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  width: calc(56px + 19 * var(--fluid-t));
  height: calc(56px + 19 * var(--fluid-t));
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 700;
  background: url("../img/58c6da73-37f7-483c-87a3-a63e3580f2d5.svg") center / contain no-repeat;
}

/* Flowステップバッジテキスト（最初） */
.flow-step__badge span:first-child {
  font-size: calc(0.75rem + 4 * var(--fluid-t));
  letter-spacing: 0.02rem;
}

/* Flowステップバッジテキスト（最後） */
.flow-step__badge span:last-child {
  font-size: calc(1.125rem + 6 * var(--fluid-t));
  letter-spacing: 0.03rem;
}

/* Flowステップメディア */
.flow-step__media {
  flex: 0 0 calc(100px + 53 * var(--fluid-t));
  height: calc(100px + 53 * var(--fluid-t));
  border-radius: 0;
  overflow: hidden;
}

/* Flowステップメディア画像 */
.flow-step__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Flowステップメディア（2番目） */
.flow-step:nth-child(2) .flow-step__media {
  flex-basis: calc(100px + 54 * var(--fluid-t));
  height: calc(100px + 54 * var(--fluid-t));
}

/* Flowステップメディア（最初） */
.flow-step__card>.flow-step__media:first-child {
  border-radius: calc(6px + 2 * var(--fluid-t)) calc(6px + 2 * var(--fluid-t)) 0 0;
}

/* Flowステップタイトル */
.flow-step__title {
  flex: 0 0 auto;
  margin: 0;
  padding: calc(14px + 11 * var(--fluid-t)) calc(8px + 12 * var(--fluid-t)) calc(6px + 4 * var(--fluid-t));
  background: #fff;
  font-size: calc(0.9375rem + 5 * var(--fluid-t));
  font-weight: 600;
  line-height: 1.34;
  text-align: center;
}

/* Flowステップテキスト */
.flow-step__text {
  flex: 1 1 auto;
  margin: 0;
  padding: calc(4px + 6 * var(--fluid-t)) calc(10px + 10 * var(--fluid-t)) calc(14px + 6 * var(--fluid-t));
  min-height: 0;
  background: #fff;
  font-size: calc(0.75rem + 3 * var(--fluid-t));
  font-weight: 400;
  line-height: 1.6;
}

/* PC中間幅（768px〜1024px） */
@media (min-width: 768px) and (max-width: 1024px) {

  /* Flowステップリスト */
  .flow__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 22px;
    max-width: 660px;
    padding: 0;
  }

  /* Flowステップ：カラム幅に追従 */
  .flow-step {
    width: 100%;
  }
}

/* --------------------------------------------------------------- PC - FAQ --------------------------------------------------------------- */

/* FAQ */
.faq {
  padding: 0 var(--pad-x);
  margin: calc(40px + 8 * var(--fluid-t)) 0 calc(70px + 30 * var(--fluid-t));
}

/* FAQ見出し */
.faq .section-heading {
  margin-bottom: calc(26px + 14 * var(--fluid-t));
}

/* FAQリスト */
.faq__list {
  max-width: calc(363px + 537 * var(--fluid-t));
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: calc(15px + 5 * var(--fluid-t));
}

/* FAQアイテム */
.faq-item {
  background: #fff;
  border: 1px solid var(--color-gold-border);
  border-radius: calc(7px + 3 * var(--fluid-t));
  padding: 20px calc(15px + 9 * var(--fluid-t));
  box-shadow: var(--shadow-card);
}

/* FAQアイテムQ行 */
.faq-item__q-row,
.faq-item__a-row {
  display: flex;
  align-items: flex-start;
  gap: calc(8px + 4 * var(--fluid-t));
}

/* FAQアイテムマーク */
.faq-item__mark {
  flex: 0 0 auto;
  min-width: calc(18px + 4 * var(--fluid-t));
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: calc(1.125rem + 4 * var(--fluid-t));
  line-height: 1.34;
}

/* FAQアイテムマーク（Q） */
.faq-item__mark--q {
  color: var(--color-text);
}

/* FAQアイテムマーク（A） */
.faq-item__mark--a {
  color: var(--color-orange);
}

/* FAQアイテムQテキスト */
.faq-item__q-text,
.faq-item__a-text {
  margin: 0;
  font-size: calc(0.9375rem + 3 * var(--fluid-t));
  font-weight: 600;
  line-height: 1.34;
}

/* FAQアイテムAテキスト */
.faq-item__a-text {
  font-size: calc(0.875rem + 1 * var(--fluid-t));
  font-weight: 400;
}

/* FAQアイテムディバイダ */
.faq-item__divider {
  height: 1px;
  margin: calc(16px - 4 * var(--fluid-t)) 0;
  background: url("../img/f3e5d372-2092-4825-b7cc-c899e60651c3.svg") center / 100% 1px no-repeat;
  opacity: 0.6;
}

/* --------------------------------------------------------------- PC - Footer --------------------------------------------------------------- */
/* PC追記（min-width: 768px） */
@media (min-width: 768px) {

  /* FAQ: PC */
  .faq__list {
    --faq-s: min(1px, calc(100vw / 1024));
    max-width: calc(900 * var(--faq-s));
    gap: calc(20 * var(--faq-s));
  }

  .faq-item {
    border-radius: calc(10 * var(--faq-s));
    padding: calc(20 * var(--faq-s)) calc(24 * var(--faq-s));
  }

  .faq-item__q-row,
  .faq-item__a-row {
    gap: calc(12 * var(--faq-s));
  }

  .faq-item__mark {
    min-width: calc(22 * var(--faq-s));
    font-size: calc(22 * var(--faq-s));
  }

  .faq-item__q-text,
  .faq-item__a-text {
    font-size: calc(18 * var(--faq-s));
  }

  .faq-item__a-text {
    font-size: calc(15 * var(--faq-s));
  }

  .faq-item__divider {
    margin: calc(12 * var(--faq-s)) 0;
  }

  /* Footer */
  .site-footer {
    /* 1280px 以上＝等倍（1.0）、1280px 未満＝等比縮小 */
    --footer-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 1240), 1px);
    position: relative;
    z-index: 1;
    background: var(--color-footer);
    padding: calc(56 * var(--footer-s)) var(--pad-x) calc(72 * var(--footer-s));
    border-radius: calc(100 * var(--footer-s)) calc(100 * var(--footer-s)) 0 0;
    color: #fff;
    min-height: calc(396 * var(--footer-s));
  }

  /* Footerインナー */
  .site-footer__inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    column-gap: calc(62 * var(--footer-s));
    width: 100%;
    max-width: calc(1163 * var(--footer-s));
    margin-left: auto;
    margin-right: auto;
  }

  /* Footerブランド */
  .site-footer__brand {
    flex: 0 0 auto;
    width: calc(339 * var(--footer-s));
    max-width: none;
    margin-top: calc(14 * var(--footer-s));
  }

  /* Footerロゴ */
  .site-footer__logo img {
    display: block;
    width: calc(330 * var(--footer-s));
    height: auto;
    max-width: none;
  }

  /* Footerフリーダイヤル */
  .site-footer__freedial {
    display: flex;
    align-items: center;
    gap: calc(12 * var(--footer-s));
    margin: calc(20 * var(--footer-s)) 0 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: calc(40 * var(--footer-s));
    line-height: 1;
    letter-spacing: calc(1.6 * var(--footer-s));
  }

  /* Footerフリーダイヤルアイコン */
  .site-footer__freedial-icon img {
    display: block;
    width: calc(51.819 * var(--footer-s));
    height: auto;
  }

  /* Footerフリーダイヤルリンク */
  .site-footer__freedial a {
    color: #fff;
  }

  /* Footerストアリスト */
  .site-footer__stores {
    display: flex;
    flex-wrap: nowrap;
    gap: calc(20 * var(--footer-s));
    flex: 0 0 auto;
    justify-content: flex-start;
    min-width: 0;
  }

  /* Footerストア */
  .site-footer__store {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: calc(371 * var(--footer-s));
    max-width: 100%;
    height: calc(158 * var(--footer-s));
    margin: 0;
    padding: calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(21 * var(--footer-s));
    border: 1px solid #fff;
    border-radius: calc(8 * var(--footer-s));
    text-align: center;
    font-style: normal;
  }

  /* Footerストア（最後） */
  .site-footer__store:last-of-type {
    padding: calc(20 * var(--footer-s));
  }

  /* Footerストア名 */
  .site-footer__store-name {
    display: block;
    font-size: calc(24 * var(--footer-s));
    font-weight: 600;
    letter-spacing: calc(0.48 * var(--footer-s));
    line-height: 1.34;
    margin-bottom: calc(8 * var(--footer-s));
  }

  /* Footerストア住所 */
  .site-footer__store-address {
    margin: 0 0 calc(8 * var(--footer-s));
    font-size: calc(14 * var(--footer-s));
    font-weight: 400;
    line-height: 1.34;
  }

  /* Footerストア電話 */
  .site-footer__store-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(9 * var(--footer-s));
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: calc(24 * var(--footer-s));
    letter-spacing: calc(0.96 * var(--footer-s));
    line-height: 1.34;
  }

  /* Footerストア電話アイコン */
  .site-footer__store-tel img {
    width: calc(23 * var(--footer-s));
    height: calc(23 * var(--footer-s));
  }

  /* Footerストア電話リンク */
  .site-footer__store-tel a {
    color: #fff;
  }

  /* Footerメタ */
  .site-footer__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: calc(12 * var(--footer-s));
    width: 100%;
    max-width: calc(1163 * var(--footer-s));
    margin-top: calc(50 * var(--footer-s));
    margin-left: auto;
    margin-right: auto;
  }

  /* Footer法令 */
  .site-footer__legal {
    display: flex;
    gap: calc(20 * var(--footer-s));
    font-size: calc(14 * var(--footer-s));
    font-weight: 400;
    line-height: 1.34;
  }

  /* Footer法令リンク */
  .site-footer__legal a {
    color: #fff;
  }

  /* Footerコピーライト */
  .site-footer__copy {
    margin: 0;
    font-size: calc(14 * var(--footer-s));
    font-weight: 400;
    line-height: 1.34;
    color: #fff;
  }

  /* Footerコピーライト小 */
  .site-footer__copy small {
    font-size: inherit;
    font-weight: inherit;
  }
}


/* --------------------------------------------------------------- SP - 共通 --------------------------------------------------------------- */
/* SPのみ表示 */
.sp-only {
  display: none !important;
}

@media (max-width: 767px) {

  /* サイト全体の背景色 */
  body {
    background: #f8f5f2;
  }

  /* 横インデント */

  .sp-only {
    display: revert !important;
  }

  .pc-only {
    display: none !important;
  }
}

/* ヘッダーSP版（1024px以下で適用） */
@media (max-width: 1024px) {

  .site-header__hp-list {
    display: none !important;
  }

  #main-content,
  #point,
  #about,
  #reform,
  #price,
  #feauters,
  #flow,
  #faq {
    scroll-margin-top: 65px;
  }

  /* --------------------------------------------------------------- SP - Header --------------------------------------------------------------- */
  /* Header */
  .site-header {
    background: linear-gradient(90deg, #fff 0%, var(--color-header-end) 100%);
    height: 65px;
    z-index: 10000;
    box-shadow: var(--shadow-header), inset 0 -1px 0 0 #ff8600;
  }

  /* Headerインナー */
  .site-header__inner {
    height: 65px;
    align-items: stretch;
    position: relative;
    z-index: 1;
  }

  /* Headerロゴ (767px以下で縮小) */
  @media (max-width: 767px) {
    .site-header__logo {
      flex: 1 1 auto;
      margin-right: 0;
      min-width: 0;
      align-self: center;
    }

    .site-header__logo img {
      width: auto;
      height: 30px;
      max-width: 170px;
    }
  }

  /* Headerナビゲーション */
  .site-header__nav {
    position: fixed;
    top: 65px;
    left: 0;
    z-index: 9990;
    display: block;
    width: 100%;
    height: calc(100vh - 65px);
    background: rgba(0, 0, 0, 0.5);
    box-shadow: none;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.28s ease, visibility 0.28s ease;
    pointer-events: none;
  }

  /* Headerキャッチコピー */
  .site-header__tagline {
    display: none;
  }

  /* Headerナビゲーション */
  .site-header__nav.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  /* Headerドロワーパネル */
  .site-header__nav-panel {
    position: relative;
    margin-left: calc(100% - 319px);
    width: 319px;
    height: 100%;
    background: #f8f5f2;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.3s ease;
  }

  /* Headerとメニューの間のシャドウレイヤー */
  .site-header__nav-panel::before {
    content: "";
    position: sticky;
    top: 0;
    left: 0;
    display: block;
    width: 319px;
    height: 14px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
    z-index: 3;
  }

  .site-header__nav.is-open .site-header__nav-panel {
    transform: translateX(0);
  }

  /* Headerナビゲーションリスト */
  .site-header__nav-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    margin: 0;
    list-style: none;
  }

  /* Headerナビゲーション項目 */
  .site-header__nav-item {
    width: 100%;
    border-bottom: 1px dashed #c4beb3;
  }

  /* Headerナビゲーションリンク */
  .site-header__nav-link {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-height: 61px;
    padding: 0 20px;
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.34;
    color: #473a1c;
    text-decoration: none;
    letter-spacing: 0;
  }

  /* Headerナビゲーション第二階層 */
  .site-header__nav-sublist {
    margin: 0 20px 20px;
    padding: 0;
    list-style: none;
    border-radius: 7px;
    overflow: hidden;
    background: #eae6e3;
  }

  .site-header__nav-sublink {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-height: 60px;
    padding: 0 20px;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.34;
    color: #473a1c;
    text-decoration: none;
  }

  .site-header__nav-sublist li:not(:last-child) .site-header__nav-sublink {
    border-bottom: 1px dashed #c4beb3;
  }

  /* Headerナビ開閉中は背面スクロール禁止 */
  body.menu-open {
    overflow: hidden;
  }

  /* Headerお問い合わせ */
  .site-header__contact {
    flex: 0 0 65px;
    align-self: stretch;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 65px;
    min-width: 65px;
    max-width: 65px;
    height: 100%;
    min-height: 65px;
    padding: 0;
    gap: 0;
  }

  /* Headerお問い合わせラベル */
  .site-header__contact-label {
    display: none;
  }

  /* Headerお問い合わせアイコン */
  .site-header__contact-icon img {
    width: 36px;
    height: 36px;
    display: block;
  }

  /* Headerハンバーガーメニュー */
  .site-header__hamburger {
    flex: 0 0 65px;
    align-self: stretch;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 65px;
    min-width: 65px;
    max-width: 65px;
    height: auto;
    min-height: 65px;
    margin-left: 0;
    padding: 7px 0 6px;
    background: var(--color-orange);
    border: none;
    cursor: pointer;
    position: relative;
    z-index: 70;
  }

  /* Headerハンバーガーメニュー棒のアニメ軸 */
  .site-header__hamburger-bar {
    transform-origin: center;
    transition: transform 0.28s ease, opacity 0.2s ease;
  }

  /* Headerハンバーガー開いた状態 */
  .site-header__hamburger.is-open .site-header__hamburger-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .site-header__hamburger.is-open .site-header__hamburger-bar:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
  }

  .site-header__hamburger.is-open .site-header__hamburger-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-header__hamburger.is-open .site-header__hamburger-label {
    font-size: 0;
  }

  .site-header__hamburger.is-open .site-header__hamburger-label::before {
    content: "CLOSE";
    font-size: 0.625rem;
  }

  /* Headerハンバーガーメニュー棒 */
  .site-header__hamburger-bars {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    flex-shrink: 0;
  }

  /* Headerハンバーガーメニュー棒 */
  .site-header__hamburger-bar {
    display: block;
    flex-shrink: 0;
    width: 28px;
    height: 2px;
    background: #fff;
    border-radius: 1px;
  }

  /* Headerハンバーガーメニューラベル */
  .site-header__hamburger-label {
    display: block;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    font-weight: 400;
    font-size: 0.625rem;
    line-height: 1;
    letter-spacing: 0.0125rem;
    color: #fff;
    text-align: center;
    pointer-events: none;
  }
}

/* 768px 〜 1024px のヘッダー高さ調整 */
@media (min-width: 768px) and (max-width: 1024px) {
  .site-header {
    height: 70px;
  }

  .site-header__inner {
    height: 70px;
  }

  .site-header__logo {
    margin-right: auto;
  }

  .site-header__nav {
    top: 70px;
    height: calc(100vh - 70px);
  }

  #main-content,
  #point,
  #about,
  #reform,
  #price,
  #feauters,
  #flow,
  #faq {
    scroll-margin-top: 70px;
  }

  .site-header__contact,
  .site-header__hamburger {
    flex: 0 0 70px;
    width: 70px;
    min-width: 70px;
    max-width: 70px;
  }
}

/* 767px以下のSP版レイアウト再開 */
@media (max-width: 767px) {

  /* SP全体で --fluid-t を 0 に固定する
   * --fluid-t は 393px 以上で正の値になるため、393〜767px の中間帯で
   * PC用のfluid計算値がSPレイアウトに混入するのを防ぐ。
   * Point等の独自スケーリング（--point-zoom）はこの影響を受けない。 */
  :root {
    --fluid-t: 0px;
  }

  /* --------------------------------------------------------------- SP - FV --------------------------------------------------------------- */
  /* FV */
  .fv {
    height: 600px;
    min-height: 0;
    border-radius: 0 0 50px 50px;
    box-shadow: none;
  }

  /* FVグリッド */
  .fv__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 195px 209px 196px;
    grid-template-areas:
      "tl tl"
      "tr bl"
      "br br";
  }

  /* FVセル（左上） */
  .fv__cell--tl {
    grid-area: tl;
  }

  /* FVセル（右上） */
  .fv__cell--tr {
    grid-area: tr;
  }

  /* FVセル（左下） */
  .fv__cell--bl {
    grid-area: bl;
  }

  /* FVセル（右下） */
  .fv__cell--br {
    grid-area: br;
  }

  /* FVリードコンテナ */
  .fv__lead-circle {
    margin-top: 0;
  }

  /* FVリードコンテンツコンテナ */
  .fv__lead-content {
    width: min(320px, calc(var(--fv-circle-size) * 0.92));
    max-width: min(320px, calc(var(--fv-circle-size) * 0.92));
    margin-top: -8px;
    gap: 0;
  }

  /* FVカウンター */
  .fv__counter {
    gap: 4px;
  }

  /* FVカウンターリーブラウン */
  .fv__counter-laurel img {
    width: 29px;
    max-height: 86px;
  }

  /* FVカウンター値 */
  .fv__counter-value {
    line-height: 1;
  }

  /* FVカウンターラベル */
  .fv__counter-label {
    margin: 4px 0 0;
    letter-spacing: 0;
  }

  /* FV見出し */
  .fv__heading {
    margin: 14px 0 0;
    padding: 0;
    line-height: 1.6;
    letter-spacing: clamp(0.040625rem, min(0.078vw, 0.104vh), 0.065rem);
    text-shadow: none;
  }

  /* FVスクロール */
  .fv__scroll {
    top: 50%;
    bottom: auto;
    left: 50%;
    margin-top: 0;
    gap: 8px;
    transform: translate(-50%,
        calc(-50% + var(--fv-circle-size) / 2 - clamp(4px, calc(var(--fv-circle-size) * 0.0125), 8px)));
  }

  /* FVスクロールラベル */
  .fv__scroll-label {
    letter-spacing: 0.015rem;
  }

  /* FVスクロールラインラップ */
  .fv__scroll-line-wrap {
    width: 30px;
    height: 30px;
  }

  /* FVスクロールライン */
  .fv__scroll-line {
    width: 30px;
    height: 10px;
  }

  /* --------------------------------------------------------------- SP - Point --------------------------------------------------------------- */
  /* Point変数 */
  :root {
    --vw-capped: min(100vw, 520px);
    --pf: clamp(0px, calc((var(--vw-capped) - 393px) / 630), 1px);
    /* --point-s logic removed */
    /* --point-zoom logic removed */
  }

  /* Pointコンテナ */
  #point.point {
    width: 100%;
    max-width: var(--w-page);
    /* margin に --point-zoom (px÷px) を使うと IACVT で 0 になる。
       SP範囲(393〜767px)では 30px 固定で十分。320px は clamp 下限で 24px。 */
    margin: clamp(24px, 7.634vw, 34.5px) auto;
    padding: 0;
    overflow-x: clip;
  }

  /* Pointリスト */
  .point__list {
    width: 393px;
    max-width: none;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    zoom: 1;
    /* Fallback applied */
    display: grid;
    grid-template-columns: max-content max-content;
    grid-template-rows: 143px auto;
    grid-template-areas:
      "a a"
      "b c";
    column-gap: 17px;
    row-gap: 0;
    padding: 0 33px;
    justify-items: center;
    align-items: start;
  }

  /* Pointアイテム */
  .point__item {
    position: relative;
    width: 155px;
    height: 155px;
    min-width: 0;
    min-height: 0;
    text-align: center;
    overflow: visible;
    place-self: start center;
  }

  /* Pointアイテム1 */
  .point__item:nth-child(1) {
    grid-area: a;
    z-index: 1;
  }

  /* Pointアイテム2 */
  .point__item:nth-child(2) {
    grid-area: b;
  }

  /* Pointアイテム3 */
  .point__item:nth-child(3) {
    grid-area: c;
  }

  /* PointPC装飾（非表示） */
  .point__decor--pc {
    display: none !important;
  }

  /* PointSP装飾 */
  .point__decor--sp {
    position: absolute;
    top: 0;
    left: 0;
    width: 155px;
    height: 155px;
    box-sizing: border-box;
    transform: none;
    pointer-events: none;
  }

  /* PointSP装飾（円） */
  .point__sp-circle {
    position: absolute;
    top: 0;
    left: 0;
    width: 155px;
    height: 155px;
    display: block;
    max-width: none;
  }

  /* PointSP装飾（羽根） */
  .point__sp-feather {
    position: absolute;
    top: -5px;
    left: -5px;
    width: 171.013px;
    height: 171.013px;
    display: block;
    max-width: none;
  }

  /* Pointコンテンツ */
  .point__content {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    box-sizing: border-box;
    width: 155px;
    height: 155px;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  /* Pointテキスト（小） */
  .point .point__line-rest--sm {
    font-size: 12px;
  }

  /* Point価格コンテナ */
  .point__price {
    margin-bottom: 0;
    font-weight: 600;
  }

  /* Point価格カラー指定 */
  .point .point__price-yen,
  .point .point__price-tax {
    color: var(--color-text);
  }

  /* Point価格数値 */
  .point__price-num {
    font-size: 26px;
  }

  /* Point価格単位 */
  .point__price-yen {
    font-size: 14px;
  }

  /* Point価格税込 */
  .point__price-tax {
    font-size: 10px;
  }

  /* Pointサブタイトル */
  .point__title-sub {
    font-size: 14px;
    font-weight: 600;
  }

  /* Point注釈 */
  .point__note {
    margin: 5px 0 0;
    font-weight: 400;
    font-size: 9px;
    line-height: 1.34;
  }

  /* Pointタイトル（スタック） */
  .point__title--stack {
    font-size: 14px;
    line-height: 1.34;
    gap: 2px;
  }

  /* Pointアクセント */
  .point__accent,
  .point__accent--lg {
    font-size: 22px;
  }

  /* Pointテキスト（標準） */
  .point .point__line-rest:not(.point__line-rest--sm) {
    font-size: 14px;
  }

  /* --------------------------------------------------------------- SP - About --------------------------------------------------------------- */
  /* About */
  .about {
    overflow: hidden;
  }

  /* About背景画像 */
  .about__bg-img {
    object-position: center top;
  }

  /* Aboutセクション見出し */
  .section-heading {
    margin-bottom: 18px;
  }

  /* Aboutセクション見出しアイコン */
  .section-heading__icon {
    margin: 0 0 6px;
  }

  /* Aboutセクション見出しアイコン画像 */
  .section-heading__icon img {
    width: 36px;
  }

  /* Aboutセクション見出しタイトル */
  .section-heading__title {
    line-height: 1.34;
  }

  /* About紹介文 */
  .about__intro {
    padding: 0;
    font-weight: 600;
    font-size: calc(0.9375rem + 6 * var(--fluid-t));
    line-height: 2;
    zoom: 1;
  }

  /* About比較 */
  .about__compare {
    margin: 0 auto 20px;
    width: 100%;
  }

  /* About比較画像 */
  .about__compare-images {
    align-items: flex-end;
    justify-content: center;
  }

  /* About比較画像（最初） */
  .about__compare-images>img:first-child {
    object-fit: cover;
  }

  /* About比較画像（最後） */
  .about__compare-images>img:last-child {
    object-fit: cover;
  }

  .about__compare-label {
    letter-spacing: 0.03rem;
    line-height: 1.2;
  }

  /* AboutSP比較グリッド */
  .about__grid-sp {
    display: flex;
    flex-direction: column;
    gap: calc(16px + 6 * var(--fluid-t));
    width: 100%;
    max-width: calc(363px + 537 * var(--fluid-t));
    margin: 0 auto;
  }

  /* AboutSP比較グリッド行 */
  .about-grid-sp__row {
    display: flex;
    flex-direction: column;
    gap: 1px;
  }

  /* AboutSP比輻軸 */
  .about-grid-sp__axis {
    margin: 16px 0 4px;
    padding: calc(12px + 4 * var(--fluid-t)) calc(8px + 4 * var(--fluid-t));
    border-radius: calc(6px + 2 * var(--fluid-t));
    font-weight: 600;
    font-size: calc(1rem + 4 * var(--fluid-t));
    line-height: 1.34;
    color: var(--color-text);
    text-align: center;
    letter-spacing: 0.04rem;
  }

  /* 最初の行の見出し */
  .about-grid-sp__row:first-child .about-grid-sp__axis {
    margin-top: 0;
  }

  /* AboutSP比輻ヘッダ */
  .about-grid-sp__heads,
  .about-grid-sp__cells {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(4px + 2 * var(--fluid-t));
  }

  .about-grid-sp__cells {
    min-height: calc(109px + 21 * var(--fluid-t));
  }

  /* AboutSP比輻ヘッダ */
  .about-grid-sp__head {
    margin: 0;
    padding: calc(12px + 4 * var(--fluid-t)) calc(8px + 4 * var(--fluid-t));
    min-height: calc(44px + 8 * var(--fluid-t));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(5px + 2 * var(--fluid-t));
    font-weight: 600;
    font-size: calc(0.875rem + 2 * var(--fluid-t));
    line-height: 1.34;
    text-align: center;
  }

  /* AboutSP比輻ヘッダ（前） */
  .about-grid-sp__head--before {
    background: var(--color-gray-heading);
    color: var(--color-text);
  }

  /* AboutSP比輻ヘッダ（後） */
  .about-grid-sp__head--after {
    background: var(--color-orange);
    color: #fff;
  }

  /* AboutSP比輻セル */
  .about-grid-sp__cell {
    margin: 0;
    padding: calc(16px + 4 * var(--fluid-t)) calc(8px + 4 * var(--fluid-t));
    border-radius: calc(5px + 2 * var(--fluid-t));
    font-weight: 400;
    font-size: calc(0.75rem + 2 * var(--fluid-t));
    line-height: 1.6;
    color: #000;
  }

  /* AboutSP比輻セル（前） */
  .about-grid-sp__cell--before {
    background: var(--color-gray-cell);
  }

  /* AboutSP比輻セル（後） */
  .about-grid-sp__cell--after {
    background: var(--color-peach-cell);
  }

  /* --------------------------------------------------------------- SP - Reform --------------------------------------------------------------- */

  /* Reformバナー */
  .reform__banner {
    height: auto;
    aspect-ratio: 363 / 60;
  }

  /* Reformバナー見出し */
  .reform__banner-title {
    position: absolute;
    left: 0;
    right: 0;
    top: -10px;
    bottom: 0;
    z-index: 2;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: calc(1.125rem + 9.28 * var(--fluid-t));
    letter-spacing: 0;
    line-height: 1.34;
    text-align: center;
    color: #fff;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
  }

  /* Reformグリッド */
  .reform__grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    row-gap: calc(20px + 8 * var(--fluid-t));
    column-gap: 0;
    max-width: none;
    padding: 0;
  }

  /* Reformカード */
  .reform-card {
    margin: 0 auto;
  }

  /* Reformカードボディ */
  .reform-card__body {
    width: calc(100% - 32px);
    max-width: none;
    margin: -40px auto 0;
    padding: 20px 15px;
  }

  /* Reformカード見出し */
  .reform-card__title {
    letter-spacing: 0.0225rem;
  }

  /* --------------------------------------------------------------- SP - CTA --------------------------------------------------------------- */
  /* CTA */
  .cta__inner {
    width: 100%;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(71, 58, 28, 0.08);
  }

  /* CTAタイトル */
  .cta__title {
    letter-spacing: 0.0225rem;
    line-height: 1.34;
    font-weight: 600;
  }


  /* --------------------------------------------------------------- SP - Price --------------------------------------------------------------- */
  .price {
    padding-top: 10px;
  }

  /* バナー間隔 */
  .price-block__banner {
    border-width: 2px;
    overflow: visible;
  }

  /* Priceバナー鴨 */
  .price-block__banner-duck {
    top: -1px;
    z-index: 5;
    transform: rotate(180deg) scaleY(-1);
  }

  /* Priceバナー塗り */
  .price-block__banner-fill {
    opacity: 0.35;
    z-index: 1;
    overflow: hidden;
  }

  /* Priceバナー見出し */
  .price-block__banner-title {
    letter-spacing: calc(0.0275rem + 0.16 * var(--fluid-t));
  }

  /* Priceブロック */
  .price-block {
    --price-table-rule: var(--color-price-table-border);
  }

  /* PriceTier（最後） */
  .price-tier:last-child {
    border-bottom: none;
    border-radius: 0;
  }

  /* PriceTier（最初） */
  .price-tier:first-child {
    border-radius: 0;
  }

  /* Priceブロックテーブル */
  .price-block__table {
    grid-template-columns: 113px 1fr;
    border: 1px solid var(--price-table-rule);
    overflow: hidden;
    background: transparent;
    /* 子背景が border の内側に収まるよう、塗り基準を padding-box に揃える */
    background-clip: padding-box;
    height: auto;
  }

  /* Priceブロックテーブル価格 */
  .price-block__price,
  .price-block__spec div {
    background-clip: padding-box;
  }

  /* Priceブロックテーブル価格 */
  .price-block__price {
    font-family: var(--font-serif);
    font-weight: 600;
    line-height: 1.34;
    border-right: 1px solid var(--price-table-rule);
    padding: 0 4px;
    text-align: center;
    background: var(--color-orange-pale);
  }

  /* Priceブロックテーブル仕様 */
  .price-block__spec {
    display: grid;
    grid-template-rows: 50px 50px;
    align-content: stretch;
    height: auto;
    padding: 0;
    gap: 0;
    line-height: 1.6;
  }

  /* Priceブロックテーブル仕様行 */
  .price-block__spec div {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 8px;
  }

  /* Priceブロックテーブル仕様行（最初） */
  .price-block__spec div:first-child {
    background: #fff;
    border-bottom: 1px solid var(--price-table-rule);
  }

  /* Priceブロックテーブル仕様行（最後） */
  .price-block__spec div:last-child {
    background: var(--color-cream);
  }

  /* Priceブロックテーブル仕様見出し */
  .price-block__spec dt {
    display: inline;
    font-weight: 700;
    line-height: 1.6;
  }

  /* Priceブロックテーブル仕様データ */
  .price-block__spec dd {
    display: inline;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
  }

  /* Priceブロックテーブル（SP） */
  .price-block__table--stack {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0 auto 16px;
    padding: 0;
    gap: 0;
    width: 100%;
    border: 1px solid var(--price-table-rule);
    border-radius: 7px;
    overflow: hidden;
    background: transparent;
    background-clip: padding-box;
  }

  /* PriceTier */
  .price-tier {
    display: grid;
    grid-template-columns: 113px 1fr;
    grid-template-rows: auto;
    align-items: stretch;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  /* PriceTier（最後） */
  .price-tier:not(:last-child) {
    border-bottom: 1px solid var(--price-table-rule);
  }

  /* PriceTierラベル */
  .price-tier__label {
    padding: 8px 4px;
    border-right: 1px solid var(--price-table-rule);
    background: var(--color-orange-pale);
    background-clip: padding-box;
    align-self: stretch;
  }

  /* PriceTierラベル見出し */
  .price-tier__label p:first-child {
    font-size: 0.875rem;
    line-height: 1.34;
  }

  /* PriceTierラベルデータ */
  .price-tier__label p:last-child {
    font-size: 1rem;
    line-height: 1.34;
  }

  /* PriceTier仕様 */
  .price-tier__spec {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    margin: 0;
    padding: 0;
    width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    line-height: 1.6;
    grid-template-rows: none;
    grid-template-columns: none;
    align-content: stretch;
  }

  /* PriceTier行 */
  .price-tier__row {
    display: flex;
    align-items: center;
    gap: 4px;
    box-sizing: border-box;
    width: 100%;
    height: 50px;
    line-height: 1.6;
    padding: 0 8px;
  }

  /* PriceTier行（最初） */
  .price-tier__row:first-child {
    background: #fff;
    background-clip: padding-box;
    border-bottom: 1px solid var(--price-table-rule);
  }

  /* PriceTier行（最後） */
  .price-tier__row:last-child {
    background: var(--color-cream);
    background-clip: padding-box;
  }

  /* PriceTierキー */
  .price-tier__k {
    display: inline;
    font-weight: 700;
    line-height: 1.6;
  }

  /* PriceTierデータ */
  .price-tier__v {
    display: inline;
    margin: 0;
    font-weight: 400;
    line-height: 1.6;
  }

  /* PriceFeature */
  .price-feature {
    flex-direction: column;
    padding: 25px var(--pad-x);
    align-items: flex-start;
  }

  /* PriceFeatureラベル */
  .price-feature__label {
    text-align: left;
    align-self: flex-start;
  }

  /* PriceFeatureテキスト */
  .price-feature__text,
  .price-feature__body {
    line-height: 1.6;
  }

  /* --------------------------------------------------------------- SP - Feauter --------------------------------------------------------------- */
  /* Feauters */
  .feauters {
    display: block;
    position: relative;
    overflow: hidden;
    align-items: unset;
    /* SP は左右均等パディング（PC 基底の左 232px スケール値を上書き） */
    padding: 50px var(--pad-x) 60px;
    background: linear-gradient(90.28deg,
        rgb(191, 238, 255) 0%,
        rgb(220, 254, 255) 99.258%);
  }

  /* Feauters背景 */
  .feauters::before {
    content: none;
  }

  /* Feauters背景画像 */
  .feauters__bg {
    position: absolute;
    inset: auto 0 0 0;
    height: 274px;
    z-index: 0;
    opacity: 1;
    overflow: hidden;
    pointer-events: none;
  }

  /* Feauters背景画像 */
  .feauters__bg-img {
    position: absolute;
    right: 0;
    bottom: 0;
    left: auto;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: right bottom;
  }

  /* Feautersタイトル */
  .feauters__title {
    line-height: 1.34;
    margin-left: 0;
    text-align: center;
    color: #473a1c;
  }

  /* Feautersリボン */
  .feauters__ribbon {
    margin: 0 auto 20px;
  }

  /* Feautersリボンリード */
  .feauters__ribbon-lead {
    top: 21%;
    letter-spacing: calc(0.03rem + 0.12 * var(--fluid-t));
    line-height: 1.34;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100%;
    text-align: center;
    color: #473a1c;
  }

  /* Feautersリボンスタット */
  .feauters__ribbon-stat {
    top: 39%;
    gap: 4px;
    left: 50%;
    transform: translate(-50%, -20px);
    justify-content: center;
    color: #473a1c;
  }

  /* Feautersリボンスタット縦 */
  .feauters__ribbon-stat-vertical {
    letter-spacing: 0.025rem;
    line-height: 1.06;
  }

  /* Feautersリボンスタット数 */
  .feauters__ribbon-stat-num {
    letter-spacing: 0;
    margin-right: -0.1em;
    margin-bottom: -0.08em;
    line-height: 1;
  }

  /* Feautersリボンスタット単位 */
  .feauters__ribbon-stat-oku {
    line-height: 1.06;
  }

  /* Feautersリボンスタット半分 */
  .feauters__ribbon-stat-hari {
    line-height: 1.06;
  }

  /* Feautersリボンスレッド */
  .feauters__ribbon-thread {
    inset: auto;
    top: auto;
    left: auto;
    right: 4%;
    bottom: 38%;
    transform: translateY(-6px);
    width: auto;
    height: auto;
  }

  /* Feauters成就 */
  .feauters__achievements {
    position: relative;
    z-index: 2;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    align-items: flex-start;
  }

  /* Feauters成就リスト */
  .feauters__achievements li {
    font-size: calc(1.25rem + 6 * var(--fluid-t));
    letter-spacing: 0.025rem;
    line-height: 1.34;
    color: #473a1c;
  }

  /* Feauters成就リスト画像 */
  .feauters__achievements li img {
    width: 20px;
    height: 22px;
    flex-shrink: 0;
  }

  /* --------------------------------------------------------------- SP - Flow --------------------------------------------------------------- */
  /* Flowステップ */
  .flow__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    justify-items: stretch;
    max-width: 660px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
  }

  /* Flowステップカード */
  .flow-step__card {
    height: 262px;
  }

  /* Flowステップ */
  .flow-step {
    width: 100%;
    max-width: none;
  }

  /* Flowステップバッジ見出し */
  .flow-step__badge span:first-child {
    letter-spacing: 0.015rem;
  }

  /* Flowステップバッジテキスト */
  .flow-step__badge span:last-child {
    letter-spacing: 0.0225rem;
  }

  /* Flowステップタイトル */
  .flow-step__title {
    font-weight: 600;
    line-height: 1.34;
  }

  /* Flowステップテキスト */
  .flow-step__text {
    flex: 1 1 auto;
    line-height: 1.6;
  }

  /* --------------------------------------------------------------- SP - FAQ --------------------------------------------------------------- */
  /* FAQアイテム */
  .faq-item {
    box-shadow: 0 2px 6px rgba(71, 58, 28, 0.05);
  }

  /* FAQアイテムマーク */
  .faq-item__mark {
    line-height: 1;
  }

  /* FAQアイテム質問テキスト */
  .faq-item__q-text {
    font-weight: 600;
    line-height: 1.34;
  }

  /* FAQアイテム回答テキスト */
  .faq-item__a-text {
    line-height: 1.6;
  }

  /* --------------------------------------------------------------- SP - Footer --------------------------------------------------------------- */
  /* Footer */
  .site-footer {
    position: relative;
    z-index: 1;
    padding: 60px 15px 30px;
    border-radius: 50px 50px 0 0;
    min-height: 0;
    background: var(--color-footer);
    color: #fff;
  }

  /* Footer内 */
  .site-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    column-gap: 0;
    row-gap: 40px;
    width: 100%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }

  /* Footerブランド */
  .site-footer__brand {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    max-width: 363px;
    margin-top: 0;
  }

  /* Footerロゴ */
  .site-footer__logo img {
    width: 225px;
    height: auto;
  }

  /* Footerフリーダイヤル */
  .site-footer__freedial {
    display: flex;
    align-items: center;
    margin: 0;
    gap: 8px;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 1.625rem;
    /* 26px */
    line-height: 1;
    letter-spacing: 0.065rem;
  }

  /* Footerフリーダイヤルリンク */
  .site-footer__freedial a {
    color: #fff;
  }

  /* Footerフリーダイヤルアイコン */
  .site-footer__freedial-icon img {
    display: block;
    width: 30px;
    height: auto;
  }

  /* Footer店舗 */
  .site-footer__stores {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    align-items: stretch;
    justify-content: flex-start;
  }

  /* Footer店舗 */
  .site-footer__store {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto;
    border: 1px solid #fff;
    border-radius: 7px;
    text-align: center;
    font-style: normal;
  }

  /* Footer店舗（東仙北） */
  .site-footer__store:first-of-type {
    min-height: 130px;
    padding: 20px 20px 20px 21px;
  }

  /* Footer店舗（前沢） */
  .site-footer__store:last-of-type {
    min-height: 148px;
    padding: 20px;
  }

  /* Footer店舗名 */
  .site-footer__store-name {
    margin: 0;
    font-family: var(--font-sans);
    font-weight: 600;
    letter-spacing: 0.025rem;
    line-height: 1.34;
  }

  /* Footer店舗住所 */
  .site-footer__store-address {
    margin: 0;
    font-size: 0.875rem;
    font-family: var(--font-sans);
    font-weight: 400;
    line-height: 1.34;
  }

  /* Footer店舗電話 */
  .site-footer__store-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 1.625rem;
    /* 26px */
    letter-spacing: 0.05rem;
    line-height: 1.34;
  }

  /* Footer店舗電話リンク */
  .site-footer__store-tel a {
    color: #fff;
  }

  /* Footer店舗電話アイコン */
  .site-footer__store-tel img {
    display: block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
  }

  /* Footerメタ */
  .site-footer__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 60px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: none;
  }

  /* Footerリンク */
  .site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    line-height: 1.34;
    font-weight: 400;
    justify-content: center;
  }

  /* Footerリンクリンク */
  .site-footer__legal a {
    color: #fff;
  }

  /* Footerコピー */
  .site-footer__copy {
    margin: 0;
    line-height: 1.34;
    font-weight: 400;
    color: #fff;
    text-align: center;
  }

  /* Footerコピー小 */
  .site-footer__copy small {
    font-size: inherit;
    font-weight: inherit;
  }
}

/* --------------------------------------------------------------- SP中間幅 - Footer（560px〜767px）横並びレイアウト --------------------------------------------------------------- */
@media (min-width: 680px) and (max-width: 767px) {

  /* Footer */
  .site-footer {
    --footer-s: clamp(0px, calc((100vw - 2 * var(--pad-x)) / 1240), 1px);
    padding: calc(56 * var(--footer-s)) var(--pad-x) calc(72 * var(--footer-s));
    border-radius: calc(100 * var(--footer-s)) calc(100 * var(--footer-s)) 0 0;
    min-height: calc(396 * var(--footer-s));
  }

  /* Footerインナー */
  .site-footer__inner {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    column-gap: calc(62 * var(--footer-s));
    row-gap: 0;
    max-width: calc(1163 * var(--footer-s));
  }

  /* Footerブランド */
  .site-footer__brand {
    flex: 0 0 auto;
    width: calc(339 * var(--footer-s));
    max-width: none;
    align-items: flex-start;
    gap: 0;
    margin-top: calc(14 * var(--footer-s));
  }

  /* Footerロゴ */
  .site-footer__logo img {
    width: calc(220 * var(--footer-s));
    max-width: none;
  }

  /* Footerフリーダイヤル */
  .site-footer__freedial {
    gap: calc(12 * var(--footer-s));
    margin: calc(20 * var(--footer-s)) 0 0;
    font-size: calc(40 * var(--footer-s));
    letter-spacing: calc(1.6 * var(--footer-s));
  }

  /* Footerフリーダイヤルアイコン */
  .site-footer__freedial-icon img {
    width: calc(51.819 * var(--footer-s));
  }

  /* Footer店舗リスト：横並びに切替 */
  .site-footer__stores {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: calc(20 * var(--footer-s));
    flex: 0 0 auto;
    justify-content: flex-start;
    width: auto;
    max-width: none;
    margin: 0;
  }

  /* Footer店舗 */
  .site-footer__store {
    width: calc(371 * var(--footer-s));
    max-width: 100%;
    height: calc(158 * var(--footer-s));
    min-height: 0;
    margin: 0;
    gap: 0;
    padding: calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(21 * var(--footer-s));
    border-radius: calc(8 * var(--footer-s));
  }

  /* Footer店舗（東仙北） */
  .site-footer__store:first-of-type {
    min-height: 0;
    padding: calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(20 * var(--footer-s)) calc(21 * var(--footer-s));
  }

  /* Footer店舗（前沢） */
  .site-footer__store:last-of-type {
    min-height: 0;
    padding: calc(20 * var(--footer-s));
  }

  /* Footer店舗名 */
  .site-footer__store-name {
    display: block;
    font-size: calc(24 * var(--footer-s));
    letter-spacing: calc(0.48 * var(--footer-s));
    margin-bottom: calc(8 * var(--footer-s));
  }

  /* Footer店舗住所 */
  .site-footer__store-address {
    margin: 0 0 calc(8 * var(--footer-s));
    font-size: calc(14 * var(--footer-s));
  }

  /* Footer店舗電話 */
  .site-footer__store-tel {
    gap: calc(9 * var(--footer-s));
    font-size: calc(24 * var(--footer-s));
    letter-spacing: calc(0.96 * var(--footer-s));
  }

  /* Footer店舗電話アイコン */
  .site-footer__store-tel img {
    width: calc(23 * var(--footer-s));
    height: calc(23 * var(--footer-s));
  }

  /* Footerメタ */
  .site-footer__meta {
    align-items: flex-end;
    max-width: calc(1163 * var(--footer-s));
    margin-top: calc(50 * var(--footer-s));
  }

  /* Footer法令 */
  .site-footer__legal {
    gap: calc(20 * var(--footer-s));
    font-size: calc(14 * var(--footer-s));
  }

  /* Footerコピー */
  .site-footer__copy {
    font-size: calc(14 * var(--footer-s));
    text-align: right;
  }
}

/* 320px〜393px：極小幅レスポンシブ */
@media (max-width: 392px) {

  :root {
    --fluid-xs: calc((100vw - 320px) / 73);
  }

  /* 見出し（~25% 縮小） */
  .section-heading__title {
    font-size: calc(1.3125rem + 7 * var(--fluid-xs));
  }

  .about {
    padding-top: 40px;
  }

  /* About（~30% 縮小） */
  .about__intro {
    font-size: clamp(0.75rem, calc(0.656rem + 4.504 * var(--fluid-xs)), 0.9375rem);
  }

  /* about__compare-images */
  .about__compare-images {
    zoom: 1;
    /* Fallback applied */
  }

  /* about-grid-sp__axis */
  .about-grid-sp__axis {
    font-size: calc(0.8rem + 3.2 * var(--fluid-xs));
  }

  /* about-grid-sp__head */
  .about-grid-sp__head {
    font-size: calc(0.7rem + 2.8 * var(--fluid-xs));
  }

  /* about-grid-sp__cell */
  .about-grid-sp__cell {
    font-size: clamp(0.75rem, calc(0.585rem + 2.64 * var(--fluid-xs)), 0.75rem);
  }

  /* Reform */
  /* reform__banner-title (~25%) */
  .reform__banner-title {
    font-size: calc(13.5px + 4.5 * var(--fluid-xs));
  }

  /* reform-card__text (~30%) */
  .reform-card__text {
    font-size: clamp(0.75rem, calc(0.6125rem + 4.2 * var(--fluid-xs)), 0.875rem);
  }

  /* Feauters（~25% 縮小） */
  .feauters__achievements li {
    font-size: calc(0.9375rem + 5 * var(--fluid-xs));
  }

  .price {
    padding-top: 0px;
  }

  /* Price（~30%） */
  .price-block__table {
    font-size: calc(0.3rem + 3 * var(--fluid-xs));
  }

  /* Price右側テキスト（393px時13px→320px時12px）
     ※ dt/dd/k/v に個別font-sizeがあるためリーフ要素に直接指定 */
  .price-block__spec dt,
  .price-block__spec dd,
  .price-tier__k,
  .price-tier__v {
    font-size: clamp(0.6875rem, calc(0.6875rem + 1 * var(--fluid-xs)), 0.8125rem);
  }


  /* FAQ（~25% 縮小） */
  .faq-item__mark {
    font-size: calc(0.84rem + 4.56 * var(--fluid-xs));
  }

  /* faq-item__q-text */
  .faq-item__q-text {
    font-size: clamp(0.75rem, calc(0.7rem + 3.8 * var(--fluid-xs)), 0.9375rem);
  }

  /* faq-item__a-text */
  .faq-item__a-text {
    font-size: clamp(0.75rem, calc(0.656rem + 3.504 * var(--fluid-xs)), 0.875rem);
  }

  /* Flow（393px時262px → 320px時280px、少し下を長く） */
  .flow-step__card {
    height: calc(280px - 18 * var(--fluid-xs));
  }

  /* Footer */
  .site-footer__store-address {
    font-size: calc(0.7rem + 2.8 * var(--fluid-xs));
  }
}