body {
  margin: 0;
  font-family: 'Lato', 'Catamaran', sans-serif;
  background-color: #fff;
  color: #333;
}

.hero {
  background-color: #34d0f6;
  padding: 40px 20px;
  text-align: center;
}

.hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.main-visual {
  width: 100%;
  max-width: 600px;
  height: auto;
  display: block;
  margin: 0 auto 20px auto;
}

.download-count,
.rating {
  font-weight: bold;
  margin: 10px 0;
}

.store-buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  font-size: 0;
  flex-wrap: nowrap; /* 通常は横並び */
}

.store-buttons a {
  display: inline-block;
  width: auto;       /* 通常はボタンサイズに応じた幅 */
  max-width: 280px;
  text-align: center;
}

.store-buttons a img {
  height: 56px;
  width: auto;
  display: block;
}

/* スマホなど画面が狭いときのみ縦並び＆横幅統一 */
@media screen and (max-width: 480px) {
  .store-buttons {
    flex-direction: column;
    align-items: center;
  }

  .store-buttons a {
    width: 80%; /* 画面幅の8割に統一 */
    max-width: 300px;
  }

  .store-buttons a img {
    width: 100%;
    height: auto;
  }
}

.description {
  padding: 40px 20px;
  text-align: center;
}

.description h2 {
  font-size: 1.8em;
  margin-bottom: 10px;
}

.description p {
  font-size: 1.2em;
  line-height: 1.6;
}

.description .highlight {
  color: #FF6600;
  font-weight: bold;
}

.transport-icons {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  margin-top: 30px;
  font-size: 1em;
}
