@keyframes zoomBounce {
  0% {
    transform: scale(1);
  }
  60% {
    transform: scale(1.2);
  }
  80% {
    transform: scale(0.96);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes loadingDotSecond {
  0%,
  33.33% {
    opacity: 0;
  }
  33.34%,
  100% {
    opacity: 1;
  }
}

@keyframes loadingDotThird {
  0%,
  66.66% {
    opacity: 0;
  }
  66.67%,
  100% {
    opacity: 1;
  }
}

.manpuku-set {
  overflow: hidden;

  .kv {
    width: 100vw;
    height: 870px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-top: 25px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    box-sizing: border-box;
    background-color: #fff;
    /* 上のグラデーションと下の青海波は別画像。
       グラデーション → 縦方向のみの階調なので高さを固定して横だけ 100% に伸縮する。
                        1枚絵のままだと画面幅が設計幅（1440px）を超えたときに
                        横幅基準の拡大で画面外に押し出されてしまうため分けている。
       青海波       → ループ用に書き出したタイルを原寸のまま横リピートする。
                        画面幅によらず柄の大きさが変わらない。 */
    background-image:
      url('/synced-assets/manpukuset/assets/image/kv-background-gradation.webp'),
      url('/synced-assets/manpukuset/assets/image/kv-background-motif.webp');
    background-repeat: no-repeat, repeat-x;
    background-position: center top, center bottom;
    background-size: 100% 427px, 723px 256px;
  }

  .kv__inner {
    width: 768px;
    max-width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .kv__title-wrap {
    position: relative;
    width: min(686px, 100%);
  }

  .kv__title {
    width: min(686px, 100%);
    height: auto;
  }

  .kv__logo {
    position: absolute;
    top: 5px;
    right: 57px;
    width: 155px;
    height: 119px;
  }

  .kv__udon {
    width: 768px;
    max-width: 100%;
    height: auto;
    margin-top: -50px;
  }

  .kv__menu-price {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    margin-top: -143px;
  }

  .kv__price {
    width: 240px;
    height: auto;
  }

  .kv__menu {
    width: 328px;
    height: auto;
  }

  /* ========== Scroll animation ========== */
  .fade-init {
    opacity: 0;
    transform: translateY(var(--a-distance, 24px));
    transition:
      opacity var(--a-duration, 0.8s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s),
      transform var(--a-duration, 0.8s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s);
    will-change: opacity, transform;
  }

  .fade-show {
    opacity: 1;
    transform: none;
  }

  .fade-init[data-animate='fade'] {
    transform: none;
  }

  .fade-init[data-animate='fade-up'] {
    transform: translateY(var(--a-distance, 24px));
  }

  .fade-init[data-animate='fade-left'] {
    transform: translateX(calc(var(--a-distance, 24px) * -1));
  }

  .fade-init[data-animate='fade-right'] {
    transform: translateX(var(--a-distance, 24px));
  }

  .fade-init[data-animate='fade-zoom'] {
    transform: var(--anim-base, translateY(0)) translateY(var(--a-distance, 16px)) scale(var(--a-scale, 0.9));
    transform-origin: center center;
  }

  .fade-init[data-animate='fade-zoom-bounce'] {
    transform: var(--anim-base, translateY(0)) translateY(var(--a-distance, 16px)) scale(var(--a-scale, 0.9));
    transform-origin: center center;
  }

  .fade-group .fade-child {
    opacity: 0;
    transform: translateY(var(--a-distance, 24px));
    transition:
      opacity var(--a-duration, 1s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s),
      transform var(--a-duration, 1s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s),
      filter 0.2s ease;
    will-change: opacity, transform, filter;
  }

  .fade-group .fade-child[data-animate='wipe-left'] {
    opacity: 1;
    transform: none;
    clip-path: inset(0 100% 0 0);
    transition: clip-path var(--a-duration, 1s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s);
    will-change: clip-path;
  }

  .fade-group .fade-child[data-animate='fade'] {
    transform: none;
  }

  .fade-group .fade-child[data-animate='fade-left'] {
    transform: translateX(calc(var(--a-distance, 24px) * -1));
  }

  .fade-group .fade-child[data-animate='fade-right'] {
    transform: translateX(var(--a-distance, 24px));
  }

  .fade-child.fade-show {
    opacity: 1;
    transform: none;
  }

  .fade-child.fade-show[data-animate='fade-left'],
  .fade-child.fade-show[data-animate='fade-right'] {
    transform: none;
  }

  .fade-group .fade-child[data-animate='fade-zoom'] {
    transform: var(--anim-base, translateY(0)) translateY(var(--a-distance, 12px)) scale(var(--a-scale, 0.8));
    transform-origin: center center;
  }

  .fade-group .fade-child[data-animate='fade-zoom-bounce'] {
    transform: var(--anim-base, translateY(0)) translateY(var(--a-distance, 12px)) scale(var(--a-scale, 0.8));
    transform-origin: center center;
    transition:
      opacity var(--a-duration, 1s) var(--a-easing, cubic-bezier(0.25, 0.1, 0.25, 1)) var(--a-delay, 0s);
  }

  .fade-child.fade-show[data-animate='fade-zoom'] {
    transform: var(--anim-base, none) translateY(0) scale(1);
  }

  .fade-child.fade-show[data-animate='fade-zoom-bounce'] {
    opacity: 1;
    transform: var(--anim-base, none) translateY(0) scale(1);
    animation: zoomBounce var(--a-duration, 0.5s) ease-out var(--a-delay, 0s) both;
  }

  .fade-child.fade-show[data-animate='wipe-left'] {
    clip-path: inset(0 0 0 0);
  }

  /* ========== Loading overlay ========== */
  .loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    visibility: visible;
    background-color: #fff;
    background-image: url('/synced-assets/manpukuset/assets/image/bg-orange.webp');
    background-repeat: repeat;
    background-position: center;
    background-size: auto;
    transition: none;
  }

  .loading-overlay__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
  }

  .loading-overlay__text-line {
    display: flex;
    align-items: flex-end;
    gap: 8px;
  }

  .loading-overlay__text {
    display: block;
    width: 190px !important;
    max-width: 190px !important;
    height: auto !important;
    object-fit: contain;
    flex: 0 0 auto;
  }

  .loading-overlay__dots {
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .loading-overlay__dot {
    display: block;
    width: 8px !important;
    height: 8px !important;
    max-width: none !important;
    object-fit: contain;
    opacity: 1;
  }

  .loading-overlay__dot:nth-child(2) {
    opacity: 0;
    animation: loadingDotSecond 1.2s steps(1, end) infinite;
  }

  .loading-overlay__dot:nth-child(3) {
    opacity: 0;
    animation: loadingDotThird 1.2s steps(1, end) infinite;
  }

  .loading-overlay__udon {
    display: block;
    width: 322px !important;
    height: auto !important;
    max-width: none !important;
    object-fit: contain;
    flex: 0 0 auto;
  }

  .loading-overlay.is-hidden {
    display: none;
    visibility: hidden;
  }

  .loading-overlay.is-fadeout {
    pointer-events: none;
  }

  @media (max-width: 767px) {
    .loading-overlay__dot {
      width: 8px !important;
      height: 8px !important;
    }

    .loading-overlay__udon {
      width: 240px !important;
      height: auto !important;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .fade-init {
      opacity: 1;
      transform: none;
      transition: none;
    }

    .fade-group .fade-child {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

  /* ========== Statement ========== */
  .statement {
    background: #fbf7ef;
    padding: 80px 0 60px;
  }

  .statement__inner {
    max-width: 1440px;
    margin: 0 auto;
    box-sizing: border-box;
    display: grid;
    /* 中央のテキストは幅を保ち、足りない分は左右の写真が縮んで負担する。
       両端を固定幅にするとタブレット幅でテキストカラムが潰れる */
    grid-template-columns: minmax(0, 340px) 459px minmax(0, 340px);
    justify-content: space-between;
    column-gap: 24px;
    row-gap: 24px;
    align-items: flex-start;
  }

  .statement__image {
    display: flex;
    justify-content: center;
    grid-row: 1;
  }

  .statement__image--left img,
  .statement__image--right img {
    width: 340px;
    max-width: 100%;
    height: auto;
  }

  .statement__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 60px;
    text-align: center;
    align-self: flex-start;
    grid-column: 2;
    grid-row: 1;
  }

  .statement__text01,
  .statement__text03 {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .statement__text01 img {
    width: 320px;
    height: auto;
    max-width: 100%;
  }

  .statement__text02--pc {
    width: 459px;
    max-width: 100%;
    display: block;
    height: auto;
  }

  .statement__text02-sp {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    width: 100%;
  }

  .statement__text03 img {
    width: 447px;
    height: auto;
    max-width: 100%;
  }

  .statement__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 0;
  }

  .statement__cta-note {
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: #666;
    text-align: left;
  }

  .statement__image--sp {
    display: none;
  }

  .statement__cta-follow {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--cta-follow-bottom, 0px);
    background: #fff;
    padding: 10px 20px;
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    box-shadow: 0 -4px 4px 0 rgba(0, 0, 0, 0.05);
  }

  .statement__cta-follow.is-visible {
    opacity: 1;
    pointer-events: auto;
  }

  .statement__cta-follow-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    max-width: 590px;
    margin: 0 auto;
  }

  .statement__cta-button-link {
    display: inline-block;
    transition: opacity 0.2s ease;
  }

  .statement__cta-button-link:hover {
    opacity: 0.7;
  }

  .statement__cta-button {
    width: 284px;
    max-width: 100%;
    height: auto;
  }

  /* ========== Feature ========== */
  .feature-wrapper {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 80px 0;
    background-image: url('/synced-assets/manpukuset/assets/image/bg-orange.webp');
    background-repeat: repeat;
    background-size: auto;
    background-position: center;
    box-sizing: border-box;
  }

  .fullwidth-photo {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    height: 440px;
    overflow: hidden;
  }

  .fullwidth-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .food-edu {
    background: #f2eee6;
    padding: 80px 0;
  }

  .food-edu__inner {
    width: 1240px;
    max-width: 100%;
    padding: 0 20px;
    margin: 0 auto;
    box-sizing: border-box;
    text-align: center;
  }

  .food-edu__title {
    font-family: "Shuei ShogoMincho", serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    text-align: center;
  }

  .food-edu__lead {
    margin: 20px auto 0;
    font-family: "Yu Mincho Pr6N M", serif;
    font-size: 14px;
    line-height: 1.7;
    max-width: 920px;
  }

  .food-edu__cards {
    margin: 40px auto 0;
    width: 920px;
    max-width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(100% * 40 / 920);
  }

  .food-edu__card-wrap {
    display: block;
  }

  .food-edu__card {
    color: inherit;
    text-decoration: none;
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.16);
    padding: 24px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: opacity 0.2s ease;
  }

  .food-edu__card-image {
    width: 100%;
    height: auto;
    border-radius: 4px;
    display: block;
  }

  .food-edu__card-title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    text-align: left;
  }

  .food-edu__card-text {
    margin-top: 8px;
    font-size: 15px;
    line-height: 1.6;
    text-align: left;
  }

  .food-edu__card-cta {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #c81432;
    text-decoration: none;
    align-self: flex-end;
  }

  .food-edu__card-cta-icon {
    width: 20px;
    height: 20px;
    border: 1px solid #c81432;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
  }

  .food-edu__card-cta-icon::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid #c81432;
    border-bottom: 1.5px solid #c81432;
    transform: rotate(-45deg);
    margin-left: -1px;
  }

  .food-edu__card:hover {
    opacity: 0.7;
  }

  .feature-points {
    display: flex;
    justify-content: center;
  }

  .feature-points__inner {
    width: 1240px;
    max-width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .feature-point {
    position: relative;
    display: block;
    transition: opacity 0.2s ease;
  }

  .feature-point picture img,
  .feature-point__decor {
    width: 100%;
    height: auto;
    display: block;
  }

  .feature-point__base {
    position: relative;
  }

  .feature-point__base-image {
    width: 100%;
    height: auto;
    display: block;
  }

  .feature-point__body {
    position: absolute;
    inset: 0;
    padding: calc(100% * var(--feature-point__body-padding) / 1200);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(100% * 22 / var(--feature-point__body-inner-height));
  }

  /* PC の参照幅は base 画像の実寸 1200px。base 画像は 3 枚とも 2400x848（= 1200x424） */
  .feature-point {
    --feature-point__body-padding: 40;
    --feature-point__body-height: 424;
    --feature-point__body-inner-width: calc(1200 - (var(--feature-point__body-padding) * 2));
    --feature-point__body-inner-height: calc(var(--feature-point__body-height) - (var(--feature-point__body-padding) * 2));
    --feature-point__title-width: 140;
    --feature-point__text-width: 0;
  }

  .feature-point__title {
    width: calc(100% * var(--feature-point__title-width) / var(--feature-point__body-inner-width));
    height: auto;
    display: block;
  }

  .feature-point .feature-point__text {
    width: calc(100% * var(--feature-point__text-width) / var(--feature-point__body-inner-width));
  }

  .feature-point .feature-point__text img {
    width: 100%;
    height: auto;
    display: block;
  }

  .feature-point__photo {
    width: 100%;
    height: auto;
    display: block;
  }

  .feature-point__bubble {
    position: absolute;
    height: auto;
    display: block;
  }

  .feature-point--1 {
    --feature-point__photo-width: 380;
    --feature-point__photo-height: 304;
    --feature-point__group-left: 580;
    --feature-point__group-top: 88;
    --feature-point__bubble-width: 298;
    --feature-point__bubble-left: 44;
    --feature-point__bubble-top: -47;
    --feature-point__bubble-ar-width: 596;
    --feature-point__bubble-ar-height: 244;
    --feature-point__text-width: calc(1320 / 2);
  }

  .feature-point--2 {
    --feature-point__photo-width: 405;
    --feature-point__photo-height: 251;
    --feature-point__group-left: 549;
    --feature-point__group-top: 93;
    --feature-point__bubble-width: 201;
    --feature-point__bubble-left: 12;
    --feature-point__bubble-top: 13;
    --feature-point__bubble-ar-width: 402;
    --feature-point__bubble-ar-height: 156;
    --feature-point__text-width: calc(1050 / 2);
  }

  .feature-point--3 {
    --feature-point__photo-width: 228;
    --feature-point__photo-height: 220;
    --feature-point__group-left: 642;
    --feature-point__group-top: 112;
    --feature-point__bubble-width: 231;
    --feature-point__bubble-left: -69;
    --feature-point__bubble-top: -19;
    --feature-point__bubble-ar-width: 462;
    --feature-point__bubble-ar-height: 156;
    --feature-point__text-width: calc(884 / 2);
  }

  .feature-point__group {
    position: absolute;
    display: inline-block;
    height: auto;
    left: calc(100% * var(--feature-point__group-left) / 1200);
    top: calc(100% * var(--feature-point__group-top) / var(--feature-point__body-height));
    width: calc(100% * var(--feature-point__photo-width) / 1200);
    aspect-ratio: var(--feature-point__photo-width) / var(--feature-point__photo-height);
  }

  .feature-point__bubble {
    left: calc(100% * var(--feature-point__bubble-left) / var(--feature-point__photo-width));
    top: calc(100% * var(--feature-point__bubble-top) / var(--feature-point__photo-height));
    width: calc(100% * var(--feature-point__bubble-width) / var(--feature-point__photo-width));
    aspect-ratio: var(--feature-point__bubble-ar-width) / var(--feature-point__bubble-ar-height);
  }

  a.feature-point:hover {
    opacity: 0.85;
  }

  .feature-price {
    display: flex;
    justify-content: center;
    margin-top: 60px;
  }

  .feature-price__inner {
    width: 1240px;
    max-width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
  }

  .feature-price__heading {
    width: 761px;
    max-width: 100%;
    height: auto;
  }

  .feature-price__notes {
    font-size: 12px;
    line-height: 1.6;
    text-align: left;
    font-family: 'Noto Sans JP', sans-serif;
    color: #744e00;
  }

  .feature-voice {
    display: flex;
    justify-content: center;
    margin-top: 60px;
  }

  .feature-voice__inner {
    width: 1240px;
    max-width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .feature-voice__card {
    position: relative;
    width: 100%;
    padding: 60px 40px;
    box-sizing: border-box;
    background-color: #fff;
    background-image: url('/synced-assets/manpukuset/assets/image/bg-white.webp');
    background-repeat: repeat;
    background-size: auto;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .feature-voice__heading {
    width: calc(100% * 480 / (1200 - 80));
    max-width: 100%;
    height: auto;
  }

  .feature-voice__list {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: calc(100% * 65 / (1200 - 80));
    width: 100%;
    /* 見出しへの重なり量。周囲の幅・gap と同じ比率指定にしないと、
       画面幅が狭いときに相対的に重なりが大きくなり見出しと衝突する */
    margin-top: calc(100% * -60 / (1200 - 80));
  }

  .feature-voice__item {
    display: flex;
    justify-content: center;
    align-items: flex-start;
  }

  .feature-voice__item img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
  }

  .feature-voice__item--1,
  .feature-voice__item--2,
  .feature-voice__item--3 {
    width: calc(100% * 300 / (1200 - 80));
  }

  .feature-voice__item--2 {
    margin-top: calc(100% * 75 / (1200 - 80));
  }

  @media (max-width: 767px) {
    .fade-init[data-animate-sp='fade'] {
      transform: none;
    }

    .fade-group .fade-child[data-animate-sp='fade'] {
      transform: none;
    }

    .fade-init[data-animate-sp='fade-left'] {
      transform: translateX(calc(var(--a-distance, 24px) * -1));
    }

    .fade-init[data-animate-sp='fade-right'] {
      transform: translateX(var(--a-distance, 24px));
    }

    .fade-group .fade-child[data-animate-sp='fade-left'] {
      transform: translateX(calc(var(--a-distance, 24px) * -1));
    }

    .fade-group .fade-child[data-animate-sp='fade-right'] {
      transform: translateX(var(--a-distance, 24px));
    }

    .fade-child.fade-show[data-animate-sp='fade-left'],
    .fade-child.fade-show[data-animate-sp='fade-right'] {
      transform: none;
    }

    .kv {
      height: 475px;
      padding-top: 17px;
      padding-left: 8px;
      padding-right: 8px;
      /* SP は柄の大きさが PC と異なるため、SP 用のループタイルを使う。
         高さを 200px に固定して横リピートするので、画面幅によらず
         柄の大きさも上端の位置（y=275）も変わらない。
         グラデーションは PC と同じ画像を SP の高さに合わせて敷く */
      background-image:
        url('/synced-assets/manpukuset/assets/image/kv-background-gradation.webp'),
        url('/synced-assets/manpukuset/assets/image/kv-background-motif-sp.webp');
      background-size: 100% 255px, auto 200px;
    }

    .kv__inner {
      width: 360px;
    }

    .kv__title-wrap {
      width: min(348px, 100%);
    }

    .kv__title {
      width: min(348px, 100%);
    }

    .kv__logo {
      top: 6px;
      right: 23px;
      width: 79px;
      height: 60px;
    }

    .kv__udon {
      width: 356px;
      margin-top: -12px;
    }

    .kv__menu-price {
      gap: 12px;
      margin-top: -68px;
    }

    .kv__price {
      width: 147px;
    }

    .kv__menu {
      width: 201px;
    }

    .statement {
      padding: 40px 0;
    }

    .statement__inner {
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      row-gap: 40px;
      column-gap: 0;
    }

    .statement__image {
      margin-top: 0;
    }

    .statement__image--pc {
      display: none;
    }

    .statement__image--sp {
      display: flex;
      margin-left: -16px;
      margin-right: -16px;
    }

    .statement__content {
      width: 100%;
      min-width: 0;
      padding: 0 16px;
      gap: 40px;
    }

    .statement__content img {
      width: 100%;
      max-width: 100%;
    }

    .statement__text01 img {
      width: 274px;
      height: auto;
      max-width: 100%;
    }

    .statement__text02--pc {
      display: none;
    }

    .statement__text02-sp {
      display: flex;
    }

    .statement__text02-sp img:first-child {
      width: 315px;
      height: auto;
      max-width: 100%;
    }

    .statement__text02-sp img:last-child {
      width: 230px;
      height: auto;
      max-width: 100%;
    }

    .statement__text03 img {
      width: 312px;
      height: auto;
      max-width: 100%;
    }

    .statement__content .statement__cta-button {
      width: 284px;
    }

    .statement__image--left img,
    .statement__image--right img {
      width: 100%;
    }

    .statement__image--left {
      display: none;
    }

    .statement__cta {
      grid-column: 1;
      grid-row: auto;
      width: 100%;
      margin-top: 0;
    }

    .feature-wrapper {
      padding: 60px 0;
    }

    .feature-points__inner {
      padding: 0 20px;
    }

    .feature-point__body {
      padding: 20px;
      gap: calc(100% * 22 / (var(--point-sp-height) - 40));
    }

    /* SP の参照幅は画面幅から左右 padding を引いた 335px */
    .feature-point {
      --feature-point__title-width: 120;
      --feature-point__text-width: 295;
      --feature-point__group-left: 0;
      --feature-point__group-top: 0;
      --feature-point__group-width: 0;
      --feature-point__group-height: 0;
      --feature-point__bubble-width: 0;
      --feature-point__bubble-left: 0;
      --feature-point__bubble-top: 0;
    }

    .feature-point--1 {
      --point-sp-height: 923;
      --feature-point__group-left: 25;
      --feature-point__group-top: 491;
      --feature-point__group-width: 285;
      --feature-point__group-height: 224;
      --feature-point__bubble-width: 246;
      --feature-point__bubble-left: -3;
      --feature-point__bubble-top: -61;
    }

    .feature-point--2 {
      --point-sp-height: 755;
      --feature-point__group-left: 3;
      --feature-point__group-top: 343;
      --feature-point__group-width: 327;
      --feature-point__group-height: 197;
      --feature-point__bubble-width: 161;
      --feature-point__bubble-left: 5;
      --feature-point__bubble-top: 8;
    }

    .feature-point--3 {
      --point-sp-height: 680;
      --feature-point__group-left: 86;
      --feature-point__group-top: 285;
      --feature-point__group-width: 201;
      --feature-point__group-height: 194;
      --feature-point__bubble-width: 202;
      --feature-point__bubble-left: -59;
      --feature-point__bubble-top: -10;
    }

    .feature-point__title {
      width: calc(100% * var(--feature-point__title-width) / (335 - 40));
    }

    .feature-point .feature-point__text {
      width: calc(100% * var(--feature-point__text-width) / (335 - 40));
    }

    .feature-point__title,
    .feature-point .feature-point__text {
      margin-left: auto;
      margin-right: auto;
    }

    .feature-point__group {
      left: calc(100% * var(--feature-point__group-left) / 335);
      top: calc(100% * var(--feature-point__group-top) / var(--point-sp-height));
      width: calc(100% * var(--feature-point__group-width) / 335);
      height: calc(100% * var(--feature-point__group-height) / var(--point-sp-height));
      aspect-ratio: auto;
    }

    .feature-point__photo {
      width: 100%;
    }

    .feature-point__bubble {
      width: calc(100% * var(--feature-point__bubble-width) / var(--feature-point__group-width));
      left: calc(100% * var(--feature-point__bubble-left) / var(--feature-point__group-width));
      top: calc(100% * var(--feature-point__bubble-top) / var(--feature-point__group-height));
    }

    .feature-price {
      margin-top: 40px;
    }

    .feature-price__inner {
      padding: 0 20px;
      align-items: center;
    }

    .feature-price__heading {
      width: 295px;
    }

    .feature-voice {
      margin-top: 40px;
    }

    .feature-voice__inner {
      padding: 0 20px;
    }

    .feature-voice__card {
      padding: 30px 10px;
      gap: 20px;
    }

    .feature-voice__heading {
      position: relative;
      width: 320px;
      max-width: 100%;
      left: 0;
      top: 0;
      transform: none;
      margin: 0 auto;
    }

    .feature-voice__list {
      flex-direction: column;
      align-items: center;
      gap: 20px;
      margin-top: 0;
    }

    .feature-voice__item--1,
    .feature-voice__item--2,
    .feature-voice__item--3 {
      width: 280px;
      max-width: 100%;
    }

    .feature-voice__item--2 {
      margin-top: 0;
    }

    .fullwidth-photo {
      height: 235px;
    }

    .food-edu {
      padding: 60px 0;
    }

    .food-edu__inner {
      padding: 0 20px;
      text-align: left;
    }

    .food-edu__cards {
      margin-top: 20px;
      grid-template-columns: 1fr;
      gap: 20px;
      width: 100%;
    }

    .food-edu__card {
      padding: 16px;
      gap: 20px;
    }

    .food-edu__card-cta {
      align-self: flex-end;
    }

    .food-edu__lead {
      margin-top: 20px;
    }
  }
}
