.ph-product-layout { font-family: 'LINE Seed JP', 'Noto Sans JP', sans-serif; }
.ph-product-main { width: 100%; max-width: 1480px; margin-inline: auto; padding: 24px clamp(16px,2.3vw,40px) 40px; }
.ph-product-layout h1,.ph-product-layout h2,.ph-product-layout p { margin: 0; }
.ph-product-layout a { color: #0070d9; }
.ph-product-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; margin: 0 0 24px; overflow-wrap: anywhere; }
.ph-product-overview { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 24px; align-items: start; }
.ph-product-gallery,.ph-product-summary { min-width: 0; }
.ph-product-stage,.ph-product-empty { position: relative; border: 1px solid #cfe1fa; border-radius: 18px; background: #fff; overflow: hidden; }
.ph-product-image { display: block; position: relative; }
.ph-product-image[hidden] { display: none; }
.ph-product-image > img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.ph-product-zoom-label { display: inline-flex; align-items: center; gap: 6px; position: absolute; right: 12px; bottom: 12px; padding: 12px; border: 1px solid #cfe1fa; border-radius: 30px; font-size: 12px; background: #fffffff2; color: #486e98; }
.ph-product-thumbnails { display: flex; gap: 10px; overflow-x: auto; padding: 14px 3px 8px; }
.ph-product-thumbnails button { flex: 0 0 calc((100% - 40px)/5); min-width: 58px; border: 2px solid #d5e5fb; padding: 0; border-radius: 8px; background: white; overflow: hidden; cursor: pointer; }
.ph-product-thumbnails button[aria-pressed=true] { border-color: #ff1493; }
.ph-product-thumbnails img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.ph-product-notes { margin-top: 14px; font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.ph-product-notes img { max-width: 100%; height: auto; }
.ph-product-empty { display: grid; place-items: center; aspect-ratio: 1; color: #555f73; }
.ph-product-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 18px; }
.ph-product-chips a,.ph-product-chips .ph-new-label { padding: 6px 15px; border-radius: 30px; background: linear-gradient(#69ceff,#0788f8); color: #fff; font-weight: 700; font-size: 13px; text-decoration: none; }
.ph-product-chips a:nth-child(even) { background: linear-gradient(#ffcc84,#ff9500); color: #fff; }
.ph-product-chips .ph-new-label { background: #ed1687; }
.ph-product-summary h1 { font-size: clamp(24px,2.5vw,38px); line-height: 1.35; font-weight: 900; overflow-wrap: anywhere; margin-bottom: 22px; color: #10112b; }
.ph-product-release { border: 1px solid #ffd0ee; border-radius: 16px; padding: 20px; background: linear-gradient(120deg,#fff1fa,#ffe7f5); }
.ph-product-release h2 { color: #e60082; font-size: 24px; font-weight: 900; }
.ph-product-release-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 12px 0; }
.ph-product-release-row p { flex: 1 1 180px; font-size: clamp(24px,2.5vw,38px); line-height: 1.3; font-weight: 900; color: #cd0074; }
.ph-product-release-row a { flex: 0 0 auto; display: block; white-space: nowrap; padding: 14px; color: white; background: linear-gradient(120deg,#ff55ba,#ed1687); border-radius: 12px; font-size: 14px; font-weight: 700; text-decoration: none; box-shadow: 0 3px 8px #ed168722; }
.ph-product-release small { display: block; font-size: 12px; line-height: 1.7; }
.ph-product-facts { margin-top: 18px; border: 1px solid #cfe1fa; border-radius: 16px; background: #ffffffed; padding: 16px; }
.ph-product-facts h2 { color: #0079e7; font-size: 24px; }
.ph-product-facts dl { margin: 8px 0 0; }
.ph-product-facts dl > div { display: grid; grid-template-columns: 95px minmax(0,1fr); gap: 14px; margin-top: 4px; }
.ph-product-facts dt { display: flex; align-items: center; background: #f0f5fa; color: #42698f; padding: 10px; font-weight: 700; border-radius: 3px; }
.ph-product-facts dd { margin: 0; padding: 10px 0; border-top: 1px solid #dfebfa; overflow-wrap: anywhere; line-height: 1.7; }
.ph-product-facts > p,.ph-product-facts > a { display: block; margin-top: 12px; font-size: 14px; line-height: 1.8; }
.ph-product-panel { padding: 24px; margin-top: 28px; border: 1px solid #cfe1fa; border-radius: 18px; background: #fffffff0; }
.ph-product-panel h2 { color: #0079e7; font-size: clamp(21px,2.3vw,32px); font-weight: 900; margin-bottom: 20px; }
.ph-product-panel h2 > span { color: #ed1687; }
.ph-product-store-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.ph-product-store-actions a { display: flex; flex-direction: column; justify-content: center; min-height: 110px; padding: 22px; border: 3px solid white; border-radius: 16px; background: linear-gradient(120deg,#ff56b8,#f0158e); box-shadow: 0 0 0 1px #fbd0e9,0 3px 10px #ef16871a; color: #fff; font-size: clamp(18px,2vw,26px); text-decoration: none; font-weight: 700; }
.ph-product-store-actions a:last-child { background: linear-gradient(120deg,#15bbfa,#0089fa); box-shadow: 0 0 0 1px #bde7ff,0 3px 10px #0089fa22; }
.ph-product-store-actions span { font-size: 14px; margin-top: 5px; }
#ph-product-store-list { scroll-margin-top: 85px; margin-top: 20px; }
#ph-product-store-list > p { font-size: 14px; color: #555f73; }
.ph-product-stores details { display: flow-root; border-top: 1px solid #deebf9; }
.ph-product-stores summary { padding: 16px 8px; cursor: pointer; font-weight: 700; color: #315f91; }
.ph-product-stores summary span { float: right; font-size: 13px; font-weight: 400; }
.ph-product-stores ul { padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.ph-product-stores li { background: #f5faff; padding: 16px; border-radius: 10px; font-size: 14px; line-height: 1.8; }
.ph-product-stores li > a { display: inline-block; margin-right: 16px; padding-block: 4px; }
.ph-product-related > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.ph-product-related a { display: block; color: #10112b; text-decoration: none; min-width: 0; line-height: 1.6; font-size: 14px; overflow-wrap: anywhere; }
.ph-product-related > div img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border: 1px solid #d0e3fa; border-radius: 12px; background: #fff; margin-bottom: 8px; }
.ph-product-lightbox { max-width: 95vw; max-height: 95dvh; padding: 60px 12px 12px; border: 0; border-radius: 12px; background: white; }
.ph-product-lightbox::backdrop { background: #111528cc; }
.ph-product-lightbox img { display: block; max-width: 85vw; max-height: 78dvh; object-fit: contain; }
.ph-product-lightbox .ph-welcome-guide__close { position: absolute; right: 12px; top: 8px; }
body:has(.ph-product-lightbox[open]) { overflow: hidden; }
.ph-product-content { overflow-wrap: anywhere; }
.ph-product-content img,.ph-product-content iframe { max-width: 100%; }
.ph-product-layout a:hover { filter: brightness(.95); }
@media (max-width:1100px) and (min-width:768px) { .ph-product-layout:not(.ph-sidebar-is-collapsed) .ph-product-overview { grid-template-columns: 1fr; } }
@media (max-width:767px) {
 .ph-product-main { padding: 16px 14px 28px; }
 .ph-product-overview { grid-template-columns: 1fr; gap: 20px; }
 .ph-product-summary h1 { font-size: 26px; }
 .ph-product-breadcrumb { font-size: 11px; margin-bottom: 16px; }
 .ph-product-panel { padding: 18px 14px; margin-top: 22px; }
 .ph-product-store-actions { grid-template-columns: 1fr; gap: 12px; }
 .ph-product-store-actions a { min-height: 88px; padding: 16px; }
 .ph-product-related > div { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 12px; }
 .ph-product-stores ul { grid-template-columns: 1fr; }
 .ph-product-release { padding: 16px; }
}
.ph-product-release h2,.ph-product-panel h2 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.ph-product-release h2 img,.ph-product-panel h2 img { object-fit: contain; margin-right: 6px; }
.ph-product-release-row p { flex: 1 0 auto; color: #10112b; font-size: clamp(22px,2.5vw,27px); white-space: nowrap; }
.ph-product-release-row p small { display: inline-block; margin-right: 8px; padding: 4px 8px; border: 1px solid #f7b6d9; border-radius: 8px; background: #fff9fd; color: #c60070; font-size: 14px; line-height: 1.4; font-weight: 800; letter-spacing: .02em; vertical-align: middle; box-shadow: 0 2px 4px #ed16870d; }
.ph-product-release-row p strong { color: #ee0088; font-size: clamp(48px,5.5vw,68px); font-weight: 900; }
.ph-product-release-row p span { white-space: nowrap; }
.ph-product-layout .store-fv { display: flex; gap: 24px; padding: 24px; margin-bottom: 24px; background: #fff; border: 1px solid #cfe1fa; border-radius: 18px; }
.ph-product-layout .store-fv__info { flex: 1; min-width: 0; }
.ph-product-layout .store-fv__image { width: 30%; }
.ph-product-layout .store-fv__image img { max-width: 100%; height: auto; }
.ph-product-layout .store-fv__name { font-size: 24px; }
.ph-product-layout .store-fv__buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.ph-product-layout .store-fv .btn { margin-top: 12px; font-size: 14px; }
@media (max-width:767px) {
 .ph-product-main { padding-top: 58px; }
 .ph-product-layout .store-fv { flex-direction: column; }
 .ph-product-layout .store-fv__image { width: 100%; }
 .ph-product-panel h2 { font-size: 20px; gap: 0; }
 .ph-product-panel h2 img { width: 30px; }
}
.ph-product-panel h2 { display: block; }
.ph-product-panel h2 img { vertical-align: middle; }

.ph-product-main > .ph-utilities { margin-bottom: 24px; }
@media (max-width:767px) { .ph-product-main > .ph-utilities { display: none; } }

.ph-product-store-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.ph-product-stores .ph-product-store-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 9px 16px; border: 2px solid #0070d9; border-radius: 30px; background: #e6f5ff; color: #0064bf; box-shadow: 0 2px 5px #0079e71a; font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ph-product-stores .ph-product-store-link--website { border-color: #05962a; background: #e6ffeb; color: #087c27; box-shadow: 0 2px 5px #05962a22; }
.ph-product-store-link svg { display: block; flex: none; width: 21px; height: 21px; }
