:root{--dpsb-primary:#0B2C5F;--dpsb-accent:#E31E24}

/* ---------- Grid ---------- */
.dpsb-grid{display:grid;grid-template-columns:repeat(var(--dpsb-cols,3),minmax(0,1fr));gap:30px;margin:20px 0}
@media(max-width:1024px){.dpsb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.dpsb-grid{grid-template-columns:1fr;gap:22px}}

/* ---------- Card ---------- */
.dpsb-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 6px 24px rgba(11,44,95,.10);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;border:1px solid #eef0f4}
.dpsb-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(11,44,95,.16)}

/* ---------- PDF split viewer ---------- */
.dpsb-viewer{position:relative;background:linear-gradient(145deg,#eef1f6,#dfe4ec);padding:22px 46px 34px;user-select:none;-webkit-user-select:none}
.dpsb-stage{overflow:hidden;width:100%}
.dpsb-track{display:flex;transition:transform .45s ease;will-change:transform}
.dpsb-page{flex:0 0 calc(100% / var(--dpsb-pv,2));padding:0 3px;box-sizing:border-box;cursor:zoom-in}
.dpsb-page img{display:block;width:100%;height:auto;aspect-ratio:1/1.414;object-fit:contain;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.18);pointer-events:none;-webkit-user-drag:none;opacity:0;transition:opacity .3s}
.dpsb-page img.ld{opacity:1}

.dpsb-card .dpsb-viewer button.dpsb-nav{position:absolute!important;top:calc(50% - 6px);transform:translateY(-50%);width:34px!important;height:34px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border-radius:50%!important;border:0!important;background:var(--dpsb-primary)!important;color:#fff!important;font-size:14px!important;line-height:1!important;cursor:pointer;z-index:3;display:flex!important;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.2);transition:background .2s,opacity .2s}
.dpsb-card .dpsb-viewer button.dpsb-prev{left:6px}
.dpsb-card .dpsb-viewer button.dpsb-next{right:6px}
.dpsb-card .dpsb-viewer button.dpsb-nav:hover:not(:disabled){background:var(--dpsb-accent)!important}
.dpsb-card .dpsb-viewer button.dpsb-nav:disabled{opacity:.3;cursor:default}

.dpsb-card .dpsb-viewer button.dpsb-zoom{position:absolute!important;top:6px;right:6px;width:30px!important;height:30px!important;min-height:0!important;padding:0!important;border-radius:6px!important;border:0!important;background:rgba(255,255,255,.95)!important;color:var(--dpsb-primary)!important;cursor:pointer;font-size:15px!important;line-height:1!important;z-index:3;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.dpsb-card .dpsb-viewer button.dpsb-zoom:hover{background:var(--dpsb-primary)!important;color:#fff!important}
.dpsb-viewer .dpsb-counter{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:12px;background:var(--dpsb-primary);color:#fff;padding:2px 12px;border-radius:20px;white-space:nowrap}
@media(max-width:600px){
  .dpsb-viewer{padding:16px 40px 32px}
  .dpsb-card .dpsb-viewer button.dpsb-nav{width:30px!important;height:30px!important}
  .dpsb-card .dpsb-viewer button.dpsb-prev{left:5px}
  .dpsb-card .dpsb-viewer button.dpsb-next{right:5px}
}

/* ---------- Body ---------- */
.dpsb-body{padding:18px 20px 22px;text-align:center;display:flex;flex-direction:column;gap:14px;flex:1;justify-content:space-between}
.dpsb-title{margin:0!important;font-size:19px;font-weight:700;color:var(--dpsb-primary);line-height:1.3}
.dpsb-card button.dpsb-btn{align-self:center;background:var(--dpsb-accent)!important;color:#fff!important;border:2px solid var(--dpsb-accent)!important;border-radius:6px!important;padding:12px 28px!important;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:14px!important;line-height:1.2!important;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s;box-shadow:none}
.dpsb-card button.dpsb-btn:hover,.dpsb-card button.dpsb-btn:focus-visible{background:var(--dpsb-primary)!important;border-color:var(--dpsb-primary)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 8px 18px rgba(11,44,95,.25)}

/* ---------- Pagination ---------- */
.dpsb-pagination{display:flex;justify-content:center;gap:6px;margin:30px 0;flex-wrap:wrap}
.dpsb-pagination .page-numbers{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid #d6dbe4;color:var(--dpsb-primary);text-decoration:none;font-weight:600;padding:0 10px}
.dpsb-pagination .current,.dpsb-pagination a:hover{background:var(--dpsb-primary);color:#fff;border-color:var(--dpsb-primary)}

/* ---------- Modal ---------- */
body.dpsb-lock{overflow:hidden}
.dpsb-modal,.dpsb-lightbox{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:16px}
.dpsb-modal.open,.dpsb-lightbox.open{display:flex}
.dpsb-modal{background:rgba(5,18,40,.65);backdrop-filter:blur(3px)}
.dpsb-modal-box{position:relative;background:#fff;width:100%;max-width:600px;max-height:92vh;overflow:auto;border-radius:14px;padding:30px 28px 26px;box-shadow:0 20px 60px rgba(0,0,0,.3);border-top:5px solid var(--dpsb-accent);animation:dpsbIn .3s ease;box-sizing:border-box}
@keyframes dpsbIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.dpsb-modal-title{margin:0 0 4px!important;color:var(--dpsb-primary);font-size:24px;padding-right:40px}
.dpsb-modal-sub{margin:0 0 20px!important;color:var(--dpsb-accent);font-weight:600;font-size:16px}
.dpsb-modal button.dpsb-close,.dpsb-lightbox button.dpsb-close{position:absolute!important;top:12px;right:12px;width:36px!important;height:36px!important;min-height:0!important;padding:0!important;border:0!important;border-radius:50%!important;font-size:22px!important;line-height:1!important;cursor:pointer;display:flex!important;align-items:center;justify-content:center;transition:background .2s}
.dpsb-modal button.dpsb-close{background:#f1f3f7!important;color:#333!important}
.dpsb-modal button.dpsb-close:hover{background:var(--dpsb-accent)!important;color:#fff!important}
.dpsb-success{padding:30px 10px;text-align:center;font-size:17px;color:#1a7f37;font-weight:600}

/* ---------- CF7 form inside popup (overrides theme / autop) ---------- */
.dpsb-modal .wpcf7 form{margin:0}
.dpsb-modal .wpcf7 form > p:empty,.dpsb-modal .modern-inquiry-form br{display:none}
.dpsb-modal .modern-inquiry-form{display:grid!important;grid-template-columns:1fr 1fr;gap:14px;width:100%}
.dpsb-modal .modern-inquiry-form > p{display:contents}
.dpsb-modal .modern-inquiry-form .form-group{margin:0!important;padding:0!important;width:auto!important;min-width:0}
.dpsb-modal .modern-inquiry-form .form-group p{margin:0!important}
.dpsb-modal .modern-inquiry-form .form-group.half{grid-column:span 1}
.dpsb-modal .modern-inquiry-form .form-group.full{grid-column:1 / -1}
.dpsb-modal .modern-inquiry-form .form-group:has(input[type=hidden]):not(:has(input:not([type=hidden]))){display:none}
@media(max-width:540px){.dpsb-modal .modern-inquiry-form{grid-template-columns:1fr}.dpsb-modal .modern-inquiry-form .form-group.half{grid-column:1 / -1}}
.dpsb-modal .wpcf7-form-control-wrap{display:block;width:100%}
.dpsb-modal input[type=text],.dpsb-modal input[type=email],.dpsb-modal input[type=tel],.dpsb-modal textarea{width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important;border:1px solid #d6dbe4!important;border-radius:8px!important;padding:12px 14px!important;font-size:15px!important;background:#f8f9fb!important;color:#222!important;box-shadow:none!important;transition:border-color .2s,background .2s}
.dpsb-modal input:focus,.dpsb-modal textarea:focus{outline:0!important;border-color:var(--dpsb-primary)!important;background:#fff!important}
.dpsb-modal textarea{height:110px!important;min-height:110px;resize:vertical}
.dpsb-modal input[type=submit]{width:100%!important;background:var(--dpsb-accent)!important;color:#fff!important;border:2px solid var(--dpsb-accent)!important;border-radius:8px!important;padding:14px!important;font-weight:700!important;font-size:15px!important;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;margin:4px 0 0!important;transition:background .25s,border-color .25s}
.dpsb-modal input[type=submit]:hover{background:var(--dpsb-primary)!important;border-color:var(--dpsb-primary)!important}
.dpsb-modal .wpcf7-spinner{display:block;margin:8px auto 0}
.dpsb-modal .wpcf7-not-valid-tip{font-size:13px;margin-top:4px}
.dpsb-modal .wpcf7-response-output{margin:14px 0 0!important;border-radius:8px;font-size:14px}

/* ---------- Lightbox ---------- */
.dpsb-lightbox{background:rgba(0,0,0,.92)}
.dpsb-lb-stage{max-width:90vw;max-height:86vh;display:flex;align-items:center;justify-content:center;user-select:none}
.dpsb-lb-stage img{max-width:90vw;max-height:86vh;object-fit:contain;background:#fff;pointer-events:none}
.dpsb-lightbox button.dpsb-nav{position:absolute!important;top:50%;transform:translateY(-50%);width:48px!important;height:48px!important;min-height:0!important;padding:0!important;border-radius:50%!important;border:0!important;background:rgba(255,255,255,.18)!important;color:#fff!important;font-size:18px!important;line-height:1!important;cursor:pointer;display:flex!important;align-items:center;justify-content:center;z-index:2;transition:background .2s}
.dpsb-lightbox button.dpsb-nav:hover:not(:disabled){background:var(--dpsb-accent)!important}
.dpsb-lightbox button.dpsb-nav:disabled{opacity:.25;cursor:default}
.dpsb-lightbox button.dpsb-prev{left:16px}.dpsb-lightbox button.dpsb-next{right:16px}
.dpsb-lightbox button.dpsb-close{background:rgba(255,255,255,.18)!important;color:#fff!important;top:14px;right:14px;z-index:3}
.dpsb-lightbox button.dpsb-close:hover{background:var(--dpsb-accent)!important}
.dpsb-lightbox .dpsb-counter{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);color:#fff;font-size:14px}
@media(max-width:600px){
  .dpsb-lb-stage,.dpsb-lb-stage img{max-width:100vw;max-height:78vh}
  .dpsb-lightbox button.dpsb-nav{top:auto;bottom:10px;transform:none;width:42px!important;height:42px!important}
  .dpsb-lightbox button.dpsb-prev{left:calc(50% - 90px)}.dpsb-lightbox button.dpsb-next{right:calc(50% - 90px)}
  .dpsb-lightbox .dpsb-counter{bottom:22px}
}
