    body {
      font-family: "Segoe UI", sans-serif;
      background-color: #f6f8fa;
      margin: 0;
      padding: 2em 1em;
      color: #333;
    }

    header,
    section,
    footer {
      max-width: 800px;
      margin: 0 auto;
      padding: 1.5em;
      background: #ffffff;
      border-radius: 1.5em;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
      margin-bottom: 2em;
    }

    h1,
    h2 {
      font-weight: 700;
      color: #2c3e50;
    }

    .cta,
    .button {
      display: inline-block;
      padding: 0.8em 1.6em;
      margin: 0.5em 0;
      border-radius: 1.5em;
      background: linear-gradient(to right, #56ccf2, #2f80ed);
      color: white;
      font-weight: 600;
      text-decoration: none;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
      transition: all 0.3s ease;
    }

    .cta:hover,
    .button:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
    }

    ul {
      list-style: none;
      padding: 0;
    }

    li {
      margin: 0.5em 0;
    }

    footer nav ul {
      display: flex;
      flex-wrap: wrap;
      gap: 1em;
      justify-content: center;
    }

    footer small {
      display: block;
      text-align: center;
      margin-top: 1em;
      color: #888;
    }

    .banner {
      max-width: 100%;
      height: auto;
      display: block;
      margin: 0 auto 1.5em auto;
      border-radius: 1em;
    }

    @media screen and (max-width: 600px) {

      .cta,
      .button {
        width: 100%;
        font-size: 1em;
      }

      .button.with-icon {
        width: fit-content;
        max-width: 100%;
      }

    }

    .with-icon {
      display: flex;
      align-items: center;
      gap: 0.8em;
      padding: 0.8em 1.6em;
      border-radius: 1.5em;
      margin: 0.5em 0;
      text-decoration: none;
      white-space: nowrap;
      width: fit-content;
      /* ✅ テキストサイズに合わせて幅が決まる */
      max-width: 100%;
      /* ✅ スマホ画面でもはみ出さないようにする */
    }

    .button-icon {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      object-fit: cover;
    }

    .channel-desc {
      margin: 0.3em 0 1.5em;
      font-size: 0.95em;
      color: #555;
      line-height: 1.4;
    }

    .button {
      display: block;
      /* ← 縦並びにする */
      width: 100%;
      /* ← スマホでも横幅いっぱいに */
      padding: 0.8em 1.2em;
      margin: 0.6em 0;
      font-size: 1rem;
      font-weight: bold;
      border-radius: 1.2em;
      text-align: center;
      text-decoration: none;
      transition: all 0.3s ease;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    }

    /* ホバー演出（共通） */
    .button:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
    }

    /* 色別バリエーション */
    .note-button {
      background: linear-gradient(to right, #fddde6, #f5c2cc);
      color: #000;
    }

    .line-button {
      background: linear-gradient(to right, #a8ff78, #78ffd6);
      color: #000;
    }

    .search-button {
      background: linear-gradient(to right, #d1d8e0, #a5b1c2);
      color: #000;
    }

    @media screen and (min-width: 600px) {
      .button {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
      }
    }

    .no-hit {
      animation: fadeIn 0.8s ease both;
      opacity: 0;
    }

    @keyframes fadeIn {
      0% {
        opacity: 0;
        transform: translateY(5px);
      }

      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .suggestion {
      font-size: 0.95em;
      color: #555;
      margin-top: 0.5em;
    }

    .slim-button {
      margin: 0.2em 0;
      padding: 0.4em 1em;
      font-size: 0.95rem;
      line-height: 1.2;
    }

    .btn-line {
      display: block;
      margin: 0 auto;
    }

    .search-button-wrapper {
      display: flex;
      align-items: center;
      width: 100%;
      max-width: 600px;
      margin: 0 auto 1em auto;
      border-radius: 2em;
      overflow: hidden;
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
      background: linear-gradient(to right, #eceff1, #e3f2fd);
    }

    #searchInput {
      flex: 1;
      border: none;
      padding: 0.8em 1em;
      font-size: 1rem;
      outline: none;
      background: transparent;
    }

    #targetSelect {
      border: none;
      padding: 0.8em;
      font-size: 0.9rem;
      background: #f5f5f5;
      outline: none;
    }

    .search-button-actual {
      background-color: #2196f3;
      color: white;
      border: none;
      padding: 0.8em 1.5em;
      cursor: pointer;
      font-weight: bold;
      border-left: 1px solid #ccc;
      transition: background-color 0.2s ease;
    }

    .search-button-actual:hover {
      background-color: #1976d2;
    }

    @media (max-width: 768px) {
      .search-button-wrapper {
        display: flex;
        flex-direction: column;
        gap: 0.5em;
        align-items: stretch;
      }

      .search-button-wrapper input,
      .search-button-wrapper select,
      .search-button-wrapper button {
        width: 100%;
        font-size: 1em;
      }

      #resultArea .note-button {
        width: 100%;
        box-sizing: border-box;
      }

      #suggestions {
        font-size: 0.9em;
      }
    }

    .recommend-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.2em;
      margin-top: 1em;
    }

    .recommend-list li {
      padding: 1em;
      background: linear-gradient(to right, #e3f2fd, #f0f8ff);
      border-radius: 1em;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
      transition: transform 0.2s ease;
    }

    .recommend-list li:hover {
      transform: translateY(-3px);
    }

    .recommend-list a {
      font-weight: bold;
      color: #2f80ed;
      text-decoration: none;
    }

    .recommend-list small {
      display: block;
      color: #666;
      margin: 0.3em 0;
    }

    .recommend-list p {
      margin: 0.5em 0 0;
      font-size: 0.95em;
      color: #444;
    }

    .recommend-list a {
      text-decoration: none;
      color: inherit;
      display: block;
    }

    .recommend-list a:hover {
      opacity: 0.85;
    }

    .cta {
      text-align: center;
    }

    .cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 2em auto;
  text-align: center;
}

.cta h3 {
  margin-bottom: 1em;
}

.btn-line {
  display: inline-block;
  background: linear-gradient(to right, #a8ff78, #78ffd6);
  color: #000;
  padding: 0.8em 1.6em;
  border-radius: 2em;
  font-weight: bold;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.btn-line:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.cta {
  background-color: rgba(255, 100, 100, 0.1) !important;
  outline: 2px dashed red !important;
}
