/* Hubban Popup & Info — full banner, scoped to popup only. */
.hubban-popup-overlay[hidden] { display:none!important; }
.hubban-popup-overlay {
  position:fixed; inset:0; z-index:2147483000;
  display:flex; align-items:center; justify-content:center;
  padding:20px; overflow-y:auto; overscroll-behavior:contain;
  background:rgba(9,26,48,.76);
}
.hpop-dialog {
  position:relative; width:min(860px,100%);
  max-height:calc(100dvh - 40px); overflow-y:auto;
  border-radius:24px; background:#fff9f0;
  box-shadow:0 22px 80px rgba(0,0,0,.32);
  color:#102e50; text-align:center; outline:none;
}
.hpop-close {
  position:absolute; z-index:5; right:14px; top:14px;
  width:46px; height:46px; display:grid; place-items:center;
  border:0; border-radius:50%; background:#fff; color:#102e50;
  font-size:32px; line-height:1; cursor:pointer;
  box-shadow:0 3px 14px rgba(0,0,0,.22);
}
.hpop-close:hover { background:#fff0ce; }
.hpop-art { line-height:0; }
.hpop-image { display:block; width:100%; height:auto; max-height:65dvh; object-fit:contain; }
.hpop-copy { padding:22px 28px 4px; }
.hpop-copy h2 { font-size:clamp(23px,3vw,32px); font-weight:800; line-height:1.2; margin:0 0 10px; color:#102e50; }
.hpop-description { font-size:15px; line-height:1.65; color:#3e5269; }
.hpop-description p { margin:0 0 12px; }
.hpop-action {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:calc(100% - 48px); margin:18px auto 12px; padding:14px 20px;
  min-height:50px; border-radius:14px; background:#ffba35;
  color:#102e50!important; text-decoration:none!important;
  font-size:16px; font-weight:800;
}
.hpop-action:hover { background:#ffca5b; }
.hpop-timer { margin:10px 0 0; padding:0 15px 17px; color:#66758b; font-size:13px; }
.hpop-seconds { color:#d34c68; }

/* When a banner exists, it becomes the complete popup surface. */
.hpop-dialog.hpop-has-image { overflow:hidden; background:transparent; isolation:isolate; }
.hpop-has-image .hpop-art { position:relative; z-index:0; }
.hpop-has-image .hpop-image {
  display:block; width:100%; height:auto; max-height:none;
  object-fit:cover; border-radius:inherit;
}
/* Overlay controls do not reserve a cream panel below the image. */
.hpop-has-image .hpop-action {
  position:absolute; z-index:3; left:50%; bottom:48px;
  transform:translateX(-50%); width:min(70%,440px);
  margin:0; min-height:50px; padding:12px 18px;
  border:2px solid rgba(255,255,255,.65);
  box-shadow:0 8px 25px rgba(20,38,58,.23);
}
.hpop-has-image .hpop-timer {
  position:absolute; z-index:3; bottom:10px; left:50%; transform:translateX(-50%);
  margin:0; padding:5px 12px; border-radius:99px;
  background:rgba(9,26,48,.72); color:#fff;
  font-size:12px; white-space:nowrap;
}
.hpop-has-image .hpop-seconds { color:#ffcf60; }
/* Keep optional editor content legible, floating over the image. */
.hpop-has-image .hpop-copy {
  position:absolute; z-index:2; top:12%; left:7%; right:7%;
  padding:12px 16px; border-radius:14px;
  background:rgba(255,249,240,.93); box-shadow:0 6px 22px rgba(0,0,0,.12);
}
.hpop-has-image .hpop-copy h2 { font-size:clamp(18px,2.5vw,26px); }
.hpop-has-image .hpop-description { font-size:14px; }
body.hpop-scroll-locked { overflow:hidden!important; }
@media (max-width:600px) {
  .hubban-popup-overlay { padding:12px; }
  .hpop-dialog { border-radius:18px; max-height:calc(100dvh - 24px); }
  .hpop-close { top:9px; right:9px; width:39px; height:39px; }
  .hpop-copy { padding:18px 18px 0; }
  .hpop-action { width:calc(100% - 32px); margin-top:12px; }
  .hpop-has-image .hpop-action {
    width:80%; bottom:40px; min-height:40px; padding:9px 12px;
    font-size:13px; border-radius:10px;
  }
  .hpop-has-image .hpop-timer { bottom:7px; font-size:10px; }
  .hpop-has-image .hpop-copy { top:14%; left:4%; right:4%; padding:8px; }
  .hpop-has-image .hpop-description { font-size:12px; }
}
@media (prefers-reduced-motion:no-preference) {
  .hpop-dialog { animation:hpop-appear .22s ease-out; }
  @keyframes hpop-appear {
    from { opacity:0; transform:translateY(12px) scale(.98); }
    to { opacity:1; transform:none; }
  }
}
