/* Product detail: compact summary, readable offer and comfortable touch targets. */
.product-page{padding-top:24px;min-height:70vh}
.breadcrumb,.return-link{font-size:12px;color:var(--muted)}
.product-page .breadcrumb{margin:0 0 28px;line-height:1.6}
.product-page .detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:start}
.product-page .detail-visual{padding:28px;background:#fff;border:1px solid var(--line);border-radius:12px}
.product-page .detail-visual img{display:block;width:100%;height:300px;max-height:300px;object-fit:contain}
.product-page .detail-copy{min-width:0;overflow-wrap:anywhere}
.product-page h1{font-size:28px;line-height:1.55;margin:8px 0 14px;text-wrap:pretty}
.product-page #detail-price{font-size:32px;line-height:1.4;margin:14px 0 18px;white-space:normal;overflow-wrap:anywhere}
.product-page .detail-copy .eyebrow{font-size:11px;line-height:1.7;margin:0 0 10px;letter-spacing:1px}
.product-page .detail-disclaimer{font-size:12px;line-height:1.8;margin:0;padding:12px 0}
.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.detail-actions button{min-height:44px;max-width:100%;padding:11px 18px;font-size:13px;line-height:1.5;cursor:pointer}
.detail-actions button:first-child{background:var(--ink);color:var(--paper)}
.detail-actions button:disabled{opacity:.55;cursor:wait}
.detail-actions button:focus-visible,#page-retry:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
#page-status:not([hidden]){padding:12px 16px;background:var(--surface,var(--paper));border:1px solid var(--line);line-height:1.8}
#page-retry{min-height:44px;padding:10px 18px;margin-bottom:20px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
#buy-status:empty{display:none}
.product-page #buy-status:not(:empty){margin-top:12px}
.offer-section{margin:36px 0 40px;padding:26px 0 0;border-top:1px solid var(--line);width:min(100%,960px);max-width:100%}
.offer-section>.eyebrow{font-size:10px;letter-spacing:2.5px;margin-bottom:10px}
.offer-section h2{font-size:22px;line-height:1.5;margin:0}
.offer-section #detail-description{white-space:normal;font-size:16px;line-height:1.95;margin:20px 0 0;overflow-wrap:anywhere}
.offer-section #detail-description p{margin:0 0 16px}
.offer-section #detail-description ul,.offer-section #detail-description ol{padding-left:1.5em;margin:12px 0 20px}
.offer-section #detail-description li+li{margin-top:6px}
.offer-section #detail-description h2,.offer-section #detail-description h3,.offer-section #detail-description h4{font-size:1.1em;line-height:1.6;margin:20px 0 10px}
.offer-section #detail-description blockquote{margin:16px 0;padding:10px 16px;border-left:3px solid var(--line)}
.offer-section #detail-description img{display:block;max-width:100%;height:auto;margin:18px auto;border-radius:8px}
.offer-section #detail-description table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;overscroll-behavior-x:contain}
.offer-section #detail-description td,.offer-section #detail-description th{padding:8px;border:1px solid var(--line);vertical-align:top}
.offer-section a{font-size:inherit;text-decoration:underline;text-underline-offset:5px}
#detail-load-state{color:var(--muted);font-size:14px;line-height:1.8}
#detail-description:empty{display:none}
#detail-description>div:first-child:has(>div>img){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 24px}
.offer-section #detail-description>div:first-child>div>img{width:100%;max-height:320px;object-fit:contain;background:#fff;margin:0;padding:12px;border:1px solid var(--line)}
#detail-description>div:first-child:has(>div>img)>div:only-child{grid-column:1/-1}
@media(min-width:681px) and (max-width:950px){
 .product-page .detail-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px}
 .product-page .detail-visual{padding:18px;position:static}
 .product-page .detail-visual img{height:220px;max-height:220px}
 .product-page h1{font-size:23px}
 .product-page #detail-price{font-size:28px}
}
@media(max-width:680px){
 .product-page{padding-top:16px;margin-left:16px;margin-right:16px}
 .product-page .breadcrumb{font-size:12px;margin-bottom:14px}
 .product-page .detail-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .product-page .detail-visual{position:static;padding:14px;border-radius:10px}
 .product-page .detail-visual img{height:clamp(170px,48vw,220px);max-height:220px}
 .product-page .detail-copy .eyebrow{font-size:11px;margin-bottom:6px;letter-spacing:.5px}
 .product-page h1{font-size:20px;line-height:1.55;margin:0 0 10px}
 .product-page #detail-price{font-size:clamp(25px,6.5vw,28px);line-height:1.45;margin:10px 0 12px;letter-spacing:-.3px}
 .product-page .detail-disclaimer{font-size:12px;line-height:1.75;padding:10px 0}
 .detail-actions{gap:8px;margin-top:10px}
 .detail-actions button{flex:1 1 110px;min-height:46px;padding:11px 12px;font-size:14px}
 .detail-actions #page-buy{flex-basis:100%;font-weight:600}
 .offer-section{margin:26px 0 30px;padding-top:20px}
 .offer-section>.eyebrow{font-size:9px;margin-bottom:7px;letter-spacing:2px}
 .offer-section h2{font-size:20px}
 .offer-section #detail-description{font-size:15px;line-height:1.85;margin-top:16px}
 .offer-section #detail-description p{margin-bottom:14px}
 #detail-description>div:first-child:has(>div>img){gap:10px;margin-bottom:18px}
 .offer-section #detail-description>div:first-child>div>img{padding:6px;max-height:180px}
 .offer-section #detail-description>div:first-child>div:only-child>img{max-height:220px}
 #detail-load-state{font-size:13px}
}
@media(max-height:500px) and (orientation:landscape){
 .product-page .detail-visual{position:static}
 .product-page .detail-visual img{height:180px;max-height:180px}
}

/* Native dialog retains browser pinch zoom; tall source images scroll vertically. */
#detail-image,.offer-section #detail-description img{cursor:zoom-in}
#image-viewer{width:min(1000px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:12px 18px 18px;border-radius:12px;overflow:auto;overscroll-behavior:contain;background:var(--paper)}
#image-viewer::backdrop{background:rgb(10 18 15 / 82%);backdrop-filter:blur(4px)}
#image-viewer-close{position:sticky;top:0;z-index:2;display:block;margin:0 0 10px auto;width:44px;height:44px;min-width:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:26px;line-height:1;box-shadow:0 2px 12px #0002;cursor:pointer}
#image-viewer-close:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
#image-viewer-image{display:block;width:min(100%,720px);max-width:100%;height:auto;max-height:none;object-fit:contain;margin:0 auto;background:#fff;border-radius:6px}
#image-viewer-caption{font-size:13px;line-height:1.7;text-align:center;color:var(--muted);overflow-wrap:anywhere;margin:14px 0 0}
@media(max-width:680px){
 #image-viewer{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));border-radius:10px}
 #image-viewer-close{top:0;margin-bottom:10px}
 #image-viewer-caption{font-size:12px}
}
