/* Product photography only. The page's pricing, purchase and review styles are untouched. */
.fpg.commerce-gallery { position:relative; display:grid; grid-template-columns:76px minmax(0,1fr); gap:12px; width:100%; min-width:0; }
.fpg.single-image { grid-template-columns:minmax(0,1fr); }
.fpg .commerce-main-image { grid-column:2; width:100%; padding:10px; border:1px solid #e2e8f0; border-radius:22px; background:#f5f7fa; box-shadow:0 12px 32px rgb(14 31 51 / 4%); }
.fpg.single-image .commerce-main-image { grid-column:1; }
.fpg-photo { position:relative; overflow:hidden; border-radius:15px; isolation:isolate; }
.fpg .commerce-main-image-stage { display:block; width:100%; height:auto; min-height:0!important; aspect-ratio:1; overflow:hidden; border-radius:15px; background:#e7e9ec; cursor:zoom-in; }
.fpg .commerce-main-image-stage #productMainImage { display:block; width:100%; height:100%; max-height:none!important; object-fit:cover; object-position:center; transform:none!important; transition:none; will-change:auto; }
.fpg .commerce-main-image-stage:focus-visible { outline:3px solid #ff984f; outline-offset:-4px; }
.fpg-open-button { position:absolute; top:14px; right:14px; display:flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:0 15px; border:1px solid rgb(255 255 255 / 36%); border-radius:12px; color:#fff; background:rgb(12 27 44 / 86%); backdrop-filter:blur(10px); font-family:inherit; font-size:12px; font-weight:600; line-height:1.2; box-shadow:0 6px 22px rgb(0 0 0 / 15%); cursor:pointer; transition:background .18s, border-color .18s; }
.fpg-open-button:hover { color:#fff; background:#1a344d; border-color:#ffae79; }
.fpg-photo-caption { position:absolute; bottom:14px; left:14px; display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid rgb(255 255 255 / 20%); border-radius:10px; color:#fff; background:rgb(12 27 44 / 72%); backdrop-filter:blur(8px); font-size:11px; pointer-events:none; }
.fpg-photo-caption i { color:#ffb480; }
.fpg .commerce-thumbnails { position:absolute; inset:0 auto 0 0; display:flex; flex-direction:column; gap:10px; width:76px; min-width:0; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; }
.fpg .commerce-thumbnails button { flex:0 0 76px; width:76px; height:76px; padding:3px; border:1px solid #dce3ea; border-radius:12px; background:#fff; }
.fpg .commerce-thumbnails button.active { border:2px solid #f48c4a; }
.fpg .commerce-thumbnails img { width:100%; height:100%; object-fit:cover; border-radius:8px; }
.fpg-empty { display:grid; place-items:center; aspect-ratio:1; padding:25px; background:#edf0f4; color:#59697c; }
/* Frameless lightbox: the photograph is the surface, not a boxed card. */
.fpg-dialog { position:fixed; inset:0; box-sizing:border-box; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; border-radius:0; overflow:hidden; color:#f5f7fa; background:rgb(8 12 17 / 94%); box-shadow:none; }
.fpg-dialog:not([open]) { display:none!important; }
.fpg-dialog::backdrop { background:rgb(3 7 11 / 60%); backdrop-filter:blur(4px); }
.fpg-dialog[open] { display:block; animation:fpg-open .2s ease-out both; }
.fpg-dialog[data-fpg-fallback] { inset:0; z-index:2147483000; }
.fpg-dialog:fullscreen { width:100vw; height:100vh; height:100dvh; margin:0; }
.fpg-dialog-shell { display:grid; grid-template-rows:auto minmax(0,1fr) auto auto auto; width:100%; height:100%; min-height:0; }
.fpg-toolbar { position:relative; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:72px; padding:14px 28px; background:none; border:0; }
.fpg-heading { min-width:0; }
.fpg-eyebrow { display:none; }
.fpg-heading h2 { margin:0; overflow:hidden; color:#e1e5ea; font-size:13px; font-weight:500; line-height:1.5; text-overflow:ellipsis; white-space:nowrap; }
.fpg-tools { display:flex; flex-shrink:0; align-items:center; gap:5px; }
.fpg-tools button,.fpg-arrow { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:44px; height:44px; padding:0; border:0; border-radius:50%; color:#eef3f8; background:rgb(255 255 255 / 7%); font-size:15px; cursor:pointer; transition:background .16s,color .16s; }
.fpg-tools button:hover,.fpg-arrow:hover { color:#fff; background:rgb(255 255 255 / 16%); }
.fpg-tools button:disabled,.fpg-arrow:disabled { opacity:.35; cursor:default; }
.fpg-tools [data-fpg-zoom] { display:inline-grid; place-items:center; min-width:47px; margin:0 1px; color:#c6cdd7; font-size:11px; font-variant-numeric:tabular-nums; }
.fpg-tools .fpg-close { margin-left:14px; color:#fff; background:rgb(255 255 255 / 12%); font-size:19px; }
.fpg-tools .fpg-close:hover { color:#fff; background:rgb(255 255 255 / 22%); }
.fpg-tools button:focus-visible,.fpg-arrow:focus-visible,.fpg-filmstrip button:focus-visible,.fpg-open-button:focus-visible { outline:2px solid #ffb582; outline-offset:3px; }
.fpg-viewer { position:relative; min-width:0; min-height:0; padding:0 64px; overflow:hidden; }
.fpg-stage { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-width:0; min-height:0; overflow:hidden; touch-action:none; cursor:zoom-in; outline:none; }
.fpg-stage:focus-visible { outline:2px solid #ffb582; outline-offset:-2px; }
.fpg-stage [data-fpg-image] { display:block; flex-shrink:0; max-width:none; max-height:none; object-fit:contain; transform-origin:center; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.fpg-stage.is-zoomed { cursor:zoom-out; }
.fpg-stage.is-dragging { cursor:grabbing; }
.fpg-loading { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:#ffb480; font-size:26px; pointer-events:none; }
.fpg-dialog:not(.is-loading) .fpg-loading { display:none; }
.fpg-dialog.is-loading [data-fpg-image],.fpg-dialog.has-error [data-fpg-image] { opacity:0; }
.fpg-arrow { position:absolute; top:50%; z-index:2; transform:translateY(-50%); }
.fpg-prev { left:14px; }
.fpg-next { right:14px; }
.fpg-arrow[hidden],.fpg-tools button[hidden] { display:none!important; }
.fpg-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:48px; padding:10px 28px; border:0; background:none; color:#a4adb9; }
.fpg-count { color:#dce1e8; font-size:11px; font-variant-numeric:tabular-nums; }
.fpg-footer p { margin:0; text-align:right; font-size:11px; line-height:1.5; }
.fpg-footer p span { display:block; color:#8894a4; font-size:10px; }
.fpg-filmstrip { display:flex; gap:8px; justify-content:safe center; min-width:0; padding:8px 18px 16px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#566373 transparent; }
.fpg-filmstrip[hidden],.fpg-filmstrip:empty { display:none!important; }
.fpg-filmstrip button { display:block; flex:0 0 60px; width:60px; height:52px; padding:2px; border:1px solid #566373; border-radius:5px; background:none; cursor:pointer; }
.fpg-filmstrip button.is-active,.fpg-filmstrip button[aria-pressed="true"] { border:2px solid #ffad76; }
.fpg-filmstrip img { display:block; width:100%; height:100%; border-radius:2px; object-fit:cover; }
.fpg-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; margin:0; color:#ffbb8c; text-align:center; font-size:12px; }
.fpg-status:empty { display:none; }
.fpg-dialog.has-error .fpg-status:not(:empty) { position:static; width:auto; height:auto; clip-path:none; white-space:normal; padding:8px 18px 12px; }
@keyframes fpg-open { from { opacity:0; } to { opacity:1; } }
@media (max-width:767.98px) {
  .fpg.commerce-gallery { grid-template-columns:minmax(0,1fr); gap:10px; }
  .fpg .commerce-main-image { grid-column:1; grid-row:1; padding:8px; border-radius:18px; }
  .fpg .commerce-thumbnails { position:static; inset:auto; grid-column:1; grid-row:2; flex-direction:row; width:100%; padding:2px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; }
  .fpg .commerce-thumbnails button { flex:0 0 64px; width:64px; height:64px; }
  .fpg-photo,.fpg .commerce-main-image-stage { border-radius:11px; }
  .fpg-open-button { top:10px; right:10px; padding:0 12px; font-size:11px; }
  .fpg-photo-caption { bottom:10px; left:10px; padding:8px 10px; font-size:10px; }
  .fpg-toolbar { flex-wrap:wrap; gap:8px; min-height:0; padding:12px 12px 8px; padding-top:max(12px,env(safe-area-inset-top)); }
  .fpg-heading { width:100%; min-height:32px; padding-right:56px; display:flex; align-items:center; }
  .fpg-heading h2 { font-size:12px; }
  .fpg-tools { width:100%; justify-content:center; gap:4px; }
  .fpg-tools .fpg-close { position:absolute; top:max(8px,env(safe-area-inset-top)); right:12px; margin:0; }
  .fpg-tools [data-fpg-zoom] { min-width:39px; font-size:10px; }
  .fpg-viewer { padding:0; }
  .fpg-prev { left:9px; }
  .fpg-next { right:9px; }
  .fpg-arrow { background:rgb(8 12 17 / 72%); }
  .fpg-footer { gap:10px; min-height:52px; padding:10px 14px; padding-bottom:max(10px,env(safe-area-inset-bottom)); }
  .fpg-footer p { font-size:10px; }
  .fpg-footer p span { font-size:9px; }
  .fpg-filmstrip { padding:8px 12px max(12px,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion:reduce) { .fpg-dialog[open] { animation:none; } .fpg button { transition:none; } }
