/*
Theme Name: PatriotShirts Vision v2.0.8
Theme URI: https://patriotshirts.store
Author: GreenBurn
Description: Visionary drop-narrative front page. Option storage unified, bridge CSS beats DB overrides, CSS sanitizer preserves selectors.
Version: 2.1.23
Text Domain: patriotshirts-vision
*/

/* FIX WAVE 3 — navy consolidation: one field, one card step. Was 3 competing
   navies (blackout page, lighter --stage/#0E0E24 section panels, #13132C
   exhibit-image card) creating hard-edged boxes behind every product.
   --stage is now the ONE subtle lift above --blackout, used flat (no
   gradient stops that drift toward a bluer hue) for every product-image
   surface; sections use --blackout directly so they read as the same
   continuous field as the hero/footer, not a lighter panel. */
:root{--red:#CE1126;--navy:#1A1A2E;--black:#0A0A1E;--parch:#F5F0E8;--ink:#191827;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;--ease-out:cubic-bezier(0,0,.2,1);--ease-red:cubic-bezier(.32,.72,0,1);--blackout:#08081A;--stage:#0d0d1f}
*{box-sizing:border-box}
html{background:var(--blackout);scroll-behavior:smooth}
body{margin:0;background:var(--blackout);color:#fff;font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.sr-only{position:absolute!important;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;padding:0;border:0}

/* FIX WAVE 2 — P1-8: global crosshair cursor removed entirely (Ive, Rams —
   decoration replacing the browser's own affordance with zero function).
   System pointer/text cursor now used everywhere. */

/* ── Purple WooPay override — brand-matched ───────────── */
.psv-product-page .ppcp-dcc-order-button{filter:grayscale(1) brightness(1.4) !important}
.psv-product-page .wc-ppcp-preview iframe{filter:grayscale(1) contrast(.85) !important}
.psv-product-page .wc-ppcp-preview{border:1px solid rgba(255,255,255,.08);border-radius:4px;overflow:hidden}

/* ── Skip link ────────────────────────────────────────── */

.psv-skip-link{position:fixed;top:-100%;left:16px;z-index:99999;padding:12px 20px;background:var(--blackout);color:#fff;font-size:13px;border:1px solid var(--red);clip:rect(1px,1px,1px,1px);overflow:hidden;transition:top .2s}
.psv-skip-link:focus{top:16px;clip:auto;overflow:visible;width:auto;height:auto}

/* ── Focus visible ────────────────────────────────────── */

:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}

/* FIX WAVE 2 — P1-8: #psv-cursor red accent-line element removed with the
   crosshair (same custom-cursor feature, two parts). See header.php/theme.js. */

/* ── Dot navigation ──────────────────────────────────── */

.psv-dots{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:8px}
.psv-dot{width:32px;height:32px;position:relative;background:transparent;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.psv-dot::before{content:'';width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2);transition:background .35s var(--ease-out),transform .35s var(--ease-out),box-shadow .35s;display:block}
.psv-dot:hover::before{background:rgba(255,255,255,.4);transform:scale(1.15)}
.psv-dot.is-active::before{background:var(--red);transform:scale(1.3);box-shadow:0 0 12px rgba(206,17,38,.4)}
@media (max-width:639px){.psv-dots{right:8px;gap:6px}.psv-dot{width:28px;height:28px}.psv-dot::before{width:6px;height:6px}}

/* ── Cart badge ───────────────────────────────────────── */

.psv-cart-badge{position:fixed;top:33px;right:18px;z-index:100;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;transition:all .3s var(--ease-red);cursor:pointer}
/* Mobile: cart mirrors the hamburger — pinned top-right, clear of all copy (QG-2) */
@media(max-width:767px){.psv-cart-badge{top:14px;right:14px;width:40px;height:40px}}
.psv-cart-badge:hover{background:var(--red);border-color:var(--red);transform:scale(1.08)}
.psv-cart-count{font-variant-numeric:tabular-nums}
.psv-cart-badge.has-items{background:var(--red);border-color:var(--red)}

/* ── Navigation ───────────────────────────────────────── */

.psv-menu-toggle{position:fixed;top:14px;left:14px;z-index:200;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;cursor:pointer;transition:all .3s var(--ease-red);padding:0}
.psv-menu-toggle:hover{background:rgba(206,17,38,.2);border-color:var(--red)}
.psv-menu-icon{display:flex;flex-direction:column;gap:4px;width:20px;height:16px;justify-content:center;align-items:center}
.psv-menu-bar{display:block;width:18px;height:2px;background:#fff;border-radius:1px;transition:all .3s var(--ease-out)}
.psv-menu-toggle[aria-expanded="true"] .psv-menu-bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.psv-menu-toggle[aria-expanded="true"] .psv-menu-bar:nth-child(2){opacity:0;transform:scaleX(0)}
.psv-menu-toggle[aria-expanded="true"] .psv-menu-bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.psv-nav{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;z-index:180;background:rgba(8,8,26,.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out);padding:70px 24px 24px}
.psv-nav.is-open{opacity:1;pointer-events:all}
.psv-nav-inner{width:100%;max-width:300px;text-align:center}
.psv-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.psv-menu-item{opacity:0;transform:translateY(14px);transition:opacity .35s var(--ease-out),transform .35s var(--ease-out)}
.psv-nav.is-open .psv-menu-item{opacity:1;transform:translateY(0)}
.psv-nav.is-open .psv-menu-item:nth-child(1){transition-delay:.08s}
.psv-nav.is-open .psv-menu-item:nth-child(2){transition-delay:.14s}
.psv-nav.is-open .psv-menu-item:nth-child(3){transition-delay:.20s}
.psv-nav.is-open .psv-menu-item:nth-child(4){transition-delay:.26s}
.psv-nav.is-open .psv-menu-item:nth-child(5){transition-delay:.32s}
.psv-menu-item a,.psv-menu li a{display:block;padding:14px 20px;font-size:13px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.65);transition:all .25s var(--ease-out);border:1px solid transparent;border-radius:4px}
.psv-menu-item a:hover,.psv-menu li a:hover,.psv-menu-item.current-menu-item a,.psv-menu li.current-menu-item a{color:#fff;border-color:rgba(206,17,38,.4);background:rgba(206,17,38,.08)}

@media(min-width:900px){
.psv-menu-toggle{display:none}
.psv-nav{position:static;height:auto;z-index:100;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:1;pointer-events:all;padding:0;display:block}
.psv-nav-inner{max-width:none;text-align:right}
.psv-menu{flex-direction:row;gap:2px;justify-content:flex-end}
.psv-menu-item{opacity:1;transform:none}
.psv-menu-item a,.psv-menu li a{padding:8px 14px;font-size:11px;letter-spacing:.16em;border:0}
}
@media(max-width:899px){
.psv-nav{will-change:opacity}
}

/* ── Chapters ─────────────────────────────────────────── */

.psv-chapter{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;overflow:hidden;padding:60px 24px}
.psv-chapter-inner{position:relative;z-index:2;width:min(1200px,100%);margin:0 auto}

/* ── Hero ─────────────────────────────────────────────── */

/* FIX WAVE 2 — P0-2: hero cut to ~90vh (was 100vh) so exhibit 01 peeks
   above the fold on a normal laptop viewport without a full scroll (Rams). */
#ch-hero{position:relative;overflow:hidden;min-height:90vh;min-height:90dvh;display:flex;align-items:center;padding-top:clamp(96px,14vh,150px);padding-bottom:clamp(48px,8vh,90px)}

/* FIX WAVE 2 — P0-2: one atmosphere. .psv-grain removed entirely (was a
   7s turbulence-noise loop competing with the eagle + glow + scrim for the
   same six inches of trust — Ive). Selector kept as a no-op display:none in
   case any JS/markup still references the class, so nothing errors. */
.psv-grain{display:none}

/* FIX WAVE 2 — P0-2: red glow kept as a single static wash (no more 8s
   psvBreathe loop disconnected from anything real — Rams/Ive). Pharrell's
   heartbeat gets ONE deliberate motion event tied to the countdown instead
   — see P0-4, final-60s pulse. */
.psv-glow{position:absolute;top:-5%;left:-5%;width:150%;height:85%;background:radial-gradient(ellipse 70% 60% at 30% 30%,rgba(206,17,38,.22),transparent 60%);pointer-events:none;z-index:2}

/* Background gradient */
.psv-hero-bg{position:absolute;inset:0;background:linear-gradient(180deg,#0C0C20 0%,#08081A 35%,#060612 100%);pointer-events:none;z-index:1}
.psv-hero-bg--image{background-size:cover;background-position:center;background-repeat:no-repeat}
.psv-hero-bg--image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(8,8,26,calc(var(--overlay,0.6)*1.1)) 0%, rgba(8,8,26,var(--overlay,0.6)) 100%);pointer-events:none}

/* ── Full-bleed cinematic backdrop ─────────────────────
   The eagle/distressed-flag art is the SURFACE the hero lives on:
   edge-to-edge, enlarged, pushed up, dropped to atmospheric opacity.
   A directional scrim (dark on the left where the copy sits, clearing
   toward the eagle on the right) keeps type authoritative and the art
   present — cinematic, never competing. */
.psv-hero-canvas{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.psv-hero-eagle-bg{position:absolute;top:50%;right:0;left:auto;width:min(120%,1500px);height:auto;max-height:none;transform:translateY(-54%) scale(1.06);transform-origin:80% 40%;object-fit:contain;object-position:top right;opacity:.62;filter:grayscale(.15) contrast(1.05) brightness(1.02);animation:psvEagleDrift 26s ease-in-out infinite alternate;will-change:transform}
/* Directional scrim: readable navy→black wash pooled on the copy side,
   thinning toward the eagle so the art breathes. */
.psv-hero-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:
  linear-gradient(100deg, #08081A 0%, rgba(8,8,26,.92) 26%, rgba(10,10,30,.62) 52%, rgba(10,10,30,.28) 78%, rgba(10,10,30,.42) 100%),
  radial-gradient(120% 90% at 50% 0%, transparent 40%, rgba(6,6,18,.55) 100%),
  linear-gradient(0deg, #060612 0%, rgba(6,6,18,.35) 22%, transparent 46%)}
@media(min-width:900px){
  .psv-hero-eagle-bg{width:min(78%,1180px);transform:translateY(-52%) scale(1.02);object-position:top right;opacity:.7}
  .psv-hero-scrim{background:
    linear-gradient(100deg, #08081A 0%, rgba(8,8,26,.9) 20%, rgba(10,10,30,.5) 44%, rgba(10,10,30,.14) 70%, rgba(10,10,30,.34) 100%),
    radial-gradient(110% 80% at 40% 10%, transparent 46%, rgba(6,6,18,.5) 100%),
    linear-gradient(0deg, #060612 0%, rgba(6,6,18,.28) 20%, transparent 44%)}
}
@media(max-width:639px){
  /* Mobile: eagle fills the upper canopy, still full-bleed and cinematic */
  .psv-hero-eagle-bg{top:44%;width:min(155%,760px);transform:translate(14%,-50%) scale(1.02);object-position:center;opacity:.5}
  .psv-hero-scrim{background:
    linear-gradient(180deg, rgba(8,8,26,.42) 0%, rgba(8,8,26,.66) 34%, rgba(8,8,26,.9) 68%, #08081A 100%),
    radial-gradient(120% 60% at 50% 22%, transparent 30%, rgba(6,6,18,.5) 100%)}
}
@keyframes psvEagleDrift{0%{transform:translateY(-54%) scale(1.06)}100%{transform:translateY(-57%) scale(1.1)}}
@media(min-width:900px){@keyframes psvEagleDrift{0%{transform:translateY(-52%) scale(1.02)}100%{transform:translateY(-55%) scale(1.06)}}}

/* Respect reduced motion */
@media(prefers-reduced-motion:reduce){.psv-hero-eagle-bg{animation:none}}

/* ── Safari grain fallback ─────────────────────────── */
body.is-safari .psv-grain{opacity:.02;background-image:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.003) 2px,rgba(255,255,255,.003) 4px);animation:none}

/* ── Compact mode (tight spacing) ──────────────────── */
body.psv-compact .psv-chapter{min-height:auto;padding:40px 20px}
body.psv-compact #ch-hero{min-height:auto;padding-top:clamp(60px,8vh,100px)}
body.psv-compact .psv-exhibit{padding:28px 20px}
body.psv-compact .psv-why-grid{gap:14px;margin-top:28px}
body.psv-compact .psv-why-card{padding:24px 20px}
body.psv-compact .psv-footer{padding:20px 16px}
body.psv-compact .psv-hero-actions{gap:14px;margin-top:18px}

/* Red vertical accent bar — full page, fixed */
.psv-page-redbar{position:fixed;top:0;left:0;width:8px;height:100vh;height:100dvh;background:var(--red);z-index:9999;box-shadow:0 0 40px rgba(206,17,38,.25);pointer-events:none}

/* Vignette over everything */
.psv-hero-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(0,0,0,0.55) 100%);pointer-events:none;z-index:3}

/* ── Ring Seal — OFFICIAL SHIRT OF TRUE PATRIOTS ──────────
   Crisp inline-SVG brand mark, ONE deliberate spot: hero top-right,
   does not follow scroll (QG-1). Cream strokes on the dark hero with a
   thin brick-red accent ring. Scalable, tiny, cache-free. */
.psv-seal{position:absolute;right:clamp(16px,4vw,72px);top:clamp(78px,11vh,120px);width:clamp(88px,15vw,164px);height:clamp(88px,15vw,164px);z-index:5;filter:drop-shadow(0 8px 22px rgba(0,0,0,.55))}
.psv-seal-svg{width:100%;height:100%;display:block;overflow:visible}
.psv-seal-img{width:100%;height:100%;display:block;object-fit:contain}
.psv-seal-ring{fill:none}
.psv-seal-ring--out{stroke:#efe7d6;stroke-width:1.4;opacity:.92}
.psv-seal-ring--accent{stroke:#c9302c;stroke-width:2.4;opacity:.9}
.psv-seal-ring--in{stroke:#efe7d6;stroke-width:.9;opacity:.55}
.psv-seal-txt{fill:#efe7d6;font-family:var(--sans);font-weight:800;letter-spacing:.14em}
.psv-seal-txt--top{font-size:15px}
.psv-seal-txt--bot{font-size:15px}
.psv-seal-star{fill:#c9302c}
.psv-seal-eagle path,.psv-seal-eagle circle{fill:#efe7d6}
.psv-seal-eagle .psv-seal-shield{fill:#c9302c;opacity:.95}
.psv-seal-eagle .psv-seal-eye{fill:#12121f}
.psv-seal-eagle .psv-seal-eagle-gap{fill:none;stroke:var(--blackout);stroke-width:1.6;stroke-linecap:round}
@media(prefers-reduced-motion:no-preference){
  .psv-seal-svg,.psv-seal-img{animation:psvSealIn .9s var(--ease-out) both}
}
@keyframes psvSealIn{from{opacity:0;transform:scale(.9) rotate(-4deg)}to{opacity:1;transform:none}}

/* ── Content — editorial column, left-anchored ──── */

#ch-hero .psv-chapter-inner{position:relative;z-index:4;padding:0 clamp(24px,5vw,60px) 0 clamp(28px,4vw,56px);max-width:760px;margin:unset}

/* ── Hero Typography ──────────────────────────────────── */

/* "THE" — tracked eyebrow label */
.psv-hero-line--lead{display:block;font-family:var(--sans);font-size:clamp(.7rem,1.2vw,.9rem);letter-spacing:.42em;color:rgba(239,231,214,.62);margin-bottom:clamp(6px,.8vw,12px);font-weight:800;text-transform:uppercase}

/* "DROP" — carved, monumental, red */
.psv-hero-line--drop{display:block;font-family:var(--serif);font-size:clamp(5rem,18vw,12rem);line-height:.82;letter-spacing:-.06em;color:var(--red);font-style:italic;font-weight:900;text-shadow:
  0 1px 0 #8f0e1e,
  0 2px 0 #7a0815,
  0 3px 1px rgba(0,0,0,.3),
  0 4px 2px rgba(0,0,0,.25),
  0 6px 4px rgba(0,0,0,.2),
  0 10px 8px rgba(0,0,0,.15),
  0 0 60px rgba(206,17,38,.25),
  0 0 120px rgba(206,17,38,.1);margin-bottom:clamp(4px,.6vw,10px);text-transform:uppercase;position:relative;z-index:4}

/* FIX WAVE 2 — P1-6: "DOESN'T WAIT" subordinated — switched from serif/800
   (a second headline-scale statement competing with DROP) to the same sans
   eyebrow family as "THE", smaller, lighter, no independent text-shadow.
   DROP stays the one unmistakable hero gesture; lead+tail now read as one
   clearly secondary frame around it, not three competing voices. */
.psv-hero-line--tail{display:block;font-family:var(--sans);font-size:clamp(.85rem,1.6vw,1.15rem);line-height:1.3;letter-spacing:.28em;color:rgba(255,255,255,.72);font-weight:700;text-transform:uppercase;position:relative;z-index:4;margin-top:clamp(4px,.6vw,10px)}

/* Red divider */
.psv-hero-divider{width:88px;height:3px;background:var(--red);margin:clamp(18px,2.4vw,26px) 0 0;transform-origin:left center;position:relative;z-index:4;box-shadow:0 0 18px rgba(201,48,44,.5)}

/* Subtitle — legible over any hero art (QG-2) */
.psv-hero-sub{max-width:466px;margin:clamp(16px,2vw,22px) 0 0;font-size:clamp(.92rem,1.5vw,1.06rem);line-height:1.62;color:rgba(245,240,232,.82);letter-spacing:.01em;position:relative;z-index:4;text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 22px rgba(6,6,18,.9)}

/* Actions — button below the countdown (deliberate order) */
.psv-hero-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;margin-top:clamp(22px,3vw,30px);max-width:600px;position:relative;z-index:4;align-items:center}

/* ── Buttons ──────────────────────────────────────────── */

.psv-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:2px solid var(--red);background:transparent;color:#fff;text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:900;overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),background .35s;cursor:pointer}
/* Hero primary CTA — commanding scale + presence */
.psv-hero-actions .psv-btn--solid{min-height:60px;padding:0 clamp(30px,5vw,46px);font-size:clamp(12px,1.5vw,13.5px);letter-spacing:.22em;box-shadow:0 14px 40px rgba(201,48,44,.28),inset 0 1px 0 rgba(255,255,255,.14)}
.psv-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:translateX(-100%);transition:transform .55s var(--ease-out)}
.psv-btn:hover::after{transform:translateX(100%)}
.psv-btn:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(206,17,38,.25)}
.psv-btn--solid{background:var(--red);border-color:var(--red)}
.psv-btn--solid:hover{background:#b00f22;box-shadow:0 12px 36px rgba(206,17,38,.4)}
.psv-btn--ghost{border-color:rgba(255,255,255,.25);color:rgba(255,255,255,.8)}
.psv-btn--ghost:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.04)}

/* ── Variation Pill Selector ──────────────────────────── */

.psv-pill-group{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.psv-pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:36px;padding:0 14px;border:1px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.7);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .25s var(--ease-out);font-family:var(--sans)}
/* FIX WAVE 1 — 44x44 minimum tap targets on mobile (pills, cart badge). Quantity
   stepper override lives further down, after the .quantity rules it overrides
   (same selector specificity — cascade order decides, so it must come later). */
@media(max-width:767px){
.psv-pill{min-width:44px;min-height:44px}
.psv-cart-badge{width:44px;height:44px}
}
.psv-pill:hover{border-color:var(--red);color:#fff}
.psv-pill.is-selected{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 0 12px rgba(206,17,38,.3)}
.psv-pill.is-disabled{opacity:.25;cursor:not-allowed;pointer-events:none}
.psv-select-pill-enhanced{position:absolute!important;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}

/* ── Countdown — refined premium element with authority ───
   Eyebrow + four hairline-separated tabular figures on a whisper-glass
   panel with a red top accent. No muddy box; it reads as engraved. */
.psv-cd-wrap{position:relative;z-index:4;margin-top:clamp(24px,3.4vw,34px);max-width:428px;width:100%}
.psv-cd-eyebrow{display:block;font-family:var(--sans);font-size:clamp(9px,1.2vw,10.5px);letter-spacing:.32em;text-transform:uppercase;font-weight:800;color:rgba(239,231,214,.6);margin:0 0 10px 2px}
.psv-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:0;width:100%;position:relative;z-index:4;background:linear-gradient(180deg,rgba(20,20,40,.55),rgba(8,8,22,.62));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(239,231,214,.12);border-radius:3px;box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);overflow:hidden}
/* red engraved top rule */
.psv-countdown::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),#8f0e1e);z-index:2}
.psv-cd-box{position:relative;text-align:center;padding:clamp(14px,2.4vw,20px) 6px clamp(11px,1.8vw,15px)}
/* hairline dividers between units */
.psv-cd-box + .psv-cd-box::after{content:'';position:absolute;left:0;top:24%;bottom:24%;width:1px;background:linear-gradient(180deg,transparent,rgba(239,231,214,.16),transparent)}
.psv-cd-num{display:block;font-family:var(--serif);font-size:clamp(2rem,6.6vw,2.9rem);line-height:1;font-weight:900;letter-spacing:-.01em;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.psv-cd-label{display:block;font-family:var(--sans);font-size:clamp(8.5px,1.5vw,10px);letter-spacing:.2em;text-transform:uppercase;color:rgba(239,231,214,.5);margin-top:9px;font-weight:800}
.psv-cd-box:first-child .psv-cd-num{color:var(--red)}

/* ── Scroll hint ──────────────────────────────────────── */

.psv-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.3;z-index:3}
.psv-scroll-text{font-size:7px;letter-spacing:.3em;text-transform:uppercase}
.psv-scroll-line{width:1px;height:28px;background:linear-gradient(to bottom,#fff,transparent);animation:psvScroll 2.2s ease-in-out infinite}

/* ── Product exhibits ─────────────────────────────────── */

#ch-drop{padding:0}
.psv-exhibit{position:relative;min-height:auto;display:flex;align-items:center;justify-content:center;padding:40px 24px;overflow:hidden;background:var(--blackout)}
.psv-exhibit-inner{position:relative;z-index:2;width:min(1100px,100%);display:grid;grid-template-columns:1fr;gap:20px;align-items:center}
.psv-exhibit-image{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--stage);border:1px solid rgba(255,255,255,.05);max-width:500px;margin:0 auto;width:100%;transition:box-shadow .5s var(--ease-out),transform .5s var(--ease-out)}
.psv-exhibit-image a{display:block}
.psv-exhibit-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out),filter .7s var(--ease-out)}
/* FIX WAVE 2 — P2: staged attitude on hover — a directional shadow + slight
   lift instead of a flat scale (Pharrell). The image itself still gets a
   faint scale so the frame doesn't feel static, but the shadow is doing
   the real work now. */
.psv-exhibit-image:hover{box-shadow:14px 22px 44px -14px rgba(0,0,0,.65);transform:translateY(-3px)}
.psv-exhibit-image a:hover img{transform:scale(1.015)}

/* FIX WAVE 2 — P1-7: break the carousel's flat repetition — first and last
   exhibit get a subtly different frame so the drop reads as a curated
   collection with rhythm, not the same card ten times (Pharrell). Small,
   tasteful: opening exhibit runs slightly larger/taller; closing exhibit
   goes square, signaling the set closes here. */
.psv-exhibit[data-exhibit="1"] .psv-exhibit-image{max-width:560px;aspect-ratio:4/5.4}
.psv-exhibit:last-child .psv-exhibit-image{max-width:460px;aspect-ratio:1/1}
.psv-exhibit-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--stage)}
.psv-exhibit-placeholder-text{font-family:var(--serif);font-size:1.2rem;color:rgba(255,255,255,.15);text-transform:uppercase;letter-spacing:.08em;text-align:center;padding:20px}
.psv-exhibit:hover img{transform:scale(1.04);filter:contrast(1.06)}
.psv-exhibit-badge{position:absolute;top:14px;left:14px;background:var(--red);color:#fff;padding:6px 12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;z-index:2}
.psv-exhibit-info{text-align:center}
.psv-exhibit-number{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.3);margin:0 0 8px}
.psv-exhibit-title{font-family:var(--serif);font-size:clamp(1.8rem,6vw,3.2rem);line-height:.92;letter-spacing:-.04em;margin:0 0 10px}
.psv-exhibit-title a{color:inherit;text-decoration:none;transition:color .3s var(--ease-out)}
.psv-exhibit-title a:hover{color:var(--red)}
.psv-exhibit-desc{max-width:420px;margin:0 auto 14px;color:rgba(255,255,255,.55);font-size:.95rem;line-height:1.6}
.psv-exhibit-price{color:var(--red);font-weight:950;font-size:1.3rem}
.psv-exhibit-price del{color:rgba(255,255,255,.35);font-weight:400;font-size:.95rem;margin-right:8px}
.psv-exhibit-actions{margin-top:20px}
.psv-exhibit-actions .psv-btn{min-height:44px;font-size:11px}
.psv-exhibit-trust{display:flex;gap:16px;justify-content:center;margin-top:14px;color:rgba(255,255,255,.35);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.psv-exhibit-divider{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);width:200px;height:1px;background:linear-gradient(90deg,transparent,rgba(206,17,38,.4),transparent);opacity:.4}
/* Between-drops / empty-drop state — capped + enriched so it reads as
   intentional ("the vault is between drops") rather than a broken/loading
   full-viewport void. Caps the SECTION itself, not just the inner flex box,
   since .psv-chapter's base min-height:100dvh otherwise still stretches it. */
#ch-drop:has(.psv-empty-state){min-height:0;padding:90px 24px}
#ch-drop .psv-chapter-inner:has(> .psv-empty-state){display:flex;align-items:center;justify-content:center;padding:0}
.psv-empty-state{max-width:560px;margin:0 auto;text-align:center}
.psv-empty-message{color:rgba(255,255,255,.65);font-size:clamp(1.3rem,4vw,2rem);font-family:var(--serif);text-align:center;max-width:520px;margin:0 auto;line-height:1.4}
.psv-empty-sub{color:rgba(255,255,255,.4);font-size:.9rem;line-height:1.6;max-width:420px;margin:16px auto 0}
.psv-empty-cta{margin-top:28px;min-height:48px;font-size:10px}
.psv-shop-empty{display:block;margin:22vh auto}

/* ── WooCommerce fallback shell (product/cart/checkout/account) ──
   Clears the fixed hamburger/cart; was previously unstyled = content flush at 0,0 (QG-8b) */
.psv-page-shell{display:block;padding:76px 16px 48px;min-height:100vh;min-height:100dvh;background:var(--blackout)}
.psv-page-inner{max-width:1100px;margin:0 auto}
@media(min-width:768px){.psv-page-shell{padding:90px 32px 64px}}

@media(min-width:900px){
.psv-exhibit{padding:48px 40px}
.psv-exhibit-inner{grid-template-columns:1fr 1fr;gap:48px}
.psv-exhibit-image{max-width:100%;margin:0}
.psv-exhibit-info{text-align:left}
.psv-exhibit-desc{margin:0 0 14px}
.psv-exhibit-trust{justify-content:flex-start}
.psv-exhibit-actions{text-align:left}
/* Desktop hero rhythm — keep the full stack (headline→countdown→button)
   above the fold on a standard laptop (≈800px tall). */
#ch-hero{padding-top:clamp(90px,11vh,128px);padding-bottom:clamp(40px,6vh,72px)}
#ch-hero .psv-hero-sub{margin-top:clamp(14px,1.8vw,20px)}
#ch-hero .psv-cd-wrap{margin-top:clamp(18px,2.4vw,26px)}
#ch-hero .psv-hero-actions{margin-top:clamp(16px,2vw,22px)}
}
/* Short viewports: prevent the DROP from crowding out the CTA */
@media(min-width:900px) and (max-height:840px){
.psv-hero-line--drop{font-size:clamp(5rem,13vw,9rem)}
#ch-hero .psv-cd-wrap{margin-top:18px}
#ch-hero .psv-hero-actions{margin-top:16px}
.psv-cd-box{padding-top:14px;padding-bottom:11px}
}

@media(max-width:639px){
#ch-hero{align-items:flex-end;padding-top:76px;padding-bottom:clamp(40px,7vh,64px)}
#ch-hero .psv-chapter-inner{padding:0 22px 0 26px;max-width:none}
.psv-hero-line--lead{font-size:.68rem;margin-bottom:8px;letter-spacing:.36em}
.psv-hero-line--drop{font-size:clamp(3.6rem,17vw,5rem)}
/* FIX WAVE 2 — P1-6: keep tail subordinate on mobile too */
.psv-hero-line--tail{font-size:clamp(.78rem,3.2vw,.95rem);letter-spacing:.22em}
.psv-hero-sub{max-width:none;font-size:.9rem;margin-top:14px}
.psv-cd-wrap{max-width:none;margin-top:22px}
.psv-hero-actions{flex-direction:column;gap:14px;max-width:none;align-items:stretch;margin-top:20px}
.psv-hero-actions .psv-btn--solid{width:100%;min-height:58px}
.psv-seal{width:clamp(72px,20vw,96px);height:clamp(72px,20vw,96px);right:16px;top:70px}
.psv-chapter{padding:36px 18px}
}

/* ── Reduced motion & mobile — disable heavy effects ── */
@media (prefers-reduced-motion: reduce), (max-width: 767px) {
  .psv-grain, .psv-glow, .psv-final-glow { display: none !important; }
  [data-reveal], .psv-exhibit-inner, .psv-why-card,
  .psv-hero-title, .psv-hero-sub, .psv-hero-actions, .psv-countdown {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .psv-chapter-inner > * { opacity: 1 !important; transform: none !important; }
}

/* ── Ethos section ────────────────────────────────────── */

.psv-ethos-label{font-size:10px;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,255,255,.35);margin:0 0 14px}
.psv-chapter-ethos .psv-chapter-inner{max-width:800px;text-align:center}
.psv-ethos-heading{font-family:var(--serif);font-size:clamp(2rem,7vw,4rem);line-height:.9;letter-spacing:-.05em;margin:0 auto;max-width:600px}
.psv-heading-rule{width:40px;height:2px;background:var(--red);margin:20px auto}
.psv-why-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-top:40px}
.psv-why-card{position:relative;padding:36px 28px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .4s var(--ease-out),border-color .4s,background .4s}
.psv-why-card:hover{transform:translateY(-4px);border-color:rgba(206,17,38,.3);background:rgba(255,255,255,.04)}
.psv-why-card h3{margin:0 0 10px;font-family:var(--serif);font-size:1.5rem;line-height:1.05;color:#fff;letter-spacing:-.03em}
.psv-why-card p{margin:0;color:rgba(255,255,255,.55);line-height:1.6;font-size:.92rem}

/* ── Final CTA ───────────────────────────────────────── */

#ch-final{background:radial-gradient(ellipse at 50% 30%,rgba(206,17,38,.1),transparent 60%),linear-gradient(150deg,#070718,var(--black));text-align:center;position:relative;min-height:70vh;min-height:70dvh;padding:60px 24px}
@media(max-width:639px){#ch-final{min-height:55vh;min-height:55dvh;padding:48px 22px}}
@media(min-width:640px) and (max-width:899px){#ch-final{min-height:60vh;min-height:60dvh}}
.psv-flag-overlay{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 95 50'%3E%3Cdefs%3E%3CclipPath id='c'%3E%3Crect width='95' height='50'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23c)'%3E%3Crect width='95' height='50' fill='%23B22234'/%3E%3Cg fill='%23FFFFFF'%3E%3Crect y='0' width='95' height='3.846'/%3E%3Crect y='7.692' width='95' height='3.846'/%3E%3Crect y='15.385' width='95' height='3.846'/%3E%3Crect y='23.077' width='95' height='3.846'/%3E%3Crect y='30.769' width='95' height='3.846'/%3E%3Crect y='38.462' width='95' height='3.846'/%3E%3C/g%3E%3Crect width='38' height='26.923' fill='%230022D4'/%3E%3Cg fill='%23FFFFFF'%3E%3Ccircle cx='3.3' cy='3.3' r='.7'/%3E%3Ccircle cx='9.5' cy='3.3' r='.7'/%3E%3Ccircle cx='15.7' cy='3.3' r='.7'/%3E%3Ccircle cx='21.9' cy='3.3' r='.7'/%3E%3Ccircle cx='28.1' cy='3.3' r='.7'/%3E%3Ccircle cx='34.3' cy='3.3' r='.7'/%3E%3Ccircle cx='6.4' cy='6.7' r='.7'/%3E%3Ccircle cx='12.6' cy='6.7' r='.7'/%3E%3Ccircle cx='18.8' cy='6.7' r='.7'/%3E%3Ccircle cx='25' cy='6.7' r='.7'/%3E%3Ccircle cx='31.2' cy='6.7' r='.7'/%3E%3Ccircle cx='3.3' cy='10.1' r='.7'/%3E%3Ccircle cx='9.5' cy='10.1' r='.7'/%3E%3Ccircle cx='15.7' cy='10.1' r='.7'/%3E%3Ccircle cx='21.9' cy='10.1' r='.7'/%3E%3Ccircle cx='28.1' cy='10.1' r='.7'/%3E%3Ccircle cx='34.3' cy='10.1' r='.7'/%3E%3Ccircle cx='6.4' cy='13.5' r='.7'/%3E%3Ccircle cx='12.6' cy='13.5' r='.7'/%3E%3Ccircle cx='18.8' cy='13.5' r='.7'/%3E%3Ccircle cx='25' cy='13.5' r='.7'/%3E%3Ccircle cx='31.2' cy='13.5' r='.7'/%3E%3Ccircle cx='3.3' cy='16.9' r='.7'/%3E%3Ccircle cx='9.5' cy='16.9' r='.7'/%3E%3Ccircle cx='15.7' cy='16.9' r='.7'/%3E%3Ccircle cx='21.9' cy='16.9' r='.7'/%3E%3Ccircle cx='28.1' cy='16.9' r='.7'/%3E%3Ccircle cx='34.3' cy='16.9' r='.7'/%3E%3Ccircle cx='6.4' cy='20.3' r='.7'/%3E%3Ccircle cx='12.6' cy='20.3' r='.7'/%3E%3Ccircle cx='18.8' cy='20.3' r='.7'/%3E%3Ccircle cx='25' cy='20.3' r='.7'/%3E%3Ccircle cx='31.2' cy='20.3' r='.7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50% 50%;background-size:cover}
.psv-final-glow{position:absolute;bottom:-20%;left:50%;transform:translateX(-50%);width:70%;height:50%;background:radial-gradient(ellipse,var(--red),transparent 65%);opacity:.05;pointer-events:none;z-index:0}
.psv-final-inner{position:relative;z-index:2;max-width:680px;margin:0 auto}
.psv-final-heading{font-family:var(--serif);font-size:clamp(2.2rem,9vw,5.5rem);line-height:.86;letter-spacing:-.06em;text-transform:uppercase;margin:0 0 14px}
.psv-final-copy{max-width:480px;margin:0 auto 24px;color:rgba(255,255,255,.6);font-size:1.05rem;line-height:1.55}
@media(max-width:639px){.psv-final-heading{font-size:clamp(2rem,11vw,3rem);margin:0 0 12px}.psv-final-copy{font-size:.92rem;margin:0 auto 20px}}

/* ── Hide section dots on non-front pages ─────────────── */

body:not(.home) .psv-dots{display:none}

/* ── Product page navigation ──────────────────────────── */

.psv-product-nav{display:flex;gap:16px;align-items:center;padding:14px 24px;border-bottom:1px solid rgba(255,255,255,.04);flex-wrap:wrap}
.psv-product-nav a{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4);transition:color .25s var(--ease-out);white-space:nowrap}
.psv-product-nav a:hover{color:var(--red)}
.psv-product-nav .psv-pn-sep{color:rgba(255,255,255,.12);font-size:10px;user-select:none}

/* ── Drop-closed state ────────────────────────────────── */

body.is-dropped{filter:grayscale(.85) brightness(.6)}
body.is-dropped .psv-hero-line--drop{color:#555}
body.is-dropped .psv-glow{display:none}
body.is-dropped .psv-countdown{opacity:.4;pointer-events:none}
body.is-dropped .psv-dot.is-active::before{background:#666;box-shadow:none}
.psv-overlay-drop{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.92);align-items:center;justify-content:center;flex-direction:column;color:#fff;text-align:center;padding:24px}
body.is-dropped .psv-overlay-drop{display:flex;animation:psvDropFade 1.2s var(--ease-out) both}
.psv-overlay-drop h2{font-family:var(--serif);font-size:clamp(2rem,8vw,4rem);line-height:.88;letter-spacing:-.05em;text-transform:uppercase;margin:0 0 16px}
.psv-overlay-drop p{max-width:400px;color:rgba(255,255,255,.55);font-size:1rem;line-height:1.6;margin:0}
.psv-overlay-crack{position:fixed;inset:0;z-index:199;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(0,0,0,.7) 90%);opacity:0;transition:opacity 2s;z-index:199}
body.is-dropped .psv-overlay-crack{opacity:1}

/* ── Footer ───────────────────────────────────────────── */

.psv-footer{padding:28px 18px;text-align:center;border-top:1px solid rgba(255,255,255,.04)}
.psv-footer-inner{max-width:800px;margin:0 auto}
.psv-footer-nav{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.psv-footer-nav a{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4);transition:color .25s var(--ease-out)}
.psv-footer-nav a:hover{color:var(--red)}
.psv-footer-tagline{color:rgba(255,255,255,.2);font-family:var(--serif);font-style:italic;font-size:.85rem;margin:0 0 12px}
.psv-footer-copy{color:rgba(255,255,255,.15);font-size:.75rem;margin:0}

/* ── Product Page ──────────────────────────────────────── */

.psv-product-page{padding:60px 24px;background:var(--blackout);min-height:100vh;min-height:100dvh}
.psv-product-inner{width:min(1100px,100%);margin:0 auto;display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:768px){.psv-product-inner{grid-template-columns:1fr 1fr;gap:48px}}
/* FIX WAVE 2 — P0-3 root-cause fix: .psv-product-inner's 1fr/1fr grid was
   defined assuming two direct children, but WooCommerce wraps gallery+
   summary in one <div class="product"> — the grid's lone child only ever
   filled the FIRST track, so .summary (and therefore .product_title) was
   rendering inside an ~502px column instead of the intended ~1100px pair,
   which is why the title clipped no matter how the type rules were tuned.
   Fix: let .product itself span both tracks and become the real 2-column
   grid, with gallery/summary as its grid items (overriding WooCommerce's
   default float:right;width:48% layout, which only worked by accident at
   roughly the right ratio inside the wrong container). */
@media(min-width:768px){
  .psv-product-inner > .product{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
  /* !important: WooCommerce's own woocommerce-layout.css ships
     float:right;width:48% on this exact element with matching
     specificity — !important is the only reliable way to guarantee this
     wins regardless of plugin-CSS load-order changes on future updates. */
  .psv-product-inner > .product > .woocommerce-product-gallery,
  .psv-product-inner > .product > .summary{float:none!important;width:auto!important;margin:0!important}
}

/* Gallery */
.psv-product-page .woocommerce-product-gallery{margin:0;max-width:600px}
.psv-product-page .woocommerce-product-gallery__wrapper{margin:0}
.psv-product-page .woocommerce-product-gallery img{width:100%;height:auto;border:1px solid rgba(255,255,255,.06)}
/* Gallery carousel — dark theme flexslider */
.psv-product-page .woocommerce-product-gallery{background:0 0}
.psv-product-page .woocommerce-product-gallery .flex-viewport{border:1px solid rgba(255,255,255,.06)}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs{gap:8px;margin-top:12px;display:flex;flex-wrap:wrap;list-style:none;padding:0}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li{width:80px!important;flex:none!important;display:inline-block;margin:0!important}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li img{border:1px solid rgba(255,255,255,.1);border-radius:4px;opacity:.5;transition:opacity .25s,border-color .25s;cursor:pointer}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li img:hover{opacity:1;border-color:var(--red)}
.psv-product-page .woocommerce-product-gallery .flex-direction-nav a{background:rgba(0,0,0,.6);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-shadow:none;margin-top:-20px}
.psv-product-page .woocommerce-product-gallery .flex-direction-nav a::before{color:#fff;font-size:20px}
.psv-product-page .woocommerce-product-gallery .woocommerce-product-gallery__trigger{background:rgba(0,0,0,.6);border-radius:50%;top:12px;right:12px}
.psv-product-page .woocommerce-product-gallery__image a{display:block}
.psv-product-page .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{display:inline-block;vertical-align:top}

/* Summary */
/* FIX WAVE 2 — P0-3: min-width:0 so this grid column can actually shrink
   to fit — without it, long unbroken title text can force the track wider
   than its 1fr share, which is what let the title clip past its edge. */
.psv-product-page .summary{margin:0;min-width:0}
/* FIX WAVE 2 — P0-3: clipped product title (e.g. "Loud Pipes, Free
   Country" was cutting off mid-word against its own column edge). Constrain
   to the grid column, allow wrapping, and pull the clamp's upper bound down
   a touch so long titles don't need to lean on overflow to survive. */
.psv-product-page .product_title{font-family:var(--serif);font-size:clamp(1.8rem,5vw,3rem);line-height:1;letter-spacing:-.05em;text-transform:uppercase;margin:0 0 16px;max-width:100%;overflow-wrap:break-word;word-break:break-word;hyphens:auto}
.psv-product-page .price{color:var(--red);font-weight:950;font-size:clamp(1.3rem,3vw,1.8rem);margin:0 0 16px}
.psv-product-page .price del{color:rgba(255,255,255,.35);font-weight:400;font-size:.9rem;margin-right:10px}
.psv-product-page .woocommerce-product-details__short-description{color:rgba(255,255,255,.6);line-height:1.6;font-size:.95rem;margin:0 0 20px}
.psv-product-page .cart{margin:20px 0}
.psv-product-page .quantity{display:inline-flex;align-items:center;gap:0;margin:0 12px 12px 0;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.03)}
.psv-product-page .quantity input{width:48px;height:42px;text-align:center;background:transparent;border:none;color:#fff;font-size:14px;font-weight:700;-moz-appearance:textfield}
.psv-product-page .quantity input::-webkit-outer-spin-button,.psv-product-page .quantity input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.psv-product-page .quantity .qty-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:42px;background:transparent;border:none;color:rgba(255,255,255,.5);cursor:pointer;font-size:16px;transition:color .2s}
.psv-product-page .quantity .qty-btn:hover{color:var(--red)}
@media(max-width:767px){
.psv-product-page .quantity input{height:44px}
.psv-product-page .quantity .qty-btn{width:44px;height:44px}
}
/* ── Add to Cart — standalone selector (PageSpeed strips parent prefixes) ─ */

.single_add_to_cart_button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 32px;background:var(--red) !important;color:#fff !important;border:2px solid var(--red) !important;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:900;cursor:pointer;transition:all .3s var(--ease-out);border-radius:0}
.single_add_to_cart_button:hover{background:#b00f22 !important;border-color:#b00f22 !important;transform:translateY(-2px);box-shadow:0 8px 28px rgba(206,17,38,.35)}
.single_add_to_cart_button:active{transform:translateY(0)}
.psv-product-page .single_variation_wrap .woocommerce-variation{margin:10px 0;color:rgba(255,255,255,.7);font-size:.9rem}
.psv-product-page .single_variation_wrap .woocommerce-variation-price{margin-bottom:10px}
.psv-product-page .single_variation_wrap .woocommerce-variation-availability .in-stock{color:#4caf50}
.psv-product-page .single_variation_wrap .woocommerce-variation-availability .out-of-stock{color:var(--red)}
.psv-product-page .product_meta{color:rgba(255,255,255,.35);font-size:.85rem;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}
.psv-product-page .product_meta a{color:rgba(255,255,255,.5);transition:color .2s}
.psv-product-page .product_meta a:hover{color:var(--red)}
.psv-product-page .product_meta>span{display:block;margin-bottom:4px}
.psv-product-page .product_meta .posted_in,.psv-product-page .product_meta .tagged_as{display:inline}

/* Tabs */
.psv-product-page .woocommerce-tabs{margin-top:40px;border-top:1px solid rgba(255,255,255,.06);padding-top:24px;grid-column:1/-1}
.psv-product-page .woocommerce-tabs ul.tabs{list-style:none;padding:0;margin:0 0 20px;display:flex;gap:4px;border-bottom:1px solid rgba(255,255,255,.06)}
.psv-product-page .woocommerce-tabs ul.tabs li{margin:0;padding:0}
.psv-product-page .woocommerce-tabs ul.tabs li.active,.psv-product-page div.product .woocommerce-tabs ul.tabs li.active{background:transparent!important}
.psv-product-page .woocommerce-tabs ul.tabs li.active::before,.psv-product-page .woocommerce-tabs ul.tabs li.active::after{display:none!important;box-shadow:none!important;content:none!important}
.psv-product-page .woocommerce-tabs ul.tabs li a,.psv-product-page div.product .woocommerce-tabs ul.tabs li a{display:block;padding:10px 18px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.4)!important;transition:all .25s;border-bottom:2px solid transparent;margin-bottom:-1px}
.psv-product-page .woocommerce-tabs ul.tabs li.active a,.psv-product-page div.product .woocommerce-tabs ul.tabs li.active a{color:var(--red)!important;border-bottom-color:var(--red)}
.psv-product-page .woocommerce-tabs ul.tabs li a:hover{color:rgba(255,255,255,.7)!important}
.psv-product-page .woocommerce-tabs .panel,.psv-product-page div.product .woocommerce-tabs .panel{color:rgba(255,255,255,.6)!important;line-height:1.7;font-size:.95rem;max-width:700px;background:transparent!important}
.psv-product-page .woocommerce-tabs .panel table.shop_attributes{width:100%;border-collapse:collapse;color:rgba(255,255,255,.6)!important}
.psv-product-page .woocommerce-tabs .panel table.shop_attributes th,.psv-product-page .woocommerce-tabs .panel table.shop_attributes td{padding:10px 12px;border:1px solid rgba(255,255,255,.08)!important;background:transparent!important;color:rgba(255,255,255,.6)!important}
.psv-product-page .woocommerce-tabs .panel table.shop_attributes th{color:#fff!important;font-weight:700;text-align:left}
.psv-product-page .woocommerce-tabs .panel table.shop_attributes tr:nth-child(even) td,.psv-product-page .woocommerce-tabs .panel table.shop_attributes tr:nth-child(even) th{background:rgba(255,255,255,.03)!important}
.psv-product-page #reviews{color:rgba(255,255,255,.6)!important}
.psv-product-page #reviews .comment-text{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;color:rgba(255,255,255,.75)!important}
.psv-product-page #reviews .woocommerce-Reviews-title,.psv-product-page #reviews .comment-reply-title{font-family:var(--serif);color:#fff!important}
.psv-product-page #reviews .form-submit .submit{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;font-weight:800;padding:10px 22px;border-radius:0}
.psv-product-page #reviews input:not([type=submit]),.psv-product-page #reviews textarea{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.15)!important;color:#fff!important}
.psv-product-page #reviews .stars a{color:rgba(255,255,255,.4)!important}
.psv-product-page #reviews p.meta,.psv-product-page #reviews p.stars a{color:rgba(255,255,255,.4)!important}
.psv-product-page #reviews li.comment .comment_container{color:rgba(255,255,255,.7)!important}
.psv-product-page .woocommerce-tabs .panel h2{font-family:var(--serif);font-size:1.3rem;color:#fff;margin:0 0 12px}

/* Related products */
.psv-product-page .related.products{margin-top:48px;padding-top:32px;border-top:1px solid rgba(255,255,255,.06);grid-column:1/-1}
.psv-product-page .related.products h2{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2.2rem);letter-spacing:-.04em;text-transform:uppercase;margin:0 0 20px;color:#fff}
.psv-product-page .related.products ul.products{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.psv-product-page .related.products ul.products::before,.psv-product-page .related.products ul.products::after{content:none;display:none}
@media(min-width:768px){.psv-product-page .related.products ul.products{grid-template-columns:repeat(4,1fr)}}
.psv-product-page .related.products ul.products li.product{width:auto;float:none;margin:0;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);overflow:hidden;transition:transform .3s var(--ease-out),border-color .3s}
.psv-product-page .related.products ul.products li.product:hover{transform:translateY(-4px);border-color:rgba(206,17,38,.4)}
.psv-product-page .related.products ul.products li.product a{display:block;color:inherit;text-decoration:none}
.psv-product-page .related.products ul.products li.product img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.psv-product-page .related.products ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif);font-size:.95rem;padding:12px 12px 4px;margin:0;color:#fff}
.psv-product-page .related.products ul.products li.product .price{color:var(--red);font-weight:700;font-size:.85rem;padding:0 12px 12px;display:block}
.psv-product-page .related.products ul.products li.product .onsale{display:none}
.psv-product-page .related.products ul.products li.product .button{display:none}

/* Hide WooCommerce "Clear" link — re-selecting an option clears it naturally */
.psv-product-page .reset_variations{display:none!important}
/* Standalone selectors (PageSpeed-safe — no parent prefix to strip) */
.related.products{margin-top:48px!important;padding-top:32px!important;border-top:1px solid rgba(255,255,255,.06)!important;grid-column:1/-1}
.related.products h2{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2.2rem);letter-spacing:-.04em;text-transform:uppercase;margin:0 0 20px;color:#fff!important}
.related.products ul.products{list-style:none!important;padding:0!important;margin:0!important;display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:16px!important}
.related.products ul.products::before,.related.products ul.products::after{content:none!important;display:none!important}
@media(min-width:768px){.related.products ul.products{grid-template-columns:repeat(4,1fr)!important}}
.related.products ul.products li.product{width:auto!important;float:none!important;margin:0!important;background:rgba(255,255,255,.02)!important;border:1px solid rgba(255,255,255,.05)!important;overflow:hidden;transition:transform .3s var(--ease-out),border-color .3s;text-align:left!important}
.related.products ul.products li.product:hover{transform:translateY(-4px);border-color:rgba(206,17,38,.4)!important}
.related.products ul.products li.product a{display:block!important;color:inherit!important;text-decoration:none!important}
.related.products ul.products li.product img{width:100%!important;aspect-ratio:1;object-fit:cover;display:block!important;margin:0!important;border-radius:0!important}
.related.products ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif)!important;font-size:.95rem!important;padding:12px 12px 4px!important;margin:0!important;color:#fff!important;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;word-wrap:break-word}
.related.products ul.products li.product .price{color:var(--red)!important;font-weight:700!important;font-size:.85rem!important;padding:0 12px 12px!important;display:block!important}
.related.products ul.products li.product .onsale{display:none!important}
.related.products ul.products li.product .button{display:none!important}
.reset_variations{display:none!important}

/* WooCommerce notices */
.psv-product-page .woocommerce-message,.psv-product-page .woocommerce-info,.psv-product-page .woocommerce-error{border:1px solid;padding:14px 18px;margin:0 0 18px;font-size:.9rem;color:rgba(255,255,255,.8);background:rgba(255,255,255,.03)}
.psv-product-page .woocommerce-message{border-color:#4caf50;border-left:3px solid #4caf50}
.psv-product-page .woocommerce-info{border-color:#2196f3;border-left:3px solid #2196f3}
.psv-product-page .woocommerce-error{border-color:var(--red);border-left:3px solid var(--red)}

/* Sale badge */
.psv-product-page .onsale{position:absolute;top:14px;left:14px;z-index:2;background:var(--red);color:#fff;padding:6px 12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:900}
.psv-product-page .onsale,
.single-product .onsale,
.woocommerce .onsale,
ul.products li.product .onsale{background:var(--red) !important;color:#fff !important}

/* Hide default WooCommerce yellow dot / sale flash on loop */
ul.products li.product .onsale{min-width:auto;min-height:auto;line-height:1;border-radius:0;right:auto}

/* Override WooPay/afterpay — force dark theme, hide intrusive elements */
.psv-product-page .wc-ppcp,.psv-product-page .wc-ppcp-preview,.psv-product-page .wc-ppcp-product-button,.psv-product-page .ppcp-messages,.psv-product-page .wc-ppcp-v3{display:block;margin:10px 0}
.psv-product-page .wc-ppcp img,.psv-product-page .wc-ap img{max-width:200px}
.psv-product-page .ppcp-messages,.psv-product-page .ppcp-paylater,.psv-product-page .ppcp-paylater-message,.psv-product-page .wc-ppcp-preview{display:none!important}

/* Hide sidebar on product pages */
.psv-product-page .widget-area,.psv-product-page #secondary,.psv-product-page .sidebar{display:none!important}

/* ── Shop / Archive Page ───────────────────────────────── */

body.post-type-archive-product .psv-product-inner,
body.tax-product_cat .psv-product-inner{display:block}

/* ── Global Price Fixes — works without .psv-product-page ── */
.price ins .woocommerce-Price-amount,
.price ins .woocommerce-Price-amount bdi,
.woocommerce-Price-amount.amount {
  color: #CE1126 !important;
}
.price del .woocommerce-Price-amount,
.price del .woocommerce-Price-amount bdi {
  color: rgba(255,255,255,.45) !important;
}
.price {
  color: #CE1126 !important;
}
.woocommerce-variation-price .price .woocommerce-Price-amount {
  color: #CE1126 !important;
}

/* ── Hide Sale Badge on single product ────────────────── */
.single-product .onsale {
  display: none !important;
}

/* ── WooCommerce Notices — style globally ─────────────── */
.woocommerce-message {
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(76,175,80,.3) !important;
  border-left: 3px solid #4CAF50 !important;
  color: rgba(255,255,255,.85) !important;
  padding: 14px 18px !important;
  margin: 0 0 18px !important;
  font-size: .9rem !important;
  line-height: 1.5 !important;
  border-radius: 0 !important;
}
.woocommerce-message .button {
  background: #CE1126 !important;
  color: #fff !important;
  border: none !important;
  padding: 8px 16px !important;
  font-size: 10px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
  margin-left: 8px !important;
  text-decoration: none !important;
}
.woocommerce-message .button:hover {
  background: #b00f22 !important;
}
.woocommerce-error {
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(206,17,38,.3) !important;
  border-left: 3px solid #CE1126 !important;
  color: rgba(255,255,255,.85) !important;
  padding: 14px 18px !important;
  margin: 0 0 18px !important;
  font-size: .9rem !important;
}
.woocommerce-info {
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(33,150,243,.3) !important;
  border-left: 3px solid #2196F3 !important;
  color: rgba(255,255,255,.85) !important;
  padding: 14px 18px !important;
  margin: 0 0 18px !important;
  font-size: .9rem !important;
}

/* ── Animations ───────────────────────────────────────── */
@keyframes psvGrain{0%,100%{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(-10%,5%)}30%{transform:translate(5%,-10%)}40%{transform:translate(-5%,15%)}50%{transform:translate(-10%,5%)}60%{transform:translate(15%,0)}70%{transform:translate(0,10%)}80%{transform:translate(-15%,0)}90%{transform:translate(10%,5%)}}
@keyframes psvBreathe{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}
@keyframes psvScroll{0%,100%{transform:scaleY(1);opacity:1}50%{transform:scaleY(.3);opacity:.3}}
@keyframes psvDropFade{0%{opacity:0}100%{opacity:1}}
@keyframes psvCdPulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes psvCdUrgent{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.08)}}
@keyframes psvFlash{0%,100%{opacity:1}50%{opacity:.2}}

/* ── Account Page ──────────────────────────────────── */
.woocommerce-MyAccount-navigation{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);padding:0;margin:0 0 24px}
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0}
.woocommerce-MyAccount-navigation ul li{margin:0;padding:0;border-bottom:1px solid rgba(255,255,255,.04)}
.woocommerce-MyAccount-navigation ul li.is-active{background:rgba(206,17,38,.08);border-left:3px solid var(--red)}
.woocommerce-MyAccount-navigation ul li a{display:block;padding:14px 20px;color:rgba(255,255,255,.6);font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:color .2s;text-decoration:none}
.woocommerce-MyAccount-navigation ul li a:hover{color:#fff}
.woocommerce-MyAccount-navigation ul li.is-active a{color:#fff}
.woocommerce-MyAccount-content{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);padding:24px}
.woocommerce-MyAccount-content p{color:rgba(255,255,255,.6);line-height:1.6;font-size:.95rem}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{color:#fff;font-family:var(--serif);font-size:1.3rem;margin:0 0 16px}
.woocommerce-MyAccount-content .woocommerce-Address-title h3{font-size:1.1rem}
.woocommerce-MyAccount-content address{color:rgba(255,255,255,.5);font-style:normal;line-height:1.6}
.woocommerce-MyAccount-content .button{background:var(--red);color:#fff;border:0;padding:10px 20px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;cursor:pointer;transition:background .2s}
.woocommerce-MyAccount-content .button:hover{background:#b00f22}
.woocommerce-MyAccount-content table{width:100%;border-collapse:collapse;color:rgba(255,255,255,.6);font-size:.9rem}
.woocommerce-MyAccount-content table th,.woocommerce-MyAccount-content table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}
.woocommerce-MyAccount-content table th{color:rgba(255,255,255,.4);text-transform:uppercase;font-size:.75rem;letter-spacing:.12em}
.woocommerce-MyAccount-content table a{color:var(--red)}
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-number a{color:#fff}

/* Login / Register / Lost-password forms — default WooCommerce markup ships
   bright white inputs that clash hard with the dark theme (worst visual
   break on the site); match the checkout form-row treatment. */
.woocommerce-form-login,.woocommerce-form-register,.woocommerce-ResetPassword{max-width:420px}
.woocommerce-form-row,.woocommerce-form-login .form-row{display:block;margin:0 0 16px}
.woocommerce-form-row label,.woocommerce-form-login .form-row label{display:block;color:rgba(255,255,255,.6);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0 0 6px}
.woocommerce-form-row .required{color:var(--red);text-decoration:none}
.woocommerce .woocommerce-form-row input.input-text,.woocommerce .woocommerce-form-row input[type="text"],.woocommerce .woocommerce-form-row input[type="email"],.woocommerce .woocommerce-form-row input[type="password"],.woocommerce form .form-row .input-text{width:100%;padding:12px 14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:.95rem;border-radius:0}
.woocommerce .woocommerce-form-row input.input-text:focus{border-color:var(--red);outline:none;background:rgba(255,255,255,.07)}
.woocommerce-form-row .password-input{position:relative;display:block}
.woocommerce-form-row .password-input input{padding-right:44px}
.woocommerce-form-row .show-password-input{position:absolute;right:10px;top:50%;transform:translateY(-50%);filter:invert(1) brightness(1.6)}
.woocommerce-form__label-for-checkbox{display:flex!important;align-items:center;gap:8px;color:rgba(255,255,255,.6);font-size:.85rem;text-transform:none;letter-spacing:normal;font-weight:400;cursor:pointer}
.woocommerce-form__input-checkbox{width:16px;height:16px;accent-color:var(--red);margin:0}
.woocommerce-form-login__rememberme{margin-bottom:0}
.woocommerce-form-login .form-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.woocommerce .woocommerce-form-login__submit,.woocommerce .woocommerce-form-register .woocommerce-Button,.woocommerce .woocommerce-ResetPassword .woocommerce-Button,.woocommerce button.woocommerce-form-login__submit{background:var(--red)!important;color:#fff!important;border:0;padding:12px 28px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:900;cursor:pointer;transition:background .2s,transform .2s}
.woocommerce .woocommerce-form-login__submit:hover,.woocommerce .woocommerce-form-register .woocommerce-Button:hover,.woocommerce .woocommerce-ResetPassword .woocommerce-Button:hover{background:#b00f22!important}
.woocommerce-LostPassword{margin-top:18px}
.woocommerce-LostPassword a,.u-column1 .woocommerce-form-login p a{color:var(--red);text-decoration:none;font-size:.85rem}
.woocommerce-LostPassword a:hover{text-decoration:underline}
.woocommerce-MyAccount-content .woocommerce-form-register{margin-top:8px}
.woocommerce-MyAccount-content p.woocommerce-form-row{color:rgba(255,255,255,.6)}
.u-column1,.u-column2{max-width:420px}
@media(min-width:900px){.woocommerce-MyAccount-content .col2-set{display:flex;gap:48px}.woocommerce-MyAccount-content .col2-set .u-column1,.woocommerce-MyAccount-content .col2-set .u-column2{flex:1}}

/* ── Cart Page ─────────────────────────────────────── */
.woocommerce-cart .psv-product-inner{display:block}
.woocommerce-cart .woocommerce-cart-form table.cart{width:100%;border-collapse:collapse;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06)}
.woocommerce-cart .woocommerce-cart-form table.cart thead{display:none}
.woocommerce-cart .woocommerce-cart-form table.cart td{padding:16px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}
.woocommerce-cart .woocommerce-cart-form table.cart .product-thumbnail{width:100px}
.woocommerce-cart .woocommerce-cart-form table.cart .product-thumbnail img{width:80px;height:auto;border-radius:4px}
.woocommerce-cart .woocommerce-cart-form table.cart .product-name{color:#fff;font-family:var(--serif);font-size:1rem}
.woocommerce-cart .woocommerce-cart-form table.cart .product-name a{color:#fff;text-decoration:none}
.woocommerce-cart .woocommerce-cart-form table.cart .product-name a:hover{color:var(--red)}
.woocommerce-cart .woocommerce-cart-form table.cart .product-price,.woocommerce-cart .woocommerce-cart-form table.cart .product-subtotal{color:var(--red);font-weight:700}
.woocommerce-cart .woocommerce-cart-form table.cart .product-quantity input{width:60px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:#fff;padding:6px 8px;text-align:center}
.woocommerce-cart .woocommerce-cart-form table.cart .product-remove a{color:rgba(255,255,255,.3);font-size:1.2rem;text-decoration:none;transition:color .2s}
.woocommerce-cart .woocommerce-cart-form table.cart .product-remove a:hover{color:var(--red)}
.woocommerce-cart .cart-collaterals{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);padding:24px;margin-top:24px}
.woocommerce-cart .cart-collaterals h2{color:#fff;font-family:var(--serif);font-size:1.3rem;margin:0 0 16px;text-transform:uppercase;letter-spacing:-.02em}
.woocommerce-cart .cart-collaterals .shop_table{width:100%;border-collapse:collapse;color:rgba(255,255,255,.6)}
.woocommerce-cart .cart-collaterals .shop_table th,.woocommerce-cart .cart-collaterals .shop_table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06)}
.woocommerce-cart .cart-collaterals .shop_table .order-total{color:#fff;font-size:1.1rem}
.woocommerce-cart .cart-collaterals .shop_table .order-total td{color:var(--red);font-weight:900}
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a{display:inline-block;background:var(--red);color:#fff;padding:14px 32px;text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:900;text-decoration:none;transition:background .2s,transform .2s}
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a:hover{background:#b00f22;transform:translateY(-2px)}
.woocommerce-cart .cart-collaterals .coupon{display:flex;gap:8px;margin-bottom:16px}
.woocommerce-cart .cart-collaterals .coupon input{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:#fff;padding:10px 12px}
.woocommerce-cart .cart-collaterals .coupon button{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 16px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.1em;cursor:pointer;transition:background .2s}
.woocommerce-cart .cart-collaterals .coupon button:hover{background:rgba(255,255,255,.2)}
.woocommerce-cart .checkout-button,.woocommerce-cart .wc-proceed-to-checkout .checkout-button{background:var(--red)!important;color:#fff!important;padding:14px 32px!important;text-transform:uppercase;letter-spacing:.14em;font-size:12px!important;font-weight:900!important;border-radius:0!important;display:inline-block!important;text-decoration:none!important}
.woocommerce-cart .checkout-button:hover{background:#b00f22!important;transform:translateY(-2px)}
.woocommerce-cart .wc-proceed-to-checkout .ppcp-messages,.woocommerce-cart .wc-proceed-to-checkout .ppcp-paylater,.woocommerce-cart .wc-proceed-to-checkout .wc-ppcp-preview{display:none!important}
.woocommerce-cart .cart-empty{color:rgba(255,255,255,.6);text-align:center;padding:40px;font-size:1.1rem}
.woocommerce-cart .return-to-shop{text-align:center}
.woocommerce-cart .return-to-shop a{display:inline-block;background:var(--red);color:#fff;padding:12px 24px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;text-decoration:none}

/* ── Checkout Page ─────────────────────────────────── */
.woocommerce-checkout .psv-product-inner{display:block}
.woocommerce-checkout .woocommerce-checkout{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start}
@media(max-width:767px){.woocommerce-checkout .woocommerce-checkout{grid-template-columns:1fr}}
.woocommerce-checkout #customer_details .col-1,.woocommerce-checkout #customer_details .col-2{width:100%;float:none;padding:0}
.woocommerce-checkout .woocommerce-checkout-review-order{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);padding:24px}
.woocommerce-checkout h3{color:#fff;font-family:var(--serif);font-size:1.2rem;margin:0 0 16px}
.woocommerce-checkout .form-row{display:block;margin:0 0 14px}
.woocommerce-checkout .form-row label{display:block;color:rgba(255,255,255,.6);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0 0 4px}
.woocommerce-checkout .form-row input,.woocommerce-checkout .form-row select,.woocommerce-checkout .form-row textarea{width:100%;padding:10px 12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:.95rem}
.woocommerce-checkout .form-row input:focus,.woocommerce-checkout .form-row select:focus{border-color:var(--red);outline:none}
.woocommerce-checkout .select2-container .select2-selection--single{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);height:auto;padding:8px 12px}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered{color:#fff}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow{top:10px}
.woocommerce-checkout .woocommerce-checkout-payment{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);padding:20px;margin-top:20px}
.woocommerce-checkout .woocommerce-checkout-payment .payment_methods{margin:0;padding:0;list-style:none}
.woocommerce-checkout .woocommerce-checkout-payment .payment_methods li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.woocommerce-checkout .woocommerce-checkout-payment .payment_box{color:rgba(255,255,255,.5);font-size:.85rem;padding:10px 0 0;line-height:1.5}
.woocommerce-checkout .place-order .button{width:100%;background:var(--red);color:#fff;padding:14px;text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:900;border:0;cursor:pointer;transition:background .2s,transform .2s}
.woocommerce-checkout .place-order .button:hover{background:#b00f22;transform:translateY(-2px)}
.woocommerce-checkout .woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;color:rgba(255,255,255,.6);font-size:.9rem}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,.woocommerce-checkout .woocommerce-checkout-review-order-table td{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total{color:#fff;font-size:1.1rem}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{color:var(--red);font-weight:900;font-size:1.2rem}
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-thumbnail{width:50px;padding-right:10px}
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-thumbnail img{width:50px;height:auto;border-radius:4px}
.woocommerce-checkout .wc_payment_methods label{color:#fff!important}

/* Express checkout button */
.woocommerce-checkout .wc-ppcp-preview,.woocommerce-checkout .ppcp-messages{display:block!important;margin:10px 0}
.woocommerce-checkout .woocommerce-checkout .ppcp-dcc-order-button{filter:none!important}

/* ── Related Products ───────────────────────────────── */
.related.products ul.products li.product{display:flex;flex-direction:column}
.related.products ul.products li.product img{max-height:280px;object-fit:cover}
.related.products ul.products li.product .star-rating{display:none!important}
.related.products ul.products li.product .price del{display:inline;margin-right:6px}
.related.products ul.products li.product .add_to_cart_button,.related.products ul.products li.product a.button{display:none!important}

/* ── Future-ready media utilities ───────────────────── */
/* Auto-sizing: upload any image and these classes handle the fit */
.psv-media-cover img,.psv-media-cover video{width:100%;height:100%;object-fit:cover}
.psv-media-contain img,.psv-media-contain video{width:100%;height:100%;object-fit:contain}
.psv-media-fill img,.psv-media-fill video{width:100%;height:100%;object-fit:fill}
.psv-media-scale-down img,.psv-media-scale-down video{width:100%;height:100%;object-fit:scale-down}
.psv-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.psv-hero-video-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.psv-audio-player{position:fixed;bottom:20px;left:20px;z-index:1000;opacity:.7;transition:opacity .3s}
.psv-audio-player:hover{opacity:1}

/* (Bridge CSS overrides moved to functions.php priority 110 for correct load order) */
/* between-drops + empty-cart: vertically centered like the homepage drop (Brandon 2026-07-02) */
.psv-page-inner:has(.psv-shop-empty){min-height:72vh;display:flex;align-items:center;justify-content:center}
.woocommerce-cart .psv-page-inner{min-height:66vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.woocommerce-cart .cart-empty{font-family:var(--serif,"Times New Roman",Georgia,serif);font-size:clamp(1.3rem,4vw,2rem);color:rgba(255,255,255,.72);text-align:center;border:0;background:none}
.woocommerce-cart .return-to-shop{margin-top:20px;text-align:center}

/* countdown legibility now handled by the refined premium element above
   (.psv-countdown glass panel + red top rule + hairline dividers). Old
   muddy-box override removed in the million-dollar hero rebuild. */

/* ── 2026-07-02 Brandon: eagle fills the hero + seal rides the scroll ── */
/* Eagle/flag: full-bleed cover of the hero canvas at every breakpoint */
/* FIX WAVE 2 — P0-2: eagle held static (animation removed). The 26s drift
   was imperceptible as motion (Pharrell) and competed as ambient wallpaper
   with the grain+glow stack (Ive/Rams). One deliberate, legible motion
   event lands instead on the countdown's final 60s — see P0-4. */
.psv-hero-eagle-bg{top:0;right:0;left:0;bottom:0;width:100%;height:100%;max-height:100%;transform:none;object-fit:cover;object-position:center 30%;animation:none}
@media(min-width:900px){.psv-hero-eagle-bg{width:100%;transform:none;object-position:72% 28%;opacity:.7}}
@media(max-width:639px){.psv-hero-eagle-bg{top:0;width:100%;transform:none;object-position:center 24%;opacity:.55}}
@media(prefers-reduced-motion:reduce){.psv-hero-eagle-bg{animation:none}}
/* Seal: fixed badge that scrolls with the page, parked BELOW the cart bubble, never blocking clicks */
.psv-seal{position:fixed;top:clamp(96px,13vh,140px);right:clamp(18px,3vw,44px);width:clamp(84px,9vw,128px);height:clamp(84px,9vw,128px);z-index:40;pointer-events:none}
@media(max-width:639px){.psv-seal{top:172px;right:14px;width:64px;height:64px}}

/* ── seal v3: body-level fixed badge (in-hero copy hidden) — presidential-seal
   rebuild 2026-07-03; the wp_footer inline style in functions.php is the
   live source of truth (immune to CSS-layer caching), this mirrors it so
   style.css doesn't drift stale. Mobile is centered per owner spec. ──
   FIX WAVE 4 — glass seal: round glass puck (backdrop-filter blur+saturate),
   white line-engraving art sits inside at ~86%. Positions/sizes unchanged. */
.psv-seal{display:none}
.psv-seal-fixed{position:fixed;top:clamp(96px,13vh,140px);right:clamp(18px,3vw,44px);width:clamp(140px,13.5vw,180px);height:clamp(140px,13.5vw,180px);z-index:40;pointer-events:none;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.07);backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);border:1px solid rgba(255,255,255,.22);box-shadow:0 8px 32px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.25);transition:background .3s ease,box-shadow .3s ease}
@supports not (backdrop-filter:blur(1px)){.psv-seal-fixed{background:rgba(255,255,255,.12)}}
.psv-seal-fixed img{width:86%;height:86%;object-fit:contain;display:block}
@media(max-width:639px){.psv-seal-fixed{top:56px;right:auto;left:50%;transform:translateX(-50%);width:72px;height:72px}}

/* 2026-07-02: eagle slightly too big — pull zoom back */
@keyframes psvEagleFill{0%{transform:scale(1)}100%{transform:scale(1.045)}}

/* 2026-07-02: product gallery rendering oversized on mobile after mockup swap — hard-cap to container */
.single-product .woocommerce-product-gallery,.single-product .woocommerce-product-gallery__wrapper,.single-product .woocommerce-product-gallery__image{max-width:100%!important}
.single-product .woocommerce-product-gallery img{max-width:100%!important;width:100%;height:auto!important}
.single-product div.product{overflow-x:clip}

/* 2026-07-02 v2: gallery inline width busts 390px viewports — force single column + full width on mobile */
@media(max-width:768px){
.single-product .woocommerce-product-gallery{width:100%!important;max-width:100%!important;float:none!important}
.single-product div.product .entry-summary,.single-product div.product .summary{width:100%!important;float:none!important}
.single-product div.product{display:block}
body.single-product{overflow-x:hidden}
}

/* FIX WAVE 1 — size guide (product pages) */
.psv-size-guide{margin:16px 0;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:12px 16px;background:rgba(255,255,255,.03)}
.psv-size-guide__toggle{cursor:pointer;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.01em;list-style:none;display:flex;align-items:center;gap:8px}
.psv-size-guide__toggle::-webkit-details-marker{display:none}
.psv-size-guide__toggle::before{content:'+';color:var(--red);font-weight:700;width:14px}
.psv-size-guide[open] .psv-size-guide__toggle::before{content:'\2212'}
.psv-size-guide__body{margin-top:14px}
.psv-size-guide__table{width:100%;border-collapse:collapse;font-size:.85rem;color:rgba(255,255,255,.85)}
.psv-size-guide__table th,.psv-size-guide__table td{text-align:left;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.08)}
.psv-size-guide__table th{color:rgba(255,255,255,.5);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}
.psv-size-guide__fit{margin:12px 0 0;font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.55)}

/* FIX WAVE 1 — shipping/production disclosure (product pages + cart) */
.psv-ship-note{margin:14px 0;font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:8px}
.psv-ship-note::before{content:'\2713';color:var(--red);font-weight:700}
.woocommerce-cart .psv-ship-note{margin:0 0 20px;padding:12px 16px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:rgba(255,255,255,.03);color:rgba(255,255,255,.7)}

/* FIX WAVE 2 — P0-4: countdown-zero payoff + final-60s heartbeat (Pharrell).
   body.is-final-minute is toggled by theme.js exactly once, in the tick()
   loop, once diff<=60000 — the pulse below is synced to the real seconds
   tick, not a free-running decorative loop. psvCdUrgent/psvFlash already
   existed in this file, unused; this is the only place either is wired to
   a selector. */
body.is-final-minute .psv-cd-box{animation:psvCdUrgent 1s ease-in-out infinite}
body.is-final-minute .psv-glow{animation:psvCdPulse 1s ease-in-out infinite}
body.is-final-minute .psv-cd-eyebrow{color:var(--red)}

/* One-shot full-viewport flash at the exact zero crossing, before the
   vault-closed (is-dropped) state settles in. theme.js adds is-flashing for
   ~700ms then removes it — CSS never loops this on its own. */
.psv-flash-overlay{position:fixed;inset:0;z-index:250;background:var(--red);opacity:0;pointer-events:none}
body.is-flashing .psv-flash-overlay{animation:psvFlash .7s ease-out 1}

/* FIX WAVE 2 — P0-1: universal vault-card stage. Extends the homepage
   carousel's .psv-exhibit-image treatment (dark gradient stage, hairline
   border, hover-scale) to every product image on the site: single-product
   gallery, related products, cart thumbnails. No bare white/navy Printful
   mockup should ever sit unstaged. */
.psv-product-page .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{background:var(--stage);border:1px solid rgba(255,255,255,.05);overflow:hidden}
.psv-product-page .woocommerce-product-gallery img{border:0;transition:transform .7s var(--ease-out)}
.psv-product-page .woocommerce-product-gallery__image:hover img{transform:scale(1.04)}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li{background:var(--stage);border-radius:4px;overflow:hidden}
.psv-product-page .woocommerce-product-gallery .flex-control-thumbs li img{border:1px solid rgba(255,255,255,.08)}

.related.products ul.products li.product,
.psv-product-page .related.products ul.products li.product{background:var(--stage)!important}
.related.products ul.products li.product a,
.psv-product-page .related.products ul.products li.product a{overflow:hidden;display:block!important}
.related.products ul.products li.product img,
.psv-product-page .related.products ul.products li.product img{aspect-ratio:4/5!important;transition:transform .7s var(--ease-out)!important}
.related.products ul.products li.product a:hover img,
.psv-product-page .related.products ul.products li.product a:hover img{transform:scale(1.04)}

.woocommerce-cart .woocommerce-cart-form table.cart .product-thumbnail{background:var(--stage);border-radius:4px;padding:6px}
.woocommerce-cart .woocommerce-cart-form table.cart .product-thumbnail img{border-radius:2px;border:0}
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-thumbnail{background:var(--stage);border-radius:4px;padding:4px}
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item .product-thumbnail img{border-radius:2px}

/* FIX WAVE 2 — P1-5: seal recurs — inline on single-product pages (above
   the size guide, near the price/CTA) and small in the footer. Same image,
   same wording as the homepage mark (owner's choice, unchanged); modest
   sizes here so the fixed homepage badge stays the loudest instance. */
.psv-seal-inline{width:clamp(56px,9vw,84px);margin:0 0 18px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.psv-seal-inline img{width:100%;height:auto;display:block}

.psv-seal-footer{width:44px;margin:0 auto 16px;opacity:.7}
.psv-seal-footer img{width:100%;height:auto;display:block}

/* FIX WAVE 2 — P1-10: THE VAULT page. Dark, serif heading, grid of retired
   designs (greyscale + RETIRED stamp already baked into the processed
   images), padlock iconography, wink copy about the 24h re-release. */
.psv-vault-page{background:var(--blackout);min-height:100vh;min-height:100dvh;padding:100px 24px 80px}
.psv-vault-hero{max-width:640px;margin:0 auto 56px;text-align:center}
.psv-vault-lock{display:block;font-size:1.8rem;opacity:.5;margin-bottom:16px;filter:grayscale(1)}
.psv-vault-heading{font-family:var(--serif);font-size:clamp(2.4rem,7vw,4.2rem);line-height:.9;letter-spacing:-.04em;text-transform:uppercase;color:#fff;margin:0 0 18px}
.psv-vault-sub{color:rgba(255,255,255,.55);font-size:1rem;line-height:1.6;margin:0}

.psv-vault-grid{width:min(1200px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(min-width:640px){.psv-vault-grid{grid-template-columns:repeat(3,1fr);gap:24px}}
@media(min-width:960px){.psv-vault-grid{grid-template-columns:repeat(5,1fr)}}

.psv-vault-item-image{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid rgba(255,255,255,.06);border-radius:2px;transition:border-color .3s var(--ease-out)}
.psv-vault-item-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .6s var(--ease-out),filter .4s}
.psv-vault-item:hover .psv-vault-item-image img{transform:scale(1.03);filter:grayscale(.6)}
.psv-vault-item:hover .psv-vault-item-image{border-color:rgba(206,17,38,.35)}
.psv-vault-item-lock{position:absolute;top:10px;right:10px;font-size:1rem;opacity:.55;filter:grayscale(1) brightness(1.6)}
.psv-vault-item-name{margin:10px 0 0;font-size:.78rem;letter-spacing:.06em;color:rgba(255,255,255,.4);text-align:center}

.psv-vault-wink{max-width:520px;margin:64px auto 0;text-align:center;padding-top:40px;border-top:1px solid rgba(255,255,255,.06)}
.psv-vault-wink p{color:rgba(255,255,255,.65);font-size:1rem;line-height:1.6;margin:0 0 8px;font-family:var(--serif);font-style:italic}
.psv-vault-wink-sub{color:rgba(255,255,255,.35)!important;font-size:.85rem!important;font-style:normal!important;font-family:var(--sans)!important;margin:0 0 26px!important}
.psv-vault-wink .psv-btn{margin-top:4px}

@media(max-width:639px){
  .psv-vault-page{padding:80px 18px 56px}
  .psv-vault-grid{gap:14px}
}

/* 2026-07-03: product page oversize regression at mobile — unconditional cap (flexslider forces px widths) */
@media(max-width:767px){
body.single-product{overflow-x:hidden}
.single-product div.product,.single-product .woocommerce-notices-wrapper,.single-product .woocommerce-product-gallery,.single-product .flex-viewport,.single-product .woocommerce-product-gallery__wrapper,.single-product .woocommerce-product-gallery__image{max-width:100%!important;width:100%!important}
.single-product .woocommerce-product-gallery img{max-width:100%!important;width:100%!important;height:auto!important}
}

/* 2026-07-03 v2: grid min-content blowout — kill intrinsic sizing, vw-relative caps */
@media(max-width:767px){
.psv-product-inner,.psv-product-page{overflow-x:clip}
.psv-product-inner>*,.single-product div.product>*{min-width:0!important}
.single-product div.product,.single-product .woocommerce-notices-wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery,.single-product .flex-viewport,.single-product .woocommerce-product-gallery__wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery img{max-width:calc(100vw - 36px)!important;height:auto!important}
}

/* 2026-07-03 v2: grid min-content blowout — kill intrinsic sizing, vw-relative caps */
@media(max-width:767px){
.psv-product-inner,.psv-product-page{overflow-x:clip}
.psv-product-inner>*,.single-product div.product>*{min-width:0!important}
.single-product div.product,.single-product .woocommerce-notices-wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery,.single-product .flex-viewport,.single-product .woocommerce-product-gallery__wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery img{max-width:calc(100vw - 36px)!important;height:auto!important}
}

/* 2026-07-03 v2: grid min-content blowout — kill intrinsic sizing, vw-relative caps */
@media(max-width:767px){
.psv-product-inner,.psv-product-page{overflow-x:clip}
.psv-product-inner>*,.single-product div.product>*{min-width:0!important}
.single-product div.product,.single-product .woocommerce-notices-wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery,.single-product .flex-viewport,.single-product .woocommerce-product-gallery__wrapper{max-width:calc(100vw - 32px)!important}
.single-product .woocommerce-product-gallery img{max-width:calc(100vw - 36px)!important;height:auto!important}
}
