/* =======================
   お客様の声 page
   ======================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans JP", sans-serif;
  color: #145087;
}

/* 背景より前に出す共通ラッパー */
.page-content {
  position: relative;
  z-index: 10;
  min-height: 100vh;
}

/* メインレイアウト */
.main {
  max-width: 480px;
  margin: 0 auto;
  padding: 0 16px 40px;
}

/* section 共通 */
.section {
  margin-top: 40px;
}

.section__inner {
  max-width: 480px;
  margin: 0 auto;
}

/* -----------------------
   見出しカード
   ----------------------- */

.voice-heading {
  background: #ffffffee;
  border-radius: 18px;
  padding: 16px 8px 14px;
  text-align: center;
  box-shadow: 0 4px 10px rgba(13, 71, 125, 0.08);
  border: 1px solid #e2f1ff;
  margin-bottom: 28px;
}

.voice-heading__title {
  margin: 0;
  font-size: 18px;
  letter-spacing: 0.25em;
  color: #145087;
}

.voice-heading__sub {
  margin: 4px 0 0;
  font-size: 11px;
  color: #6b7b8c;
}

/* -----------------------
   総合評価ブロック
   ----------------------- */

.voice-summary {
  background: #fffbf2;
  border-radius: 18px;
  padding: 16px 16px 14px;
  border: 1px solid #ffe2a9;
  box-shadow: 0 4px 10px rgba(255, 193, 79, 0.18);
  margin-bottom: 28px;
}

.voice-summary__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.voice-summary__score {
  font-size: 32px;
  font-weight: 700;
  color: #f1a400;
}

.voice-summary__score span {
  font-size: 16px;
  margin-left: 4px;
  color: #8c97a6;
}

.voice-summary__stars {
  font-size: 18px;
  letter-spacing: 0.1em;
  color: #ffc94a;
}

.voice-summary__label {
  font-size: 11px;
  color: #6a7c93;
}

.voice-summary__foot {
  margin-top: 4px;
  font-size: 11px;
  color: #98a3b5;
}

/* -----------------------
   共通パーツ
   ----------------------- */

.section-subtitle {
  font-size: 14px;
  font-weight: 700;
  color: #145087;
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.section-subtitle::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffc94a;
}

.voice-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  background: #e6f3ff;
  color: #3771b3;
  margin-right: 6px;
}

/* 星表示（小） */
.stars {
  font-size: 13px;
  letter-spacing: 0.08em;
  color: #ffc94a;
}

/* -----------------------
   ピックアップレビュー
   ----------------------- */

.voice-pickup {
  display: grid;
  gap: 14px;
  margin-bottom: 28px;
}

.voice-card {
  background: #ffffff;
  border-radius: 18px;
  padding: 12px 14px 10px;
  box-shadow: 0 4px 8px rgba(13, 71, 125, 0.06);
  border: 1px solid #e4f0ff;
}

.voice-card--pickup {
  border-color: #ffd98f;
  background: #fffaf3;
}

.voice-card__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}

.voice-card__title {
  font-size: 13px;
  font-weight: 600;
  margin: 0;
  color: #145087;
}

.voice-card__meta {
  font-size: 10px;
  color: #8a96a6;
  text-align: right;
}

.voice-card__meta span + span::before {
  content: "／";
  margin: 0 2px;
}

.voice-card__body {
  font-size: 12px;
  line-height: 1.8;
  color: #44566b;
  margin-top: 4px;
}

/* -----------------------
   カテゴリ別レビュー
   ----------------------- */

.voice-section {
  margin-bottom: 32px;
}

.voice-list--compact {
  display: grid;
  gap: 10px;
}

.voice-card--compact {
  padding: 10px 12px 9px;
  border-radius: 14px;
}

/* -----------------------
   評価まとめ（バー）
   ----------------------- */

.voice-stats {
  background: #ffffff;
  border-radius: 18px;
  padding: 14px 14px 12px;
  border: 1px solid #e2f1ff;
  box-shadow: 0 4px 10px rgba(13, 71, 125, 0.05);
  margin-bottom: 30px;
}

.voice-stats__list {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.voice-stats__item-label {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #6a7c93;
  margin-bottom: 2px;
}

.voice-stats__bar {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: #e8f1ff;
  overflow: hidden;
}

.voice-stats__bar-inner {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ffc94a, #ff9f6a);
}

/* 個別の長さはクラスで調整 */
.voice-stats__bar-inner--full { width: 96%; }
.voice-stats__bar-inner--high { width: 90%; }
.voice-stats__bar-inner--mid  { width: 82%; }

/* -----------------------
   インタビュー風レビュー
   ----------------------- */

.voice-interview {
  display: grid;
  gap: 14px;
  margin-bottom: 32px;
}

.voice-interview__card {
  background: #f5fbff;
  border-radius: 18px;
  padding: 12px 14px 12px;
  border: 1px solid #d8ebff;
}

.voice-interview__label {
  font-size: 10px;
  font-weight: 600;
  color: #3771b3;
  margin-bottom: 4px;
}

.voice-interview__title {
  font-size: 13px;
  font-weight: 600;
  margin: 0 0 6px;
}

.voice-interview__text {
  font-size: 12px;
  line-height: 1.8;
  color: #44566b;
}

.voice-interview__meta {
  margin-top: 6px;
  font-size: 10px;
  color: #8a96a6;
  text-align: right;
}

/* -----------------------
   安心説明 & CTA
   ----------------------- */

.voice-safe {
  background: #ffffff;
  border-radius: 18px;
  padding: 14px 14px 16px;
  border: 1px solid #e2f1ff;
  box-shadow: 0 4px 8px rgba(13, 71, 125, 0.05);
  margin-bottom: 28px;
  font-size: 12px;
  line-height: 1.9;
  color: #44566b;
}

.voice-safe ul {
  margin: 6px 0 0 1.2em;
  padding: 0;
  font-size: 12px;
}

.voice-safe li + li {
  margin-top: 2px;
}

.voice-cta {
  text-align: center;
  margin-top: 12px;
}

.voice-cta__button {
  display: inline-block;
  padding: 10px 32px;
  border-radius: 999px;
  background: #1c63d2;
  color: #ffffff;
  font-size: 13px;
  text-decoration: none;
  letter-spacing: 0.16em;
}

/* -----------------------
   小さめ端末
   ----------------------- */

@media (max-width: 360px) {
  .voice-summary__score {
    font-size: 28px;
  }

  .voice-summary__stars {
    font-size: 16px;
  }
}

/* -----------------------
   PCレイアウト
   ----------------------- */

@media (min-width: 768px) {

  .main,
  .section__inner {
    max-width: 960px;
  }

  .section {
    margin-top: 56px;
  }

  .voice-summary {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }

  .voice-pickup {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .voice-section {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .voice-interview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .voice-safe {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .voice-cta__button {
    padding-inline: 40px;
  }
}
