/* ============================================================
   お客様の声 — 個別スタイル（共通部分は /assets/subpage.css）
   ============================================================ */

/* ---------- ヒーロー ---------- */
.voice-hero{position:relative;height:min(58vh,460px);overflow:hidden}
.voice-hero img{height:100%;object-fit:cover;object-position:center 55%}
.voice-hero .veil{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.72) 46%,rgba(255,255,255,.08) 80%);
}
.voice-hero .copy{position:absolute;left:7vw;top:50%;transform:translateY(-50%);width:min(620px,80vw)}
.voice-hero h1{font:400 clamp(23px,3.2vw,38px)/1.62 var(--serif);color:var(--navy);margin:16px 0 14px}
.who{font-size:12px;color:var(--mute);margin:0}
.who b{font-weight:500;font-size:14px;color:var(--navy)}

/* ---------- Q&A ---------- */
.qa{border-top:1px solid var(--line);padding:44px 0}
.qa:last-of-type{border-bottom:1px solid var(--line)}
.qa h2{
  font:400 clamp(17px,2.2vw,21px)/1.7 var(--serif);color:var(--navy);
  margin:0 0 20px;padding-left:34px;position:relative;
}
.qa h2::before{
  content:"Q";position:absolute;left:0;top:-1px;
  font:italic 22px var(--en);color:var(--rose);
}
.qa blockquote{margin:0 0 16px;padding:0 0 0 34px;position:relative;font-size:14.5px}
.qa blockquote::before{
  content:"A";position:absolute;left:0;top:-1px;
  font:italic 22px var(--en);color:var(--blue-mid);
}
.qa blockquote + blockquote{margin-top:20px}
.qa blockquote p{margin:0 0 12px}
.qa blockquote p:last-child{margin-bottom:0}

/* ---------- 引用パネル ---------- */
.pull{
  background:var(--blue-pale);border-radius:16px;padding:38px 34px;margin:52px 0;
  font:400 clamp(17px,2.4vw,22px)/1.85 var(--serif);color:var(--navy);text-align:center;
}
.pull small{
  display:block;margin-top:16px;
  font:300 11px var(--sans);letter-spacing:.14em;color:var(--mute);
}

/* ---------- 写真＋キャプション ---------- */
figure.shot{margin:52px 0}
figure.shot img{height:340px;object-fit:cover}
figure.shot figcaption{font-size:11px;color:var(--mute);margin-top:10px}

/* ---------- 一覧カード ---------- */
.voice-list{display:grid;gap:26px;margin-top:48px}
.voice-card{
  display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:stretch;
  border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;
  transition:box-shadow .35s ease,transform .35s ease;
}
.voice-card:hover{box-shadow:0 16px 40px -26px rgba(27,58,92,.55);transform:translateY(-2px)}
.voice-card img{width:100%;height:100%;min-height:200px;object-fit:cover}
.voice-card .body{padding:26px 28px 26px 0;align-self:center}
.voice-card .tag{font:500 10px var(--en);letter-spacing:.28em;color:var(--rose-deep);margin:0}
.voice-card h2{font:400 19px/1.65 var(--serif);color:var(--navy);margin:9px 0 11px}
.voice-card p{font-size:12.5px;color:var(--mute);margin:0 0 15px}
.voice-card .more{font-size:11px;letter-spacing:.12em;color:var(--rose-deep)}

@media(max-width:800px){
  .voice-hero{height:400px}
  .voice-hero img{object-position:62% center}
  .voice-hero .veil{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.6) 55%,rgba(255,255,255,.9))}
  .voice-hero .copy{left:7vw;width:86vw}
  figure.shot img{height:240px}
  .voice-card{grid-template-columns:1fr}
  .voice-card img{height:220px;min-height:0}
  .voice-card .body{padding:0 22px 26px}
  .pull{padding:28px 20px;margin:38px 0}
}

/* グリッド項目が min-content 幅で押し広げるのを防ぐ */
.voice-card>*{min-width:0}
.voice-card h2,.voice-card p{overflow-wrap:anywhere}

/* 狭い画面での文字切れ対策 */
@media(max-width:430px){
  h1,h2,h3,summary,p,li,dt,dd,span,td,th,figcaption{
    word-break:normal;line-break:strict;overflow-wrap:anywhere;
  }
}
