.voice-archive-page {
  background: var(--white);
  min-height: 100vh;
  overflow-x: hidden;
}
/* ヒーロー */
.voice-archive-hero {
  position: relative;
  background: var(--pink-pale);
  padding: 68px 26px 68px;
  overflow: hidden;
  text-align: center;
}
.voice-archive-hero-inner { position:relative; z-index:2; max-width:640px; margin:0 auto; }
.voice-archive-title {
  font-family:'Noto Serif JP',serif;
  font-size: clamp(26px,5vw,42px);
  font-weight: 700;
  color: #1e2240;
  margin: 8px 0 16px;
  line-height: 1.3;
}
.voice-archive-lead { font-size:14px; color:rgba(30,34,64,0.6); line-height:1.9; }
.voice-archive-hero-deco {
  position:absolute; right:-10px; bottom:-20px;
  font-size: clamp(68px,14vw,160px);
  font-family:'Noto Serif JP',serif; font-weight:700;
  color:rgba(240,62,122,0.07); line-height:1;
  pointer-events:none; user-select:none; z-index:1;
}
/* ボディ */
.voice-archive-body { padding:60px 0 80px; }
/* グリッド */
.voice-archive-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 26px;
  margin-bottom: 42px;
}
@media(max-width:900px){ .voice-archive-grid{ grid-template-columns:repeat(2,1fr); gap:18px; } }
@media(max-width:560px){ .voice-archive-grid{ grid-template-columns:1fr; gap:16px; } }
/* カード */
.varc-card {
  background: #fff;
  border-radius: 20px;
  padding: 26px 28px 26px;
  position: relative;
  border: 1px solid rgba(240,62,122,0.10);
  display: flex;
  flex-direction: column;
  transition: transform .3s cubic-bezier(.4,0,.2,1), border-color .3s;
  overflow: hidden;
}
.varc-card:hover {
  transform: translateY(-6px);
  border-color: rgba(240,62,122,0.28);
}
.varc-card::before {
  content:''; position:absolute; top:0; left:0;
  width:4px; height:100%;
  background: linear-gradient(180deg,#f03e7a,#ffb3cf);
  border-radius: 20px 0 0 20px;
}
.varc-deco-quote {
  position:absolute; top:10px; left:18px;
  font-size:68px; font-family:Georgia,serif;
  color:rgba(240,62,122,0.09); line-height:1;
  pointer-events:none; user-select:none;
}
.varc-quote {
  font-size:14px; line-height:1.95; color:#2a2f52;
  margin-bottom:16px; flex:1; padding-top:8px;
  position:relative; z-index:1;
}
.varc-meta {
  display:flex; align-items:center; gap:10px;
  border-top:1px solid rgba(240,62,122,0.10);
  padding-top:16px; position:relative; z-index:1;
}
/* アバター */
.varc-avatar {
  width:48px; height:48px; border-radius:50%;
  flex-shrink:0; display:flex;
  align-items:center; justify-content:center;
  overflow:hidden;
}
.varc-avatar--img img { width:100%; height:100%; object-fit:cover; display:block; }
.varc-avatar--noimg span { color:#fff; font-size:17px; font-weight:700; line-height:1; }
/* 名前・属性 */
.varc-info { flex:1; min-width:0; }
.varc-name { font-size:14px; font-weight:700; color:#1e2240; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.varc-age  { font-size:12px; color:rgba(30,34,64,0.5); margin-top:2px; }
/* バッジ */
.varc-badge {
  font-size:10px; font-weight:700; letter-spacing:.08em;
  color:#f03e7a; background:rgba(240,62,122,0.08);
  border:1px solid rgba(240,62,122,0.18);
  padding:3px 10px; border-radius:42px; white-space:nowrap; flex-shrink:0;
}
/* ページネーション */
.voice-archive-pagination { text-align:center; margin-bottom:56px; }
.voice-archive-pagination .page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; margin:0 4px;
  font-size:14px; font-weight:600; color:#1e2240;
  text-decoration:none; border:1px solid rgba(240,62,122,0.18);
  transition:background .2s,color .2s;
}
.voice-archive-pagination .page-numbers.current,
.voice-archive-pagination .page-numbers:hover { background:#f03e7a; color:#fff; border-color:#f03e7a; }
/* CTA */
.voice-archive-cta {
  text-align:center;
  background:linear-gradient(135deg,#fff0f5,#ffd6e5);
  border-radius:24px; padding:48px 24px;
}
.voice-archive-cta-text { font-size:15px; color:#2a2f52; margin-bottom:24px; line-height:1.8; }
.voice-archive-back {
  display:inline-block; margin-top:16px;
  font-size:13px; color:rgba(30,34,64,0.5);
  text-decoration:none; transition:color .2s;
}
.voice-archive-back:hover { color:#f03e7a; }
/* SP */
@media(max-width:560px){
  .voice-archive-hero { padding:48px 20px 40px; }
  .varc-card { padding:26px 20px 18px; }
  .varc-deco-quote { font-size:52px; }
  .varc-badge { display:none; }
  .voice-archive-cta { padding:36px 20px; }
}
