/* ===== PSPVault Games Page — Retronaga product-page layout fused with PSP Vault elements ===== */

/* --- Flatsome / WC takeover: strip the default single-product chrome --- */
body.pvg-page .product-page-container > .row > .col,
body.pvg-page .product-main .product-gallery,
body.pvg-page .product-main .product-summary,
body.pvg-page .product-main .product-info,
body.pvg-page .product .summary,
body.pvg-page .product > .images,
body.pvg-page .product .product-images,
body.pvg-page .product .onsale,
body.pvg-page .woocommerce-product-gallery,
body.pvg-page .product-page-container .product-info-tabs,
body.pvg-page .woocommerce-tabs,
body.pvg-page .related.products,
body.pvg-page .upsells.products,
body.pvg-page .cross-sells,
body.pvg-page .product-footer,
body.pvg-page nav.woocommerce-breadcrumb,
body.pvg-page .single-navigation,
body.pvg-page .product-pager,
body.pvg-page .product-main > .row > .large-7,
body.pvg-page .product-main > .row > .large-5,
body.pvg-page .product-main > .row > .product-gallery,
body.pvg-page .product-main > .row > .product-summary,
body.pvg-page .product-thumbnails,
body.pvg-page .product-info,
body.pvg-page .badge-container,
body.pvg-page .star-rating,
body.pvg-page .product-share,
body.pvg-page .product-footer-tabs,
body.pvg-page .product_meta,
body.pvg-page .product_title,
body.pvg-page .price-wrapper,
body.pvg-page .sticky-add-to-cart,
body.pvg-page .woocommerce-product-details__short-description { display:none !important; }
body.pvg-page > form.cart, body.pvg-page #wrapper > form.cart, body.pvg-page #content > form.cart,
body.pvg-page .product > form.cart, body.pvg-page .product-main > form.cart, body.pvg-page .product-page-container > form.cart { display:none !important; }
body.pvg-page .product-main { padding:0 !important; background:transparent !important; margin:0 !important; }
body.pvg-page .product-main .container, body.pvg-page .shop-container, body.pvg-page .shop-container > .container,
body.pvg-page .product-container { max-width:none !important; padding:0 !important; margin:0 !important; width:100% !important; }
body.pvg-page .product { background:transparent !important; padding:0 !important; margin:0 !important; }
body.pvg-page .product > .row, body.pvg-page .product-main .row { display:block !important; margin:0 !important; padding:0 !important; }
body.pvg-page #content, body.pvg-page #wrapper { background:#e9e9eb !important; padding:0 !important; margin:0 !important; }
body.pvg-page .page-wrapper { padding-top:0 !important; padding-bottom:0 !important; }
body.pvg-page .page-title { display:none !important; }
body.pvg-page main#main { padding:0 !important; }
body.pvg-page .product-main .col { padding:0 !important; }
body.pvg-page { overflow-x:hidden; }
@media (max-width:899px) { body.pvg-page #scroll-to-top { bottom:130px !important; } }

/* --- root --- */
.pvg { --bg:#e9e9eb; --ink:#15151a; --muted:#9a9aa0; --line:rgba(0,0,0,.08); --blue:#3b6fb0; --green:#1f8a5b;
  font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif; color:var(--ink); -webkit-font-smoothing:antialiased;
  background:var(--bg); padding:0 0 150px; position:relative; box-sizing:border-box;
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.pvg *, .pvg *::before, .pvg *::after { box-sizing:border-box; }
.pvg img { max-width:100%; display:block; }
.pvg a { color:inherit; text-decoration:none; }
.pvg-grid { display:flex; flex-direction:column; }

/* --- gallery: full-bleed, dots, bottom fade (Retronaga) --- */
.pvg-gallery { padding:0; }
.pvg-gmain { position:relative; overflow:hidden; background:linear-gradient(165deg,#f3f3f5,#dcdce0); aspect-ratio:3/2; touch-action:pan-y; -webkit-user-select:none; user-select:none; }
.pvg-gmain img { width:100%; height:100%; object-fit:cover; display:block; -webkit-user-drag:none; pointer-events:none; }
.pvg-gfade { position:absolute; inset:0; pointer-events:none; z-index:2;
  background:radial-gradient(135% 88% at 0% 100%, var(--bg) 0%, rgba(233,233,235,0) 46%), radial-gradient(135% 88% at 100% 100%, var(--bg) 0%, rgba(233,233,235,0) 46%), linear-gradient(to top, var(--bg) 0%, rgba(233,233,235,0) 10%); }
.pvg-gdots { position:absolute; left:0; right:0; bottom:12px; z-index:3; display:flex; justify-content:center; align-items:center; gap:7px; padding:0 16px; }
.pvg-gdot { width:7px; height:7px; border-radius:999px; background:rgba(255,255,255,.55); box-shadow:0 1px 3px rgba(0,0,0,.3); cursor:pointer; transition:width .2s, background .2s; flex:0 0 auto; }
.pvg-gdot.pvg-sel { width:22px; background:#fff; }
.pvg-saleTag { position:absolute; left:14px; top:14px; z-index:3; background:#161616; color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:6px 10px; border-radius:99px; }

/* --- info --- */
.pvg-info { padding:16px 18px 6px; }
.pvg-crumbs { display:flex; align-items:center; gap:7px; font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; white-space:nowrap; overflow:hidden; }
.pvg-crumbs a { color:var(--muted); } .pvg-crumbs a:last-child { color:var(--ink); }
.pvg-title { font-size:28px; font-weight:800; letter-spacing:-.03em; line-height:1.08; margin:0; color:var(--ink); font-family:"Hanken Grotesk",system-ui,sans-serif; }
.pvg-price { display:flex; align-items:flex-end; gap:6px; margin-top:10px; line-height:1; }
.pvg-cur { color:var(--muted); font-weight:800; letter-spacing:.05em; text-transform:uppercase; font-size:11px; margin-bottom:3px; }
.pvg-amt { font-weight:800; letter-spacing:-.02em; font-size:32px; }
.pvg-dec { color:var(--muted); font-weight:800; font-size:18px; }
.pvg-was { color:var(--muted); font-weight:700; font-size:14px; text-decoration:line-through; margin:0 0 4px 6px; }
.pvg-stock { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:800; padding:6px 12px; border-radius:999px; margin-top:14px; }
.pvg-stock .pvg-dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.pvg-stock.pvg-out { color:#b13c3c; background:rgba(177,60,60,.1); }
.pvg-stock.pvg-one { color:#b8621b; background:rgba(199,91,50,.12); }
.pvg-desc { display:flex; gap:11px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:13px; padding:13px 15px; box-shadow:0 2px 10px rgba(0,0,0,.04); margin-top:14px; }
.pvg-desc-ic { flex:0 0 auto; margin-top:1px; display:flex; }
.pvg-desc p { font-size:13.5px; line-height:1.55; color:#52525a; font-weight:500; margin:0; }

/* --- specs (Retronaga 2-col grid) --- */
.pvg-specs { padding:22px 18px 4px; }
.pvg-v2grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pvg-v2cell { background:#fff; border:1px solid var(--line); border-radius:14px; padding:15px 16px; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.pvg-v2k { font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.pvg-v2v { font-size:17px; font-weight:800; margin-top:6px; word-break:break-word; line-height:1.2; }
.pvg-v2v.pvg-accent { color:var(--blue); }
.pvg-v2v.pvg-mono { font-variant-numeric:tabular-nums; }

/* --- cards --- */
.pvg-cards { padding:24px 18px 0; display:flex; flex-direction:column; gap:12px; }
.pvg-ico { width:40px; height:40px; border-radius:50%; background:#fff; color:var(--ink); display:flex; align-items:center; justify-content:center; flex:0 0 auto; box-shadow:0 3px 9px rgba(0,0,0,.08); }
.pvg-d { font-size:15px; font-weight:800; line-height:1.2; }
.pvg-s { font-size:11.5px; font-weight:600; color:#5a5a60; margin-top:1px; line-height:1.4; }
.pvg-s b { color:var(--ink); }
.pvg-region { display:flex; align-items:center; gap:12px; border-radius:14px; padding:12px 14px; border:1px solid rgba(0,0,0,.04); }
.pvg-region--ok { background:linear-gradient(120deg,#e9f5ec,#eef7f0); }
.pvg-region--ok .pvg-ico { color:var(--green); }
.pvg-region--warn { background:linear-gradient(120deg,#fff4e6,#fdeede); }
.pvg-region--warn .pvg-ico { color:#c75b32; }
.pvg-dv2 { background:linear-gradient(120deg,#edf6f0,#e6f0ff); border:1px solid rgba(0,0,0,.04); border-radius:14px 14px 0 0; padding:12px 14px; display:flex; align-items:center; gap:12px; margin-bottom:-12px; }
.pvg-dvtx { flex:1; min-width:0; }
.pvg-dv2 .pvg-d { font-size:19px; letter-spacing:-.01em; margin-top:2px; }
.pvg-usps { display:none; flex:0 0 auto; height:36px; align-items:center; border-left:1px solid rgba(0,0,0,.08); padding-left:12px; }
.pvg-usps.is-on { display:flex; }
.pvg-usps img { height:30px; width:auto; }
.pvg-ship-note { display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.55); border:1px solid rgba(0,0,0,.04); border-top:1px solid rgba(120,140,140,.16); border-radius:0 0 14px 14px; padding:10px 14px; font-size:12px; font-weight:700; color:#5a5a58; }
.pvg-warr { background:#fff; border:1px solid var(--line); border-radius:14px; padding:11px 14px; display:flex; align-items:center; gap:12px; cursor:pointer; transition:.15s; -webkit-tap-highlight-color:transparent; }
.pvg-warr:active { transform:scale(.99); background:#fafafa; }
.pvg-warr .pvg-wi { flex:0 0 auto; color:var(--blue); display:flex; }
.pvg-warr .pvg-warrGo { margin-left:auto; flex:0 0 auto; color:var(--muted); display:flex; }
.pvg-wt { font-size:14px; font-weight:800; }
.pvg-wd { font-size:11.5px; color:#6a6a70; margin-top:1px; line-height:1.35; }

/* --- buybox: desktop inline; the WC form stays in the DOM (hidden) so the AJAX add can read it --- */
.pvg-buybox { display:none; margin:20px 18px 0; padding:16px 18px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.pvg-buybox-form { position:absolute; left:-9999px; top:0; width:1px; height:1px; overflow:hidden; }
.pvg-deskAdd { width:100%; background:var(--ink); color:#fff; border:0; font-family:inherit; font-size:14.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:18px 22px; border-radius:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:9px; transition:.15s; }
.pvg-deskAdd:hover { background:#2a2a30; }
.pvg-soldout { display:flex; align-items:center; justify-content:center; padding:16px 20px; border-radius:14px; background:#f1f1f4; color:#8a8a92; font-weight:800; font-size:14.5px; letter-spacing:.04em; text-transform:uppercase; }

/* --- section heads --- */
.pvg-secHead { display:flex; align-items:center; gap:14px; margin-bottom:15px; }
.pvg-secHead h3 { font-size:18px; font-weight:800; letter-spacing:-.01em; color:var(--ink); white-space:nowrap; margin:0; }
.pvg-secHead .pvg-ln { flex:1; height:1px; background:var(--line); }
.pvg-eyebrow { font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:11px; }

/* --- pairing (Retronaga cards) --- */
.pvg-pairing { padding:30px 18px 4px; }
.pvg-pairGrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pvg-pairCard { position:relative; display:block; height:128px; border-radius:14px; overflow:hidden; background:#17171c; box-shadow:0 4px 14px rgba(0,0,0,.14); }
.pvg-pairBg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.pvg-pairCard::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(6,8,12,.92) 14%,rgba(6,8,12,.28) 64%,rgba(6,8,12,.12) 100%); }
.pvg-pairTx { position:absolute; left:13px; right:13px; bottom:12px; z-index:2; display:flex; flex-direction:column; gap:2px; }
.pvg-pairK { font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.pvg-pairN { font-size:15px; font-weight:800; color:#fff; letter-spacing:-.01em; line-height:1.1; }
.pvg-pairGo { position:absolute; right:11px; top:11px; z-index:2; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.92); color:#15151a; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,.2); }

/* --- related carousel --- */
.pvg-related { padding:30px 18px 6px; }
.pvg-rtrack { display:flex; gap:13px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x mandatory; padding:2px 18px 8px; margin:0 -18px; }
.pvg-rtrack::-webkit-scrollbar { display:none; }
.pvg-rcard { flex:0 0 auto; width:150px; background:#fff; border-radius:13px; overflow:hidden; scroll-snap-align:start; box-shadow:0 1px 2px rgba(0,0,0,.05),0 6px 16px rgba(0,0,0,.05); transition:.18s; }
.pvg-rcard:hover { transform:translateY(-3px); }
.pvg-rimg { aspect-ratio:1; background:linear-gradient(165deg,#f3f3f5,#dcdce0); overflow:hidden; }
.pvg-rimg img { width:100%; height:100%; object-fit:cover; }
.pvg-rb { padding:11px 12px 14px; }
.pvg-rk { font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
.pvg-rn { font-size:12.5px; font-weight:700; line-height:1.3; margin-top:5px; min-height:33px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pvg-rp { font-size:13.5px; font-weight:800; margin-top:8px; }
.pvg-rp small { font-size:.7em; color:var(--muted); margin-right:2px; }

/* --- FAQ (PSP Vault) --- */
.pvg-faq { padding:28px 18px 0; }
.pvg-faq-list { display:flex; flex-direction:column; gap:10px; }
.pvg-faq-item { background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.pvg-faq-q { width:100%; text-align:left; border:0; background:none; display:flex; align-items:center; gap:12px; padding:14px 16px; margin:0; cursor:pointer; font-family:inherit; font-size:14px; line-height:1.3; font-weight:800; color:var(--ink); min-height:0; text-transform:none; letter-spacing:0; }
.pvg-faq-q .pvg-chev { margin-left:auto; flex:0 0 auto; transition:transform .25s; }
.pvg-faq-item.is-open .pvg-chev { transform:rotate(180deg); }
.pvg-faq-a { max-height:0; overflow:hidden; transition:max-height .32s ease; }
.pvg-faq-a__inner { padding:0 16px 16px; font-size:13.5px; font-weight:600; color:#5f5f63; line-height:1.5; }
.pvg-faq-item.is-open .pvg-faq-a { max-height:420px; }

/* --- Our store (PSP Vault) --- */
.pvg-storeSec { padding:28px 18px 0; }
.pvg-store { position:relative; }
.pvg-store__img { width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; background:#15151a; border-radius:16px; box-shadow:0 6px 20px -8px rgba(20,20,30,.32); }
.pvg-store__badge { position:absolute; left:11px; top:11px; display:inline-flex; align-items:center; background:rgba(20,22,28,.72); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); color:#fff; font-size:11px; font-weight:800; border-radius:99px; padding:6px 12px; }
.pvg-store__card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px 15px; box-shadow:0 2px 10px rgba(20,20,30,.04); margin-top:10px; }
.pvg-store__h { font-size:18px; font-weight:800; letter-spacing:-.02em; line-height:1.18; }
.pvg-store__sub { font-size:11.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#2f6fb0; margin-top:6px; }
.pvg-store__p { font-size:13px; font-weight:600; color:#6b6b69; line-height:1.5; margin:9px 0 0; }
.pvg-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:13px; }
.pvg-stat { background:#f6f6f4; border-radius:12px; padding:10px 6px; text-align:center; }
.pvg-stat__n { font-size:17px; font-weight:800; letter-spacing:-.01em; }
.pvg-stat__l { font-size:10px; font-weight:700; color:#7a7a78; line-height:1.25; margin-top:3px; }

/* --- pay-later (US) / secure checkout (rest of world) rows: JS toggles .pvg-geo-us / .pvg-geo-row --- */
.pvg-paylater, .pvg-secure { display:none; align-items:center; gap:10px; margin-top:11px; padding-top:11px; border-top:1px solid #ededea; }
.pvg-paylater.is-on, .pvg-secure.is-on { display:flex; }
.pvg-paylater__label { font-size:11px; font-weight:800; letter-spacing:.04em; color:#9a9a98; white-space:nowrap; }
.pvg-logo { display:inline-flex; align-items:center; } .pvg-logo img { display:block; width:auto; }
.pvg-logo--affirm img { height:22px; } .pvg-logo--affirm { transform:translateY(-6px) scale(.95); }
.pvg-logo--klarna img { height:12px; } .pvg-logo--klarna { transform:translateY(-2px) scale(.95); }
.pvg-logo--afterpay img { height:14px; }
.pvg-secure__label { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:800; color:#7a7a78; white-space:nowrap; }
.pvg-cardz { display:inline-flex; align-items:center; gap:6px; margin-left:auto; }
.pvg-cardz__b { height:26px; min-width:38px; padding:3px 6px; background:#fff; border:1px solid #e7e6e3; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; }
.pvg-cardz__b img { max-height:16px; max-width:34px; width:auto; height:auto; display:block; }
.pvg-secure--sheet, .pvg-paylater--sheet { justify-content:center; }
.pvg-secure--sheet .pvg-cardz { margin-left:0; }

/* --- sticky bar (PSP Vault design) --- */
.pvg-bar { position:fixed; left:0; right:0; bottom:0; z-index:99990; background:#fff; border-top:1px solid #d8d7d4; box-shadow:0 -10px 24px -18px rgba(0,0,0,.3); padding:13px 16px calc(16px + env(safe-area-inset-bottom)); font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif; transition:transform .28s ease; }
.pvg-bar *, .pvg-bar *::before, .pvg-bar *::after { box-sizing:border-box; }
.pvg-bar.pvg-bar--hide, body:has(.mfp-wrap) .pvg-bar, body:has(.mfp-bg) .pvg-bar { transform:translateY(125%); pointer-events:none; }
.pvg-bar__row { display:flex; align-items:center; gap:13px; }
.pvg-bar__thumb { width:48px; height:48px; border-radius:11px; object-fit:cover; flex:0 0 auto; background:#f0f0f2; }
.pvg-bar__info { display:flex; flex-direction:column; line-height:1.15; min-width:0; }
.pvg-bar__name { font-size:12px; font-weight:700; color:#7a7a78; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvg-bar__price { font-size:18px; font-weight:800; color:#2a2a2a; white-space:nowrap; }
.pvg-bar__btn { margin-left:auto; flex:0 0 auto; background:#161616; color:#fff !important; border:none; border-radius:99px; height:50px; padding:0 24px; font-family:'Nunito',"Hanken Grotesk",sans-serif; font-weight:800; font-size:15px; letter-spacing:.03em; cursor:pointer; display:inline-flex; align-items:center; text-decoration:none; }
.pvg-bar__btn:active { transform:scale(.985); }
.pvg-bar__btn--out { background:#d9d9d5 !important; color:#6d6d68 !important; cursor:not-allowed; pointer-events:none; }
.pvg-bar__btn[data-adding] { opacity:.7; pointer-events:none; }

/* --- warranty sheet (portaled to body) --- */
.pvg-sheetOverlay { position:fixed; inset:0; z-index:2147483000; --ink:#15151a; --muted:#9a9aa0; --line:rgba(0,0,0,.08); font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity .25s ease; }
.pvg-sheetOverlay *, .pvg-sheetOverlay *::before, .pvg-sheetOverlay *::after { box-sizing:border-box; }
.pvg-sheetOverlay.pvg-open { opacity:1; pointer-events:auto; }
.pvg-sheet { position:absolute; left:0; right:0; bottom:0; top:6vh; background:#fff; border-radius:24px 24px 0 0; display:flex; flex-direction:column; overflow:hidden; transform:translateY(101%); transition:transform .32s cubic-bezier(.3,.85,.3,1); box-shadow:0 -10px 40px rgba(0,0,0,.25); }
.pvg-sheetOverlay.pvg-open .pvg-sheet { transform:none; }
.pvg-sheetHead { flex:0 0 auto; display:flex; align-items:center; gap:12px; padding:18px 18px 15px; border-bottom:1px solid var(--line); background:#fff; }
.pvg-sheetHead h2 { font-size:19px; font-weight:800; letter-spacing:-.015em; color:var(--ink); margin:0; }
.pvg-sheetX { margin-left:auto; flex:0 0 auto; width:38px; height:38px; min-height:0; border:0; background:var(--ink); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.pvg-sheetX svg { width:20px !important; height:20px !important; flex:0 0 auto; display:block; }
.pvg-sheetBody { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:18px 20px 30px; color:#52525a; }
.pvg-sheetBody h4 { font-size:16px; font-weight:800; color:var(--ink); margin:22px 0 8px; }
.pvg-sheetBody h4:first-child { margin-top:0; }
.pvg-sheetBody p, .pvg-sheetBody li { font-size:13.5px; line-height:1.6; margin-bottom:8px; }
.pvg-sheetBody ul, .pvg-sheetBody ol { margin:0 0 9px; padding-left:20px; }
.pvg-sheetNote { font-style:italic; color:var(--muted) !important; font-size:12.5px !important; }
.pvg-sheetDivide { height:1px; background:var(--line); margin:22px 0 4px; }

/* --- added-to-cart sheet (PSP Vault) --- */
@keyframes pvgPop { 0% { transform:scale(0); } 60% { transform:scale(1.18); } 100% { transform:scale(1); } }
.pvg-cart-scrim { position:fixed; inset:0; background:rgba(15,15,18,.5); z-index:100000; opacity:0; pointer-events:none; transition:opacity .3s ease; }
.pvg-cart-scrim.is-open { opacity:1; pointer-events:auto; }
.pvg-cart { position:fixed; left:0; right:0; bottom:0; z-index:100001; background:#fbfaf8; border-radius:26px 26px 0 0; box-shadow:0 -20px 50px -12px rgba(0,0,0,.4); font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif; transform:translateY(100%); transition:transform .4s cubic-bezier(.22,.61,.36,1); max-height:94vh; overflow-y:auto; color:#161618; }
.pvg-cart *, .pvg-cart *::before, .pvg-cart *::after { box-sizing:border-box; }
.pvg-cart.is-open { transform:translateY(0); }
.pvg-cart.is-open .pvg-cart-check { animation:pvgPop .45s cubic-bezier(.34,1.6,.5,1) .12s both; }
.pvg-cart-grab { width:38px; height:4px; border-radius:99px; background:#dcdbd7; margin:12px auto 0; }
.pvg-cart-head { display:flex; align-items:center; justify-content:space-between; padding:16px 20px 0; }
.pvg-cart-added { display:flex; align-items:center; gap:9px; font-size:15px; font-weight:800; }
.pvg-cart-check { width:26px; height:26px; border-radius:50%; background:#1f8a5b; display:flex; align-items:center; justify-content:center; }
.pvg-cart-x { border:none; background:#f1f0ed; width:30px; height:30px; min-height:0; border-radius:50%; font-size:15px; color:#5f5f63; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; padding:0; margin:0; }
.pvg-cart-hold { margin:14px 20px 0; display:flex; align-items:center; gap:11px; background:#fdf3ee; border:1px solid #f3d9cc; border-radius:14px; padding:11px 14px; }
.pvg-cart-hold__ic { flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:#fff; border:1px solid #f0d4c5; display:flex; align-items:center; justify-content:center; }
.pvg-cart-hold > div { flex:1; min-width:0; line-height:1.25; }
.pvg-cart-hold__t { font-size:13px; font-weight:800; color:#9a3f1c; }
.pvg-cart-hold__s { font-size:11.5px; font-weight:700; color:#c0795c; }
.pvg-cart-timer { flex:0 0 auto; font-variant-numeric:tabular-nums; background:#c75b32; color:#fff; border-radius:10px; padding:6px 11px; font-size:16px; font-weight:800; min-width:62px; text-align:center; }
.pvg-cart-item { margin:14px 20px 0; background:#fff; border:1px solid #ebeae6; border-radius:20px; padding:14px; display:flex; gap:14px; box-shadow:0 2px 12px rgba(20,20,30,.05); }
.pvg-cart-thumb { flex:0 0 auto; width:88px; height:88px; border-radius:14px; overflow:hidden; background:#e9e9eb; }
.pvg-cart-thumb img { width:100%; height:100%; object-fit:cover; }
.pvg-cart-info { flex:1; min-width:0; display:flex; flex-direction:column; }
.pvg-cart-title { font-size:15px; font-weight:800; letter-spacing:-.01em; line-height:1.2; }
.pvg-cart-chip { display:inline-flex; align-self:flex-start; align-items:center; gap:6px; margin-top:9px; background:#f1f0ed; border-radius:99px; padding:5px 11px; font-size:12px; font-weight:800; color:#5f5f63; }
.pvg-cart-row { margin-top:auto; padding-top:10px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pvg-cart-price { font-size:18px; font-weight:800; }
.pvg-cart-stock { font-size:11.5px; font-weight:800; color:#d6452f; }
.pvg-cart-chips { display:flex; gap:7px; padding:12px 20px 4px; }
.pvg-cart-chips > div { flex:1; display:flex; align-items:center; gap:7px; background:#fff; border:1px solid #ebeae6; border-radius:12px; padding:9px 11px; }
.pvg-cart-chips span { font-size:11.5px; font-weight:700; color:#5f5f63; line-height:1.15; }
.pvg-cart-foot { background:#fff; border-top:1px solid #ededea; margin-top:14px; padding:16px 20px calc(20px + env(safe-area-inset-bottom)); }
.pvg-cart-subrow { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:14px; }
.pvg-cart-subrow span:first-child { font-size:15px; font-weight:700; color:#7a7a78; }
.pvg-cart-subrow span:last-child { font-size:24px; font-weight:800; letter-spacing:-.01em; }
.pvg-cart-co, .pvg-cart-co:hover, .pvg-cart-co:visited { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; background:#161616; color:#fff !important; border-radius:99px; height:56px; font-weight:800; font-size:17px; text-decoration:none; box-shadow:0 12px 26px -12px rgba(0,0,0,.6); }
.pvg-cart-co:active { transform:scale(.99); }
.pvg-cart-cont { display:block; width:100%; margin:11px 0 0; background:none; border:none; font-family:inherit; font-size:14px; font-weight:800; color:#9a9a98; cursor:pointer; padding:4px; min-height:0; text-transform:none; letter-spacing:0; }
body.pvg-lock { overflow:hidden; }

/* --- desktop --- */
@media (min-width:900px) {
  .pvg { padding:30px 0 80px; }
  .pvg-grid, .pvg-pairing, .pvg-related, .pvg-faq, .pvg-storeSec { max-width:1180px; margin-left:auto; margin-right:auto; padding-left:32px; padding-right:32px; }
  .pvg-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:48px; align-items:start; }
  .pvg-gallery { position:sticky; top:96px; }
  .pvg-gmain { aspect-ratio:1/1; border-radius:22px; }
  .pvg-info { padding:0 0 8px; }
  .pvg-title { font-size:34px; }
  .pvg-amt { font-size:42px; } .pvg-dec { font-size:22px; }
  .pvg-specs { padding:26px 0 4px; }
  .pvg-cards { padding:22px 0 0; }
  .pvg-buybox { display:block; margin:20px 0 0; }
  .pvg-bar { display:none; }
  .pvg-pairing { padding-top:48px; } .pvg-pairCard { height:170px; border-radius:18px; } .pvg-pairN { font-size:18px; }
  .pvg-related { padding-top:48px; } .pvg-rcard { width:200px; border-radius:16px; } .pvg-rn { font-size:14px; min-height:38px; } .pvg-rp { font-size:16px; }
  .pvg-faq, .pvg-storeSec { padding-top:40px; }
  .pvg-faq-list { max-width:760px; }
  .pvg-storeSec > .pvg-eyebrow, .pvg-store, .pvg-store__card { max-width:760px; }
  .pvg-store__img { aspect-ratio:16/9; }
  .pvg-secHead h3 { font-size:22px; }
  .pvg-cart { left:50%; right:auto; width:480px; max-width:480px; transform:translateX(-50%) translateY(calc(100% + 40px)); border-radius:22px; bottom:22px; max-height:calc(100vh - 44px); }
  .pvg-cart.is-open { transform:translateX(-50%) translateY(0); }
}
@media (min-width:1200px) { .pvg-grid { gap:64px; } .pvg-title { font-size:38px; } }


/* ===== games listing page (/games/): platform tabs like Retro Mario + Retronaga cards ===== */
body.pvgl-page #content, body.pvgl-page #wrapper { background:#e9e9eb !important; }
body.pvgl-page .page-wrapper, body.pvgl-page main#main, body.pvgl-page .page-inner { padding-top:0 !important; padding-bottom:0 !important; }
body.pvgl-page .entry-header, body.pvgl-page .page-title, body.pvgl-page .entry-title { display:none !important; }
body.pvgl-page .entry-content { padding:0 !important; }
.pvgl { --bg:#e9e9eb; --ink:#15151a; --muted:#9a9aa0; --line:rgba(0,0,0,.08); --blue:#2f6fb0;
  font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif; color:var(--ink); -webkit-font-smoothing:antialiased;
  background:var(--bg); padding:0 0 60px; box-sizing:border-box; width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.pvgl *, .pvgl *::before, .pvgl *::after { box-sizing:border-box; }
.pvgl a { color:inherit; text-decoration:none; }
.pvgl-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.pvgl-tab { min-width:0; min-height:60px; padding:0 10px; display:flex; align-items:center; justify-content:center; transition:background-color .15s, box-shadow .15s; -webkit-tap-highlight-color:transparent; }
.pvgl-tab__logo { display:block; width:min(96px,100%); height:28px; background:no-repeat center / contain; filter:grayscale(1); opacity:.38; transition:filter .15s, opacity .15s, transform .15s; }
.pvgl-tab__logo--ps1 { height:22px; }
.pvgl-tab__logo--ps3 { height:26px; }
.pvgl-tab.is-active { box-shadow:inset 0 -3px 0 var(--ink); }
.pvgl-tab.is-active .pvgl-tab__logo { filter:none; opacity:1; }
.pvgl-tab:active .pvgl-tab__logo { transform:scale(.96); }
.pvgl-head { padding:22px 18px 8px; }
.pvgl-h { font-size:26px; font-weight:800; letter-spacing:-.03em; line-height:1.1; margin:0; }
.pvgl-sub { font-size:13.5px; font-weight:500; color:#52525a; line-height:1.5; margin:8px 0 0; }
.pvgl-tools { display:flex; align-items:center; gap:10px; margin-top:14px; }
.pvgl-search { flex:1; display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:0 14px; height:44px; color:var(--muted); box-shadow:0 2px 10px rgba(0,0,0,.04); }
.pvgl-search input { flex:1; min-width:0; border:0 !important; background:none !important; box-shadow:none !important; font-family:inherit; font-size:14px; font-weight:600; color:var(--ink); padding:0 !important; margin:0 !important; height:42px; outline:none; }
.pvgl-search input::placeholder { color:var(--muted); font-weight:600; }
.pvgl-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.pvgl-count { flex:0 0 auto; font-size:11.5px; font-weight:800; color:var(--muted); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.pvgl-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:14px 18px 0; }
.pvgl-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.05),0 6px 16px rgba(0,0,0,.05); transition:.18s; display:block; }
.pvgl-card:hover { transform:translateY(-3px); box-shadow:0 2px 4px rgba(0,0,0,.08),0 12px 24px rgba(0,0,0,.1); }
.pvgl-img { position:relative; aspect-ratio:1; background:linear-gradient(165deg,#f3f3f5,#dcdce0); overflow:hidden; }
.pvgl-img img { width:100%; height:100%; object-fit:cover; display:block; }
.pvgl-sale { position:absolute; left:9px; top:9px; background:#161616; color:#fff; font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:4px 8px; border-radius:99px; }
.pvgl-b { padding:11px 12px 13px; }
.pvgl-k { font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvgl-n { font-size:13.5px; font-weight:700; line-height:1.3; margin-top:2px; min-height:35px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pvgl-p { font-size:17px; font-weight:800; margin-top:9px; display:flex; align-items:baseline; gap:6px; letter-spacing:-.01em; }
.pvgl-p small { font-size:.62em; color:var(--muted); margin-right:-3px; letter-spacing:.03em; }
.pvgl-p s { font-size:11.5px; font-weight:600; color:var(--muted); }
.pvgl-empty { padding:40px 18px; text-align:center; font-size:14px; font-weight:600; color:#6a6a70; }
.pvgl-morewrap { display:flex; justify-content:center; padding:22px 18px 0; }
.pvgl-more { background:var(--ink); color:#fff; border:0; border-radius:999px; height:48px; padding:0 28px; font-family:inherit; font-size:14px; font-weight:800; letter-spacing:.03em; cursor:pointer; min-height:0; text-transform:none; }
.pvgl-more[disabled] { opacity:.6; }
.pvgl.is-loading .pvgl-grid { opacity:.45; pointer-events:none; }
@media (min-width:900px) {
  .pvgl-tabs { grid-template-columns:repeat(3,180px); justify-content:center; }
  .pvgl-tab { min-height:68px; }
  .pvgl-tab__logo { width:110px; height:32px; } .pvgl-tab__logo--ps1 { height:25px; } .pvgl-tab__logo--ps3 { height:30px; }
  .pvgl-head, .pvgl-grid, .pvgl-morewrap, .pvgl-empty { max-width:1180px; margin-left:auto; margin-right:auto; padding-left:32px; padding-right:32px; }
  .pvgl-head { padding-top:36px; }
  .pvgl-h { font-size:36px; }
  .pvgl-tools { max-width:560px; }
  .pvgl-grid { grid-template-columns:repeat(4,1fr); gap:18px; padding-top:22px; }
  .pvgl-n { font-size:14px; min-height:38px; }
  .pvgl-p { font-size:19px; }
}
@media (min-width:1200px) { .pvgl-grid { grid-template-columns:repeat(5,1fr); } }
