/* お客様の声（/voice・/voice/*）— pages.css と booking.css の上に重ねる */
.page>main{padding:0}
nav.all .nav-h{font-size:.95rem;text-align:center;margin-bottom:8px}
.vh{padding:30px 26px 6px}
.vh h1{font-size:1.5rem;text-align:center}
.vh .lead{text-align:left}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:18px 26px 4px;margin:0}
.chip{font:inherit;font-size:.86rem;letter-spacing:.06em;color:var(--primary);background:#fffaf0;border:1px solid var(--line);border-radius:999px;padding:9px 16px;min-height:44px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#FDF6E8}
.chip:focus-visible,.vcard:focus-visible,.vnext a:focus-visible,.vcourse:focus-visible,.vback:focus-visible,.vtags a:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.cal-open:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
.vcount{padding:6px 26px 0;font-size:.8rem;color:var(--ink-soft)}
.vlist{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:14px}
.vcard{display:block;text-decoration:none;color:inherit;background:#fffaf0;border:1px solid var(--line);border-radius:18px;padding:18px 20px 16px}
.vcard .q{font-size:1.02rem;text-align:left;margin:0;line-height:1.8;letter-spacing:.05em;word-break:auto-phrase;text-wrap:pretty}
.vcard .w{display:block;font-size:.84rem;color:var(--ink-soft);margin:6px 0 0;line-height:1.75}
.vcard .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:.8rem}
.vcard .ph{color:var(--ink-soft)}
.vcard .more{color:var(--primary);margin-left:auto}
.vinvite{text-align:center;font-size:.86rem;color:var(--ink-soft);padding:6px 8px;line-height:1.9}
.vinvite a{display:inline-block;padding:10px 4px;color:var(--primary)}
.vnote{font-size:.8rem;color:var(--ink-soft);margin-top:18px;text-align:center}
/* detail */
.vd{padding:26px 26px 4px}
.vd h1{font-size:1.38rem;line-height:1.8;word-break:auto-phrase;text-wrap:balance}
.vd .meta{margin:14px 0 0;font-size:.86rem;color:var(--ink-soft);line-height:1.8}
.vd .meta b{color:var(--ink);font-weight:600;margin-right:.6em}
.vtags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.vtags a{display:inline-block;font-size:.8rem;color:var(--primary);background:var(--sage-bg);border-radius:999px;padding:5px 13px;text-decoration:none}
.vtags a::after{content:" ›"}
.ba{margin:22px 26px 0}
.ba .pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ba .pair div{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3/4;background:var(--paper-2)}
.ba .pair img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.ba .pair span{position:absolute;left:8px;bottom:8px;font-size:.8rem;letter-spacing:.08em;background:rgba(253,244,227,.94);color:var(--primary);border-radius:999px;padding:1px 11px}
.ba figcaption{font-size:.8rem;color:var(--ink-soft);margin-top:8px;line-height:1.75}
.va h2{font-size:1.02rem;text-align:left;margin:0 0 6px}
.va section{margin-top:34px}
.va .pre{margin-top:26px;font-size:.88rem;color:var(--ink-soft);background:var(--paper-2);border-radius:12px;padding:12px 16px}
.va .say{margin:14px 0;padding:14px 18px;background:var(--sage-bg);border-radius:16px;font-size:1rem;line-height:1.95;color:var(--ink)}
.va .say::before{content:"「"}
.va .say::after{content:"」"}
.va .feel{font-size:.84rem;color:var(--ink-soft);margin-top:4px}
.osako{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.osako img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 25%}
.osako h2{margin:0;line-height:1.5}
.osako p{margin:0;font-size:.8rem;line-height:1.5}
.osako p a{color:var(--ink-soft)}
.vcourse{display:block;text-decoration:none;color:inherit;margin-top:30px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#fffaf0}
.vcourse .l{font-size:.8rem;color:var(--ink-soft)}
.vcourse .n{display:block;font-weight:600;color:var(--primary);font-size:1.05rem;margin-top:2px}
.vcourse .n::after{content:" ›"}
.vcourse .d{display:block;font-size:.86rem;margin-top:4px;line-height:1.8}
.va .cta-box{margin-top:30px}
.vnext{margin-top:40px}
.vnext h2{font-size:1rem;text-align:left}
.vnext ul{list-style:none;padding:0;margin:0}
.vnext li{border-bottom:1px solid var(--line)}
.vnext li a{display:block;padding:12px 0;text-decoration:none;color:var(--primary);line-height:1.75}
.vnext li small{display:block;color:var(--ink-soft);font-size:.8rem}
.vback{display:block;text-align:center;margin-top:14px;padding:10px 0;color:var(--primary);font-size:.9rem}
/* 声のページでは無料の本を最後に回し、受け取るボタンは線だけにする（主ボタンは予約の 1 つ） */
.gift-book .bget{background:transparent;color:var(--primary);border:1px solid var(--primary);box-shadow:none}
/* 下に固定の予約帯（ページの 1/3 を過ぎたら出る・隠れている間はフォーカスも入らない） */
.vbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;pointer-events:none;transform:translateY(110%);visibility:hidden;transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear .32s}
.vbar.on{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.vbar .in{pointer-events:auto;width:100%;max-width:560px;display:flex;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(253,244,227,.96);border-top:1px solid var(--line);backdrop-filter:blur(6px)}
.vbar .cal-open{flex:1;min-height:46px;padding:11px 14px}
.vbar a{flex:none;display:flex;align-items:center;min-height:44px;padding:0 6px;font-size:.86rem;color:var(--primary)}
.has-bar footer{padding-bottom:110px}
@media (prefers-reduced-motion:reduce){.vbar,.vbar.on{transition:none}}
