.record-art-photo img { height: auto; aspect-ratio: 3 / 4; object-fit: contain; background: #eadce2; }
.catalog-sheet img { object-fit: cover; object-position: center 22%; }
.feature-image img { max-height: 700px; object-fit: cover; object-position: center 20%; }
.bookshelf-grid { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
.bookshelf-visual { grid-row: span 2; margin: 0; position: relative; overflow: hidden; background: #d9b1b1; }
.bookshelf-visual img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bookshelf-visual figcaption { position: absolute; left: 1rem; bottom: 1rem; padding: .55rem .75rem; background: rgba(255,250,247,.94); font-size: .7rem; }
.bookshelf-visual figcaption a { color: #72364f; font-weight: 700; }
.book-tile { display: flex; flex-direction: column; min-height: 260px; padding: 1.5rem; background: #fffaf6; border: 1px solid #d4c8d0; }
.book-tile > span { color: #ae617e; font: 700 .68rem Arial, sans-serif; letter-spacing: .13em; }
.book-tile h3 { margin: auto 0 1.3rem; font-family: var(--serif); font-size: clamp(1.15rem, 1.6vw, 1.55rem); line-height: 1.5; }
.book-tile h3 { overflow-wrap: anywhere; }
.book-tile a { border-top: 1px solid #e1d2d9; padding-top: .8rem; font-size: .75rem; font-weight: 700; color: #8d3157; text-decoration: none; }
.book-tile a:hover, .book-tile a:focus-visible { text-decoration: underline; }
.record-art-bookgraphic { display: flex; flex-direction: column; justify-content: space-between; min-height: 315px; padding: 1.5rem; background: linear-gradient(135deg, #efe0e7, #d9bfd0); color: #714760; }
.record-art-bookgraphic > span:first-child { font-size: .58rem; letter-spacing: .15em; font-weight: 700; }
.record-art-bookgraphic strong { display: block; font-family: var(--serif); font-size: clamp(2.8rem, 4.5vw, 4.7rem); font-weight: 400; line-height: 1; }
.record-art-bookgraphic > span:last-child { font-size: .64rem; letter-spacing: .12em; }
.record-primary-link { display: inline-flex; align-items: center; margin-top: auto; margin-bottom: .85rem; color: #973d63; font-size: .75rem; font-weight: 700; text-decoration: none; }
.record-primary-link:hover, .record-primary-link:focus-visible { text-decoration: underline; }
.shop-section > img { width: min(100%, 560px); height: min(58vw, 620px); min-height: 390px; object-fit: contain; object-position: center; background: #f4eeef; margin-inline: auto; box-shadow: 18px 20px 0 #e9dce3; }
.shop-section { grid-template-columns: 1fr 1fr; }
.photo-wall-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.photo-wall img { object-fit: contain; background: #eadce2; }
.not-found { display: flex; flex-direction: column; justify-content: center; min-height: 70vh; padding-block: 5rem; }
.not-found h1 { margin: 1rem 0; font-size: clamp(2.8rem, 7vw, 6rem); }
.not-found p:not(.section-number) { max-width: 32rem; color: #675b67; line-height: 1.9; }
.not-found .hero-actions { margin-top: 2rem; }
@media (max-width: 760px) {
  .shop-section { grid-template-columns: 1fr; }
  .shop-section > img { height: auto; min-height: 0; max-height: 640px; }
  .photo-wall-grid { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .photo-wall img { height: min(65vw, 400px); }
  .bookshelf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bookshelf-visual { grid-column: 1 / -1; grid-row: auto; max-height: 560px; }
  .bookshelf-visual img { height: min(95vw, 560px); }
  .book-tile { min-height: 195px; padding: 1rem; }
}
@media (min-width: 761px) and (max-width: 1080px) {
  .shop-section { grid-template-columns: 1fr; }
  .photo-wall-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 430px) {
  .catalog-sheet > span { display: none; }
  .catalog-sheet small { display: block; white-space: normal; font-size: .52rem; line-height: 1.25; padding-top: .2rem; }
}
