/* Product pages + 404 (generated by build.mjs). Builds on styles.css tokens. */
.product-page{background:var(--cream)}
.pd-main{padding:22px 0 90px}
.pd-crumbs{display:flex;gap:8px;align-items:center;font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.pd-crumbs a{color:var(--muted);text-decoration:none}
.pd-crumbs a:hover{color:var(--blue)}
.pd-crumbs [aria-current]{color:var(--ink)}

.pd-hero{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.pd-media{position:relative;background:#fff;border-radius:var(--radius);overflow:hidden;aspect-ratio:1}
.pd-media img{width:100%;height:100%;object-fit:contain;padding:8%}
.pd-tag{position:absolute;top:22px;left:22px}
.pd-buy{background:var(--black);color:#fff;border-radius:var(--radius);padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;justify-content:center}
.pd-buy h1{font-size:clamp(64px,8vw,120px);margin:4px 0 12px;overflow-wrap:anywhere}
.pd-size{margin:0 0 24px;color:#a7abbb;font-weight:600;font-size:17px}
.pd-price-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.pd-price{font-weight:900;font-stretch:72%;font-size:64px;line-height:1}
.pd-stock{font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:7px 12px;border-radius:999px}
.pd-stock.ok{background:#dcfae6;color:#067647}
.pd-stock.low{background:#fef0c7;color:#93370d}
.pd-stock.out{background:#3a3d4a;color:#c9cdf0}
.pd-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pd-qty{margin:0;background:rgba(255,255,255,.1);color:#fff}
.pd-qty button{color:#fff;width:44px;height:52px;font-size:20px}
.pd-qty button:disabled{opacity:.3;cursor:not-allowed}
.pd-qty span{min-width:28px;font-size:17px}
.pd-actions .btn{flex:1}
.pd-checkout{display:inline-block;margin-top:14px;color:#7d95ff;font-weight:800;font-size:14px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.pd-checkout:hover{color:#fff}
.pd-points{list-style:none;margin:26px 0 0;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:8px;font-size:14px;color:#a7abbb}
.pd-points b{color:#fff}
.pd-ruo{margin:18px 0 0;font-size:12px;color:#7c8092}

.pd-section{background:#fff;border-radius:var(--radius);padding:clamp(24px,4vw,40px);margin-bottom:12px}
.pd-section h2{font-size:clamp(36px,5vw,56px);margin-bottom:16px}
.pd-section p{margin:0 0 12px;max-width:72ch;font-size:17px;line-height:1.65;color:#2a2d3a}
.pd-section p:last-child{margin-bottom:0}
.pd-section a{color:var(--blue);font-weight:700}
.pd-specs{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pd-specs div{background:var(--cream);border-radius:14px;padding:14px 16px}
.pd-specs dt{font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.pd-specs dd{margin:0;font-weight:600;font-size:15px}
.pd-steps{margin:0;padding-left:22px;display:grid;gap:8px;font-size:16px;line-height:1.55}
.pd-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.pd-rel{display:flex;flex-direction:column;gap:2px;background:var(--cream);border-radius:18px;padding:12px 14px 16px;text-decoration:none;color:var(--ink);border:2px solid transparent;transition:border-color .2s,transform .25s var(--ease)}
.pd-rel:hover{border-color:var(--black);transform:translateY(-3px)}
.pd-rel img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border-radius:12px;padding:8%;margin-bottom:8px}
.pd-rel strong{font-weight:900;font-stretch:75%;font-size:22px;text-transform:uppercase;line-height:1}
.pd-rel span{font-size:13px;color:var(--muted)}
.pd-section .pd-rel{color:var(--ink);font-weight:400}

.pd-404{padding:60px 0 90px}
.pd-404 h1{font-size:clamp(72px,12vw,160px);margin:6px 0 18px}
.pd-404 > p{color:var(--muted);font-size:17px;margin:0 0 24px}
.pd-404 .pd-related{margin-bottom:28px}
.pd-404 .pd-rel{background:#fff}
.pd-404 .label{color:var(--blue)}

@media (max-width:900px){
  .pd-hero{grid-template-columns:1fr}
  .pd-media{aspect-ratio:4/3}
}
@media (max-width:820px){ .pd-nav{display:none} }
@media (max-width:600px){
  .pd-main{padding-top:14px}
  .pd-buy{padding:26px 20px}
  .pd-price{font-size:52px}
  .pd-specs{grid-template-columns:1fr}
  .pd-related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-section{padding:22px 18px}
  .pd-section p{font-size:16px}
}
