.pbvm-catalog-archive{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:28px}.pbvm-catalog-card{background:#fff;border:1px solid #ddd;box-shadow:0 3px 14px rgba(0,0,0,.08);display:flex;flex-direction:column;overflow:hidden}.pbvm-cover-link{display:block;aspect-ratio:3/4;background:#f2f0e9;overflow:hidden}.pbvm-cover-link img{width:100%;height:100%;object-fit:contain;transition:transform .2s ease}.pbvm-cover-link:hover img{transform:scale(1.02)}.pbvm-no-cover{height:100%;display:flex;align-items:center;justify-content:center;color:#777}.pbvm-card-copy{padding:18px}.pbvm-card-copy h3{margin:0 0 6px;font-size:1.15rem}.pbvm-card-copy h3 a{text-decoration:none}.pbvm-card-meta{font-size:.9rem;color:#666;margin-bottom:14px}.pbvm-view-button{display:inline-block;padding:8px 13px;border:1px solid currentColor;text-decoration:none}.pbvm-viewer{max-width:1200px;margin:20px auto}.pbvm-viewer-meta{text-align:center;color:#666;margin-bottom:14px}.pbvm-stage-wrap{display:grid;grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;gap:10px}.pbvm-stage{border:0;background:#eee;padding:12px;cursor:zoom-in;min-height:350px;display:flex;align-items:center;justify-content:center}.pbvm-stage img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;box-shadow:0 2px 16px rgba(0,0,0,.15)}.pbvm-nav{border:0;background:transparent;font-size:46px;line-height:1;cursor:pointer;padding:15px 5px;color:inherit}.pbvm-counter{text-align:center;margin:12px 0;color:#666}.pbvm-thumbs{display:flex;gap:9px;overflow-x:auto;padding:8px 2px 14px;scroll-snap-type:x proximity}.pbvm-thumb{flex:0 0 76px;border:2px solid transparent;background:#f3f3f3;padding:4px;position:relative;cursor:pointer;scroll-snap-align:start}.pbvm-thumb.is-active{border-color:#222}.pbvm-thumb img{width:100%;aspect-ratio:3/4;object-fit:contain;display:block;background:#fff}.pbvm-thumb span{display:block;font-size:11px;margin-top:3px}.pbvm-credits{border-top:1px solid #ddd;margin-top:24px;padding-top:14px;font-size:.9rem;color:#666}.pbvm-credits p{display:inline;margin:0}.pbvm-lightbox{display:none;position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.94);align-items:center;justify-content:center;padding:42px 72px}.pbvm-lightbox.is-open{display:flex}.pbvm-lightbox img{max-width:100%;max-height:100%;object-fit:contain}.pbvm-lightbox-close,.pbvm-lightbox-prev,.pbvm-lightbox-next{position:absolute;border:0;background:rgba(0,0,0,.25);color:#fff;cursor:pointer}.pbvm-lightbox-close{right:18px;top:12px;font-size:38px}.pbvm-lightbox-prev,.pbvm-lightbox-next{top:50%;transform:translateY(-50%);font-size:58px}.pbvm-lightbox-prev{left:12px}.pbvm-lightbox-next{right:12px}.pbvm-lightbox-count{position:absolute;bottom:12px;color:#fff;background:rgba(0,0,0,.35);padding:4px 9px}.pbvm-no-scroll{overflow:hidden}@media(max-width:700px){.pbvm-catalog-archive{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.pbvm-card-copy{padding:12px}.pbvm-card-copy h3{font-size:1rem}.pbvm-stage-wrap{grid-template-columns:34px minmax(0,1fr) 34px;gap:2px}.pbvm-stage{padding:5px;min-height:220px}.pbvm-nav{font-size:34px}.pbvm-lightbox{padding:45px 10px 50px}.pbvm-lightbox-prev,.pbvm-lightbox-next{font-size:42px}.pbvm-thumb{flex-basis:64px}}@media(max-width:430px){.pbvm-catalog-archive{grid-template-columns:1fr 1fr}.pbvm-view-button{font-size:.85rem;padding:6px 9px}}

/* v1.1.1: overlay is moved to document.body to escape theme stacking contexts. */
body > .pbvm-lightbox{position:fixed!important;inset:0!important;z-index:2147483000!important;box-sizing:border-box;pointer-events:auto}
body > .pbvm-lightbox:not(.is-open){display:none!important}
body > .pbvm-lightbox.is-open{display:flex!important}
body > .pbvm-lightbox .pbvm-lightbox-close,body > .pbvm-lightbox .pbvm-lightbox-prev,body > .pbvm-lightbox .pbvm-lightbox-next{z-index:2;pointer-events:auto;touch-action:manipulation}
body > .pbvm-lightbox .pbvm-lightbox-close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
body > .pbvm-lightbox img{max-height:calc(100dvh - 100px);max-width:100%;width:auto;height:auto;object-fit:contain}

/* v1.1.2: zoomable full-screen scans, including touch pinch/pan. */
body > .pbvm-lightbox .pbvm-zoom-viewport{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;touch-action:none;user-select:none;cursor:zoom-in}
body > .pbvm-lightbox .pbvm-zoom-viewport.is-zoomed{cursor:grab}
body > .pbvm-lightbox .pbvm-zoom-viewport.is-zoomed:active{cursor:grabbing}
body > .pbvm-lightbox .pbvm-zoom-viewport img{display:block;max-width:100%;max-height:calc(100dvh - 130px);width:auto;height:auto;object-fit:contain;transform-origin:center center;will-change:transform;pointer-events:none;user-select:none}
body > .pbvm-lightbox .pbvm-zoom-toolbar{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;z-index:5;background:rgba(20,20,20,.85);color:#fff;padding:5px 8px;border-radius:8px;white-space:nowrap}
body > .pbvm-lightbox .pbvm-zoom-toolbar button{border:1px solid #777;border-radius:5px;background:#333;color:#fff;min-width:40px;min-height:40px;font-size:21px;cursor:pointer;padding:3px 9px}
body > .pbvm-lightbox .pbvm-zoom-toolbar .pbvm-zoom-reset{font-size:14px}
body > .pbvm-lightbox .pbvm-zoom-level{min-width:48px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:700px){body > .pbvm-lightbox .pbvm-zoom-toolbar{top:8px}body > .pbvm-lightbox .pbvm-zoom-viewport img{max-height:calc(100dvh - 145px)}}

/* v1.1.5: standalone, full-width single catalog template. No legacy sidebar or post byline. */
.pbvm-catalog-single{width:100%;max-width:none;background:#f6f3ec;color:#252a2d;padding:clamp(28px,5vw,72px) 20px 90px;box-sizing:border-box;min-height:65vh}
.pbvm-catalog-single *{box-sizing:border-box}
.pbvm-catalog-single-inner{max-width:1320px;margin:0 auto;width:100%}
.pbvm-catalog-single-header{margin:0 auto 34px;text-align:center;max-width:1100px}
.pbvm-catalog-eyebrow{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#626c70;margin:0 0 14px}
.pbvm-catalog-single-title{font-size:clamp(29px,3.4vw,48px);font-weight:650;line-height:1.15;margin:0;color:#252a2d}
.pbvm-catalog-single-content{width:100%;max-width:none}
.pbvm-catalog-single-content>.pbvm-viewer{max-width:1260px;width:100%;margin:28px auto}
.pbvm-catalog-single-content>.pbvm-viewer .pbvm-stage{background:#eae8e3}
.pbvm-catalog-single-content>p{max-width:1050px;margin:0 auto 1.5em}
@media(max-width:700px){.pbvm-catalog-single{padding:25px 12px 50px}.pbvm-catalog-single-header{margin-bottom:20px}.pbvm-catalog-single-title{font-size:clamp(26px,7vw,36px)}}

/* v1.1.6: unobtrusive return links above and below individual catalogs. */
.pbvm-catalog-return{max-width:1260px;margin:0 auto;text-align:left}
.pbvm-catalog-return-top{margin-bottom:26px}
.pbvm-catalog-return-bottom{margin-top:34px;padding-top:24px;border-top:1px solid #d7d4cd}
.pbvm-catalog-return a{display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;border:1px solid #8a8c89;background:transparent;color:#252a2d!important;font-size:13px;font-weight:650;letter-spacing:.035em;text-decoration:none!important;transition:background .15s,color .15s}
.pbvm-catalog-return a:hover,.pbvm-catalog-return a:focus-visible{background:#252a2d;color:#fff!important}


/* v1.1.7 — catalog-detail-only contrast guard for Divi 5/theme page surfaces.
 * WordPress adds .single-pbvm_catalog to body for the catalog CPT.
 * Deliberately excludes the fullscreen .pbvm-lightbox, which remains dark.
 */
body.single-pbvm_catalog,
body.single-pbvm_catalog #page-container,
body.single-pbvm_catalog #main-content.pbvm-catalog-single {
    background-color: #f5f2eb !important;
    color: #20282d !important;
}
body.single-pbvm_catalog #main-content.pbvm-catalog-single,
body.single-pbvm_catalog #main-content.pbvm-catalog-single .pbvm-catalog-single-inner,
body.single-pbvm_catalog #main-content.pbvm-catalog-single .pbvm-catalog-single-article,
body.single-pbvm_catalog #main-content.pbvm-catalog-single .pbvm-catalog-single-header,
body.single-pbvm_catalog #main-content.pbvm-catalog-single .pbvm-catalog-single-content {
    background-color: #f5f2eb !important;
    color: #20282d !important;
}
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-single-title,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-eyebrow,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-viewer-meta,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-counter,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-credits,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-single-content > p {
    color: #20282d !important;
}
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-return a {
    color: #20282d !important;
    border-color: #aaa59b;
}
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-return a:hover,
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-catalog-return a:focus-visible {
    background: #20282d !important;
    color: #fff !important;
}
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-stage { background-color: #eae7df !important; }
body.single-pbvm_catalog .pbvm-catalog-single .pbvm-nav { color: #20282d !important; }
@media (max-width: 700px) {
    body.single-pbvm_catalog #main-content.pbvm-catalog-single { padding-inline: 12px; }
}
