/* User-supplied owner portrait; keep both owner and Hachi visible. */
#profile .profile-layout { grid-template-columns: 300px minmax(0, 1fr); max-width: 900px; gap: 40px; align-items: center; }
#profile .profile-person { display: block; margin: 0; }
#profile img.owner-hachi-photo { display: block; width: 300px; max-width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 80%; border-radius: 6px; }
#profile .profile-person .profile-name { margin: 12px 0 0; }
#profile .owner-name-origin { margin-block: 16px; }
@media (max-width: 767px) {
  #profile .profile-layout { grid-template-columns: 1fr; gap: 24px; }
  #profile .profile-person { display: block; }
  #profile img.owner-hachi-photo { width: min(300px, 100%); margin-inline: auto; }
  #profile .profile-person .profile-name { text-align: center; }
}

#reviews .customer-photos { max-width: 1100px; margin: 48px auto 0; padding: 0 24px; }
#reviews .customer-photos h3 { margin: 0 0 12px; font-size: 24px; }
#reviews .customer-photos p { font-size: 14px; line-height: 1.8; }
#reviews .customer-photo-hint { margin: 12px 0; }
#reviews .customer-photo-rail { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 16px; }
#reviews .customer-photo-rail a { flex: 0 0 min(880px, 100%); scroll-snap-align: start; }
#reviews .customer-photo-rail img { display: block; width: 100%; height: auto; border-radius: 6px; }
#reviews .customer-photo-rail:focus-visible { outline: 3px solid #555d48; outline-offset: 4px; }
@media(max-width:767px) { #reviews .customer-photo-rail a { flex-basis: 640px; } #reviews .customer-photos { padding: 0 20px; } }


#reviews .voice-grid.reviews-rail { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 360px; grid-auto-rows: 1fr; align-items: stretch; scroll-snap-type: none; }
#reviews .reviews-rail .voice-card { height: 100%; box-sizing: border-box; display: flex; flex-direction: column; margin: 0; }
#reviews .voice-meta { margin-top: auto; }
#reviews .customer-photo-rail { scroll-snap-type: none; }
#reviews .auto-scroll-controls { display: flex; justify-content: flex-end; margin: 12px 0; }
#reviews .auto-scroll-toggle { min-height: 44px; padding: 8px 16px; border: 1px solid #80939d; background: #fff; color: #172b35; border-radius: 5px; cursor: pointer; font: inherit; font-size: 14px; }
#reviews .auto-scroll-toggle:focus-visible { outline: 3px solid #555d48; outline-offset: 3px; }
@media(max-width:767px) { #reviews .voice-grid.reviews-rail { grid-auto-columns: 86%; } }
@media(prefers-reduced-motion:reduce) { #reviews .reviews-rail, #reviews .customer-photo-rail { scroll-behavior: auto; } }
