/* Product detail: shared header, footer, buttons and product cards use style.css. */
.product-detail__layout { display: grid; grid-template-columns: minmax(0,690fr) minmax(0,750fr); align-items: start; gap: 60rem; }
.product-gallery { min-width: 0; position: relative; border: 1px solid #7096a3b3; background: #fff; }
.product-gallery__viewport { position: relative; aspect-ratio: 4/5; touch-action: pan-y; }
.product-gallery__slide { width: 100%; height: 100%; padding: 8px; }
.product-gallery__slide[hidden] { display: none; }
.product-gallery__slide img { width: 100%; height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.product-gallery__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: max(44px,80rem); height: max(44px,80rem); display: grid; place-items: center; background: #ffffffb3; border-radius: 50%; }
.product-gallery__arrow--prev { left: 0; }
.product-gallery__arrow--next { right: 0; }
.product-gallery__arrow img { width: 100%; height: 100%; }
.product-gallery__arrow--prev img { transform: rotate(180deg); }
.product-gallery__dots { display: flex; justify-content: center; flex-wrap: wrap; padding: 0 8px 8px; }
.product-gallery__dot { width: 32px; height: 32px; display: grid; place-items: center; }
.product-gallery__dot::before { content: ""; width: 10px; height: 10px; border: 1px solid var(--color-blue); border-radius: 50%; background: #fff; }
.product-gallery__dot[aria-current="true"]::before { background: var(--color-blue); }
.product-detail__information { min-width: 0; }
.product-detail__intro { display: flex; align-items: center; gap: 24rem; }
.product-detail__intro .product-card__brand { flex-shrink: 0; min-height: 35rem; }
.product-detail__intro p { font-size: var(--font-size-body); line-height: 2; }
.product-detail h1 { margin-top: 32rem; font-size: max(28px,30rem); line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.product-detail__price { margin-top: 8rem; font-size: max(22px,24rem); line-height: 1.6; }
#main .product-detail__purchase { width: min(100%,500rem); min-height: max(60px,70rem); margin-top: 40rem; font-size: max(16px,18rem); }
.product-detail__purchase-note { margin-top: 32rem; font-size: 14px; line-height: 2; }
.product-detail__sections { display: grid; gap: 40rem; margin-top: 56rem; }
.detail-box h2 { padding: 8rem 32rem; background: #7096a3b3; color: #fff; font-size: max(20px,22rem); line-height: 1.3; }
.detail-box__body { padding: 16rem 32rem; border-left: 1px solid #7096a3b3; font-size: var(--font-size-body); line-height: 2; }
.product-specs { display: grid; gap: 8rem; margin: 0; }
.product-specs > div { display: grid; grid-template-columns: 200rem minmax(0,1fr); gap: 24rem; }
.product-specs dt { position: relative; padding-left: 16rem; }
.product-specs dt::before { content: "・"; position: absolute; left: 0; color: var(--color-blue); }
.product-specs dd { margin: 0; }
.related-products { margin-top: 160rem; padding-top: 160rem; border-top: 1px solid #7096a3b3; }
.related-products__grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,320px),1fr)); gap: 32rem; }
.related-products .product-card { min-height: 0; }
.related-products .product-card__image-link { width: 80%; height: auto; aspect-ratio: 4/5; margin-top: 32rem; }
.related-products .product-card__actions { display: grid; grid-template-columns: 1fr 1.9fr; gap: 8px; }
#main .related-products .product-card__actions .button { padding-inline: 8px; }
.product-detail-page .site-footer { margin-top: 160rem; }
.product-detail__floating-purchase { position: fixed; z-index: 9; right: max(16px,calc((100vw - 1920px)/2 + 29px)); bottom: max(24px, env(safe-area-inset-bottom)); width: 150rem; height: 150rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8rem; border-radius: 50%; background: var(--color-yellow); color: #333; font-size: max(16px,16rem); line-height: 1.5; text-align: center; box-shadow: 0 4px 8px #00000026; transition: box-shadow var(--transition), background-color var(--transition); }
.product-detail__floating-purchase img { width: 44rem; height: 44rem; }
@media (hover: hover) {
  .product-gallery__arrow:hover { background: #f0f6f8; }
  .product-gallery__dot:hover::before { box-shadow: 0 0 0 3px #7096a333; }
  .product-detail__floating-purchase:hover { background: #f1c600; box-shadow: 0 8px 16px #00000026; }
}
/* Desktop type may shrink by at most 2px from the Figma values. */
@media (min-width: 1101px) {
  .related-products .section-heading > p { font-size: max(16px,18rem); }
  .related-products .section-heading h2 { font-size: max(30px,32rem); }
}
@media (max-width: 1400px) {
  .product-detail__intro { flex-wrap: wrap; gap: 8px; }
  .product-specs > div { grid-template-columns: 1fr 1.2fr; gap: 16px; }
}
@media (max-width: 1100px) {
  .product-detail__layout { gap: 32px; }
  .product-detail h1 { margin-top: 24px; }
  #main .product-detail__purchase { width: 100%; margin-top: 24px; min-height: 60px; font-size: 16px; }
  .product-detail__purchase-note { margin-top: 24px; }
  .product-detail__sections { margin-top: 40px; gap: 24px; }
  .detail-box h2 { padding: 8px 16px; }
  .detail-box__body { padding: 16px; font-size: 14px; }
  .related-products { margin-top: 64px; padding-top: 64px; }
  .related-products__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .related-products .product-card__image-link { margin-top: 0; }
  .product-detail-page .site-footer { margin-top: 64px; }
  .product-detail__floating-purchase { display: none; }
}
@media (max-width: 700px) {
  .product-gallery__arrow { width: 44px; height: 44px; }
  .product-gallery__arrow img { width: 36px; height: 36px; }
  .product-detail__layout { grid-template-columns: 1fr; gap: 32px; }
  .product-gallery { width: min(100%,460px); margin-inline: auto; }
  .product-gallery__dot { width: 36px; height: 44px; }
  .product-detail__intro p { font-size: 14px; }
  .product-detail h1 { font-size: 24px; line-height: 1.6; }
  .product-detail__price { font-size: 22px; }
  .product-detail__sections { margin-top: 40px; }
  .product-specs > div { grid-template-columns: 1fr 1.2fr; }
}
@media (max-width: 600px) {
  .related-products__grid { grid-template-columns: 1fr; max-width: 390px; }
  .related-products .product-card { padding: 24px; }
  .product-detail-page .site-footer { margin-top: 56px; }
}
@media (max-width: 360px) {
  .related-products .product-card__actions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .product-detail__floating-purchase { transition: none; }
}

/* Shared product detail data follows the HemRich page structure. */
.detail-box__body p+p{margin-top:16rem}
.product-gallery--single .product-gallery__arrow,.product-gallery--single .product-gallery__dots{display:none}
.product-detail__not-found{padding-block:100rem}
.product-detail__not-found .button{min-width:260rem;margin-top:40rem}
