/* Soplis product details: content first, with consistent buying controls. */
body.product-page { background:#f7f8fc; color:#242238; font-family:'DM Sans',system-ui,sans-serif; }
.product-page #productContainer { border:1px solid #e7e5ef; box-shadow:0 4px 20px #20133d05; border-radius:22px; overflow:visible; }
.product-detail-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:32px; padding:28px; align-items:start; }
.product-gallery-column { position:sticky; top:100px; min-width:0; }
.product-information { min-width:0; padding:0; }
.product-information h1 { font-size:clamp(24px,2.4vw,32px); line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; }
.product-photo-stage { position:relative; border:1px solid #eeedf3; border-radius:18px; background:#fff; overflow:hidden; touch-action:pan-y pinch-zoom; }
.product-photo-open { display:block; width:100%; cursor:zoom-in; background:white; border:0; }
.product-photo-open img { width:100%; aspect-ratio:1/1; object-fit:contain; display:block; padding:20px; }
.product-photo-nav { display:flex; justify-content:space-between; align-items:center; padding:4px 12px 12px; color:#665e77; font-size:12px; }
.product-photo-nav button { border:1px solid #e2deed; border-radius:50%; width:44px; height:44px; font-size:26px; color:#524566; background:white; }
.product-photo-hint { color:#6d647b; font-size:12px; line-height:1.5; margin:10px 0 14px; }
.product-thumbnails { display:flex; gap:10px; overflow-x:auto; padding:3px 3px 12px; }
.product-thumbnails button { background:white; width:70px; height:70px; border:2px solid #e8e4ef; border-radius:12px; flex-shrink:0; overflow:hidden; padding:5px; }
.product-thumbnails button[aria-pressed=true] { border-color:#763ee0; box-shadow:0 0 0 2px #f0e8ff; }
.product-thumbnails img { width:100%; height:100%; object-fit:contain; }
.product-photo-dialog { width:min(1100px,96vw); max-width:none; height:94dvh; max-height:none; padding:16px; border:0; border-radius:18px; background:#fff; color:#302740; overflow:hidden; }
.product-photo-dialog[open] { display:flex; flex-direction:column; gap:12px; }
.product-photo-dialog::backdrop { background:#151021ce; }
.product-viewer-tools,.product-viewer-nav { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-shrink:0; }
.product-photo-dialog button { min-height:44px; min-width:44px; padding:8px 15px; border:1px solid #ded9e9; background:#f9f7fd; border-radius:10px; font-weight:600; }
.product-viewer-image { flex:1; min-height:0; overflow:auto; display:flex; align-items:center; justify-content:center; background:#fff; touch-action:pan-y pinch-zoom; }
.product-viewer-image img { display:block; max-width:100%; max-height:100%; object-fit:contain; cursor:zoom-in; }
.product-photo-dialog.is-zoomed .product-viewer-image { display:block; }
.product-photo-dialog.is-zoomed img { width:180%; max-width:none; max-height:none; cursor:zoom-out; }
.product-purchase-actions { display:flex; gap:12px; margin-top:22px; }
.product-purchase-actions button { min-height:50px; font-size:14px; border-radius:12px; padding:12px; }
.product-purchase-actions[data-weighted=true] { display:none; }
.product-weight-link { display:block; margin-top:20px; padding:14px 18px; text-align:center; background:#6730cf; border-radius:12px; color:white; font-weight:700; }
.product-checkout-note { margin:12px 0 24px; color:#746b82; font-size:12px; line-height:1.6; }
.product-checkout-note a,.product-seller-link { color:#6531bb; text-decoration:underline; text-underline-offset:3px; }
.product-description-section,.product-specifications { margin:24px 0; border-top:1px solid #eeebf3; padding-top:22px; }
.product-description-section h2,.product-specifications h2 { font-size:18px; font-weight:700; margin-bottom:12px; }
.product-description { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; color:#5e586a; line-height:1.8; }
.product-specifications table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; }
.product-specifications th,.product-specifications td { border-bottom:1px solid #eeebf3; padding:11px 12px; text-align:left; vertical-align:top; white-space:pre-wrap; overflow-wrap:anywhere; }
.product-specifications th { width:38%; color:#685d78; font-weight:500; background:#faf8fd; }
.product-specifications td { color:#352b43; }
.product-related-card { display:block; border:1px solid #e7e4ed; border-radius:16px; padding:14px; background:white; color:#302740; text-decoration:none; }
.product-related-card:hover { border-color:#c8b2f2; box-shadow:0 4px 16px #2a14390a; }
.product-related-card img { padding:8px; }
.product-photo-nav[hidden],.product-viewer-nav[hidden],.product-thumbnails[hidden] { display:none; }
@media(max-width:767px) {
  body.product-page { padding-bottom:165px; }
  .product-main { padding-top:16px; }
  .product-page #productContainer { border-radius:16px; }
  .product-detail-layout { display:block; padding:16px; }
  .product-gallery-column { position:static; }
  .product-information { margin-top:18px; }
  .product-purchase-actions,.product-weight-link { position:fixed; z-index:950; bottom:62px; left:12px; right:12px; padding:10px; margin:0; border:1px solid #e6e1ef; border-radius:16px; background:#fff; box-shadow:0 -3px 20px #2b15401c; }
  .product-weight-link { background:#6730cf; padding:16px; }
  .product-purchase-actions button { min-height:48px; }
  .product-page .cart-float-btn { bottom:154px !important; }
  .product-page .cart-preview { bottom:218px; }
  .product-photo-dialog { width:100vw; height:100dvh; border-radius:0; padding:12px; }
  .product-photo-hint { font-size:11px; }
}

@media(max-width:640px){.cart-float-btn{display:none!important}}
