.trafic-section {
    padding: 40px 0px;
    text-align: center;
}

.trafic-header {
    position: relative;
    text-align: center;
    margin-bottom: 40px;
    overflow: hidden; /* オーバーフローを防ぐ */
}

.trafic-background {
    font-size: clamp(30px, 20vw, 90px); /* 動的なフォントサイズ調整 */
    color: rgba(0, 122, 204, 0.1); /* 薄い青色 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    white-space: nowrap;
    letter-spacing: 12px;
}

.trafic-title {
    position: relative;
    z-index: 1;
    font-size: 36px;
    color: #333;
    font-weight: 500;
}


.trafic-list-img {
  width: 100%; /* 画像を親要素の幅にフィット */
  max-width: 600px; /* 最大幅を指定 */
  height: auto; /* アスペクト比を維持 */
  margin: 0 auto; /* 中央寄せ */
  display: block; /* ブロック要素として扱う */
  margin-bottom: 20px;
}


.trafic-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 50px 0 ;
    gap:50px;
}

.trafic-text {
    text-align: left;
    max-width: 400px;
}

.trafic-feature {
    font-size: 18px;
    color: #007acc;
    margin-bottom: 10px;
    text-align: center;
}

.trafic-content {
  text-align: left; /* 左寄せ */
  margin: 0; /* 不要な余白を削除 */
  padding: 0 0 0 10px; /* 左側に30pxの余白を追加 */
  gap:10px;
}

.trafic-heading {
    font-size: 20px;
    color: #333;
    margin: 0; /* 上下の余白を削除 */
    line-height: 1.5; /* 行間を調整 */
    text-align: center;
}

.trafic-divider {
    width: 100%;
    /* max-width: 200px; */
    border: 1px solid rgba(192,192,192);
    margin: 10px 0; /* 上下の余白 */
}

.trafic-description {
    font-size: 14px;
    color: #555;
    line-height: 1.4;
    margin: 10px 0 0 0; /* 上部余白を適度に設定 */
    padding: 0; /* パディングを削除 */
}


.trafic-image {
    text-align: center;
    max-width: 450px;
    margin-top: 30px;
}


.trafic-photo {
    width: 100%;
    max-width: 450px;
    height: auto;
}

.trafic-text .highlight {
    color: #00aaff;
}

.procedure {
    background-color: #fff;
    padding: 0 20px 50px 20px;
    text-align: center;
    font-family: "Arial", sans-serif;
}

.procedure-title {
    font-size: 24px;
    color: #333;
    margin-bottom: 10px;
}

.procedure-divider {
    width: 100px;
    margin: 10px auto 30px;
    border: 1px solid #ccc;
}

.procedure-steps {
  margin: 0 auto; /* 全体を中央揃え */
  max-width: 600px; /* 任意の最大幅を指定 */
}

.procedure-step {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-left: 75px;
}

.step-number {
    background-color: #00aaff;
    color: #fff;
    font-size: 16px;
    padding: 5px 15px;
    letter-spacing: 2px;
}

.step-description {
    font-size: 16px;
    color: #333;
    text-align: left;
}

.procedure-note {
    margin-top: 10px;
    font-size: 16px;
    color: #666;
    margin-left: 75px;
    padding-right: 77px;
}

.title-text {
  display: flex;
  align-items: center; /* 垂直中心 */
  justify-content: center; /* 水平中心 */
  letter-spacing: 1px;
  font-size: 16px;
}
.title-text:before, .title-text:after {
  border-top: 1px solid;
  content: "";
  width: 6em; /* 線の長さ */
}
.title-text:before {
  margin-right: 1em; /* 文字の右隣 */
}
.title-text:after {
  margin-left: 1em; /* 文字の左隣 */
}



/* スマホ用スタイル */
@media screen and (max-width: 960px) {

    .trafic-list{
      padding: 20px;
    }

    .trafic-title {
        font-size: 20px; /* タイトルのフォントサイズを縮小 */
    }

    .trafic-background {
        font-size: clamp(20px, 20vw, 60px); /* さらに小さい画面用に調整 */
    }


    .trafic-container {
        flex-direction: column; /* 縦並びに変更 */
        align-items: center;
        text-align: center; /* テキストを中央寄せ */
        gap:0px;
        padding: 20px;
    }

    .trafic-text{
      max-width: 370px;
    }

    .trafic-image {
        margin-top: 20px;
        max-width: 370px;
    }

    .trafic-content {
        margin: 0;
        padding: 0;
    }

    .trafic-heading{
      font-size: 15px;
    }


    .reverse {
        flex-direction: column-reverse; /* テキストを画像の下に配置 */
    }

    .step-description{
      font-size: 11px;
    }

    .procedure-step{
      margin-left:55px;
      }

    .title-text{
      font-size: 12px;
    }

    .procedure-note{
      padding: 0;
      margin: 20px 55px 0 55px ;
      font-size: 11px;
    }

    .procedure-steps {
      max-width: 450px; /* 任意の最大幅を指定 */
    }

    .step-number{
      font-size: 12px;
      padding: 3px 10px;
    }

}

/* スマホ用スタイル */
@media screen and (max-width: 500px) {
  .procedure-steps {
    max-width: 350px; /* 任意の最大幅を指定 */
  }
  .procedure-step{
    margin-left:5px;
  }

  .procedure-note{
    margin: 20px 5px 0 5px ;
  }
}

/* スマホ用スタイル */
@media screen and (max-width: 400px) {
  .procedure-step{
    margin: 0;
  }
  .procedure-note{
    margin: 0;
  }
}
