/* ============ 07 VOICE ユーザーの声 ============ */
.voice{
  overflow:hidden;
  background:linear-gradient(100deg,var(--voice-t) 0%,var(--blue-grad-end) 100%);
  padding:85px 0 84px;
}
/* 左下の大きな明るい円弧 */
.voice::before{
  content:"";
  position:absolute;
  width:908px;
  height:908px;
  border-radius:50%;
  background:var(--voice-b);
  left:-343px;
  bottom:-349px;
}
.voice-inner{
  position:relative;
  z-index:1;
  max-width:1200px;
  margin:0 auto;
}
.voice-label{
  text-align:center;
  color:var(--ink);
  font-size:15px;
  font-weight:500;
  letter-spacing:.15em;
  line-height:1.5;
}
.voice-heading{
  margin-top:8px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:15px;
  color:var(--ink);
  font-size:30px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.4;
}
/* 白い吹き出し */
.voice-bubble{
  position:relative;
  flex:none;
  width:40px;
  height:40px;
  background:#fff;
  border-radius:50%;
}
.voice-bubble::after{
  content:"";
  position:absolute;
  left:-1px;
  bottom:-1px;
  width:12px;
  height:12px;
  background:#fff;
  transform:rotate(45deg);
}
.voice-cards{
  margin-top:85px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:35px 30px;
}
.voice-card{
  display:flex;
  gap:17px;
  min-height:200px;
  padding:20px 28px 18px;
  background:#fff;
  border-radius:30px;
}
.voice-avatar{
  flex:none;
  width:140px;
  padding-top:3px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.voice-avatar img{
  width:120px;
  height:120px;
}
.voice-pill{
  margin-top:10px;
  padding:7px 13px;
  background:#000;
  border-radius:999px;
  color:#fff;
  font-size:13px;
  font-weight:500;
  line-height:1;
  white-space:nowrap;
}
.voice-body{
  flex:1;
  min-width:0;
  padding-top:2px;
}
.voice-rating{
  display:flex;
  align-items:center;
  gap:13px;
}
.voice-rating-label{
  font-size:14px;
  font-weight:500;
}
.voice-stars{
  display:flex;
  gap:3px;
}
.voice-stars img{
  width:20px;
  height:20px;
}
.voice-card-title{
  margin-top:10px;
  color:var(--pink);
  font-size:20px;
  font-weight:700;
  line-height:1.3;
}
.voice-card-text{
  margin-top:8px;
  font-size:16px;
  font-weight:500;
  line-height:1.8;
}

/* ============ SP ============ */
@media (max-width:767px){
  .voice{
    padding:78px 0 50px;
    background:linear-gradient(115deg,var(--voice-t) 0%,var(--blue-grad-end) 100%);
  }
  .voice::before{
    width:1040px;
    height:1040px;
    left:-480px;
    bottom:-898px;
  }
  .voice-inner{
    padding:0 18px;
  }
  .voice-label{
    font-size:13px;
  }
  .voice-heading{
    margin-top:6px;
    gap:16px;
    font-size:24px;
  }
  .voice-bubble{
    width:27px;
    height:27px;
  }
  .voice-bubble::after{
    width:9px;
    height:9px;
  }
  .voice-cards{
    margin-top:58px;
    grid-template-columns:1fr;
    gap:28px;
  }
  .voice-card{
    gap:16px;
    min-height:185px;
    padding:18px 16px 20px 22px;
    border-radius:24px;
  }
  .voice-avatar{
    width:102px;
    padding-top:16px;
  }
  .voice-avatar img{
    width:86px;
    height:86px;
  }
  .voice-pill{
    margin-top:12px;
    padding:5px 11px;
    font-size:11px;
  }
  .voice-body{
    padding-top:0;
  }
  .voice-rating{
    gap:11px;
  }
  .voice-rating-label{
    font-size:13px;
  }
  .voice-stars{
    gap:4px;
  }
  .voice-stars img{
    width:18px;
    height:18px;
  }
  .voice-card-title{
    margin-top:9px;
    font-size:18px;
  }
  .voice-card-text{
    margin-top:7px;
    font-size:14px;
    line-height:1.6;
  }
}
