/* =============================================
   VOICE PAGE CSS
   ============================================= */

.voice-topic {
  padding: 6rem 2rem;
  background: var(--color-bg);
}

.voice-topic--alt {
  background: var(--color-bg-light);
}

.voice-topic-inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* ---- Head ---- */
.voice-topic-head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.voice-num {
  font-family: var(--font-sans);
  font-weight: 100;
  font-size: 3.5rem;
  color: var(--color-border);
  line-height: 1;
}

.voice-heading {
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.7;
  letter-spacing: 0.03em;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--color-border);
}

.voice-lead {
  font-size: 0.82rem;
  color: var(--color-accent2);
  line-height: 1.9;
}

.voice-text {
  font-size: 0.8rem;
  line-height: 2.1;
  color: var(--color-text-light);
}

.voice-sub {
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 0.88rem;
  line-height: 1.8;
  color: var(--color-text);
}

.text-accent-blue {
  color: var(--color-accent2);
  font-weight: 400;
}

/* ---- Voice Cards ---- */
.voice-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.voice-cards--with-image {
  grid-template-columns: 1fr 1.2fr;
  align-items: start;
}

.voice-feature-img {
  aspect-ratio: 4/3;
  overflow: hidden;
}

.voice-feature-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-card-group {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.voice-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.voice-topic--alt .voice-card {
  background: #fff;
}

.voice-card-meta {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.voice-card-name {
  font-family: var(--font-jp);
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--color-text-light);
}

.voice-card-stars {
  font-size: 0.7rem;
  color: #c9a97e;
  letter-spacing: 0.05em;
}

.voice-card-text {
  font-size: 0.75rem;
  line-height: 1.9;
  color: var(--color-text-light);
}

/* ---- Reserve ---- */
.voice-reserve {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.voice-reserve .btn-outline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.9em 2.5em;
}

.voice-reserve .btn-outline small {
  font-size: 0.6rem;
  color: var(--color-text-light);
}

.voice-reserve:hover .btn-outline small { color: #aaa; }

.voice-reserve-shops {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.voice-reserve-shops .btn-fill { min-width: 180px; text-align: center; }

.voice-hotpepper {
  font-size: 0.72rem;
  color: var(--color-text-light);
  letter-spacing: 0.1em;
}

/* ---- Breadcrumb wrap ---- */
.breadcrumb-wrap {
  background: var(--color-bg-light);
}

/* ---- Responsive ---- */
@media (max-width: 820px) {
  .voice-cards,
  .voice-cards--with-image {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .voice-topic { padding: 4rem 1.4rem; }
  .voice-reserve-shops { flex-direction: column; }
  .voice-reserve-shops .btn-fill { min-width: 100%; }
}
