@media (max-width: 576px) {
  .fv { height: 110vw; }
  .fv-contents { flex-direction: column; transform: translate(-50%, 0); top: 17vw; width: 95vw; }
  .fv-bg img { object-position: 70%; }
  .fv-logo { width: 34.8vw; }
  .fv-main-title { font-size: 4.2vw; margin-top: 0; }
  .fv-sub-title { font-size: 2.5vw; margin-top: 1.75vw; }
  .fv-textwrap { width: 60vw; }
  .fv-box { padding: 2vw; margin-top: 2vw; }
  .fv-box li { font-size: 2.75vw; }
  .fv-box li span { font-size: 3vw; }
  .fv-box li img { width: 3vw; }

  .fv-img { position: absolute; top: -65vw; width: 85vw; right: -20vw; z-index: -1; }
  .fv-imgwrap { position: relative; margin-top: 5vw; width: 90vw; }
  .fv-badge p { font-size: 2.5vw; }
  .fv-badge span { font-size: 2.75vw; }
  .fv-badge img { width: 5vw; }

  /* 重いbox-shadowを禁止し、擬似要素リングに統一（描画軽量化） */
  .main-top-box {
    font-size: 2vw; width: 35vw;
    /* box-shadow: 0 0 0 4vw rgba(255, 228, 232, 0.5); ←削除 */
    position: absolute; /* 念のため定義維持（PC側と同等） */
  }
  .main-top-box::after{
    content:""; position:absolute; inset:-4vw; border-radius:50%;
    border: 4vw solid rgba(255,228,232,.5); pointer-events:none;
  }

  .main-top-box h2 { font-size: 4.2vw; }
  .main-top-img { width: 100%; margin: 0 auto; }
  .main-top { margin-top: 8vw; }

  .reason-top-box {
    width: 20vw; font-size: 3.5vw; top: 0; aspect-ratio: 1/1;
    position: relative; margin: 0 auto; text-align: center;
  }
  .reason-top { padding-top: 6vw; }
  .pc-none { display: block; }
  .reason-top-text { font-size: 3.5vw; margin-top: 6vw; }
  .reason-top-text-big { font-size: 5vw; }

  .reason { padding-top: 0; }
  .reason-num { font-size: 6vw; }
  .reason-bg { font-size: 3.5vw; }
  .reason-item h2 p { margin-top: 3vw; }
  .reason-item h2 { font-size: 3.75vw; }
  .reason-contents { max-width: 80.5687vw; }
  .reason-lists { flex-wrap: wrap; justify-content: center; }
  .reason-lists li { width: 32vw; margin: 2vw; }
  .reason-lists li h3 { font-size: 3vw; height: 25vw; }
  .reason-lists-img { padding-top: 0; height: 30vw; }
  .reason-sub-lists li { width: 24vw; aspect-ratio: 1/1; margin: 1vw; }
  .reason-lists li img { width: 13vw; }
  .reason-sub-img img { width: 7vw; }
  .reason-sub-lists li h4 { height: 10vw; font-size: 2.2vw; line-height: 1.3; padding: 1vw; }
  .reason-sub-img { height: 10vw; }
  .reason-textwrap { margin: 6vw auto 0; width: 95%; }
  .reason-text-bold { font-size: 3vw; }

  .guidance { padding: 15vw 0; }
  .guidance h2 { font-size: 5.3vw; }
  .guidance-dots { line-height: 0.5; font-size: 3vw; }
  .guidance-badge { font-size: 3vw; }
  .guidance-badge img { width: 8vw; }
  .guidance h3 { font-size: 4vw; }
  .guidance-lists { flex-direction: column; align-items: center; }
  .guidance-lists li { width: 80vw; }
  .guidance-lists li a { padding: 5vw; }
  .guidance-lists li + li { margin-top: 13vw; }

  .guidance-item { display: flex; align-items: center; justify-content: space-between; }
  .guidance-item-img { position: static; width: 22vw; }
  .guidance-item-title { width: 20vw; left: -7vw; }
  .guidance-item-title h4 { font-size: 2.5vw; }
  .guidance-num { left: -2vw; top: -5vw; transform: rotate(-15deg); font-size: 5vw; }
  .guidance-item-textwrap { width: calc(100% - 30vw); }
  .guidance-item-textwrap p { font-size: 2.8vw; }
  .guidance-bg img { object-position: 70%; }

  .qa h2 { font-size: 4.3vw; }
  .qa span.qa-title-span span { width: 5vw; }
  .qa span.qa-title-span { font-size: 3vw; }
  .qa-contents { max-width: 80.5687vw; }
  .qa-item-q { padding: 3.5vw 7vw 3.5vw 4vw; }
  .qa-item-a {
    padding: 3.5vw 3.5vw 3.5vw 3vw;
    font-size: 2.5vw;

    /* アコーディオンはPC側と同じ“max-height方式”を継続（display:none禁止） */
    /* max-height/transitionはベースCSSで定義済みなので上書き不要 */
  }
  .dli-chevron-down { right: 3vw; width: 2vw; height: 2vw; }
  .qa-item h3 { font-size: 2.75vw; }
  .qa-item-q h3::before { margin-right: 3vw; font-size: 3vw; }
  .qa-item-a p::before { margin-right: 3vw; font-size: 3vw; }

  .footer-logo img { width: 30vw; }

  .floating { height: 15vw; }
  .floating .cta-button { padding: 5vw 15vw; top: -3vw; font-size: 3.5vw; }
  .dli-arrow-right { width: 5vw; height: 0.3vw; margin-left: 4vw; }
  .dli-arrow-right::before {
    content: ""; width: 2vw; height: 2vw; border: 0.5vw solid currentColor;
    border-left: 0; border-bottom: 0; transform: rotate(45deg); transform-origin: top right;
    position: absolute; top: 50%; right: -0.2vw; box-sizing: border-box;
  }

  footer { padding-bottom: 20vw; }
}
