.wrm-page .wrm-intro{color:#556;max-width:760px;margin:0 auto 18px;text-align:center;line-height:1.55;}
.wrm-page-banner{position:relative;background:#fff;border-bottom:1px solid #e8e8e8;padding:18px 16px 16px;min-height:64px;}
.wrm-banner-title{position:relative;z-index:1;margin:0;text-align:center;font-size:22px;line-height:1.3;pointer-events:none;}
.wrm-banner-left,.wrm-banner-right{position:absolute;top:50%;z-index:2;transform:translate(-50%,-50%);}
.wrm-banner-left{left:25%;}
.wrm-banner-right{left:75%;}
.wrm-banner-btn{margin:0;text-transform:none;letter-spacing:0;font-size:12px;line-height:1.25;white-space:normal;max-width:220px;text-align:center;}
.wrm-banner-right .wrm-banner-btn{display:inline-block;}
body.wrm-photo-modal-open{overflow:hidden;}
.wrm-photo-modal{position:fixed;inset:0;z-index:2147482000;display:none;align-items:center;justify-content:center;padding:16px;}
.wrm-photo-modal.on{display:flex;}
.wrm-photo-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.wrm-photo-dialog{position:relative;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:#fff;border:1px solid #e8e8e8;border-radius:4px;padding:22px 20px 18px;color:#222;box-shadow:0 14px 40px rgba(0,0,0,.25);z-index:1;}
.wrm-photo-dialog h3{margin:0 0 10px;font-size:14px;font-weight:400;letter-spacing:1px;text-transform:uppercase;color:#222;}
.wrm-photo-lead{margin:0 0 16px;color:#666;font-size:14px;line-height:1.55;}
.wrm-photo-close{position:absolute;top:8px;right:12px;border:0;background:transparent;color:#888;font-size:28px;line-height:1;cursor:pointer;}
.wrm-photo-close:hover{color:#222;}
.wrm-photo-field{display:block;margin-bottom:12px;}
.wrm-photo-field span{display:block;margin-bottom:5px;font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px;}
.wrm-photo-field em{font-style:normal;color:#999;text-transform:none;letter-spacing:0;}
.wrm-photo-field input[type=text]{width:100%;padding:9px 11px;border:1px solid #ddd;border-radius:0;background:#fff;color:#222;font-size:14px;}
.wrm-photo-field input[type=file]{width:100%;font-size:12px;color:#444;}
.wrm-photo-field input:focus{outline:none;border-color:#d6b161;}
.wrm-photo-status{min-height:18px;margin:8px 0 12px;font-size:12px;text-align:center;color:#666;}
.wrm-photo-status.ok{color:#323232;}
.wrm-photo-status.err{color:#a23b46;}
.wrm-photo-actions{display:flex;gap:10px;justify-content:flex-end;}
.wrm-photo-actions .btn{margin-right:0;}
.wrm-photo-submit:disabled{opacity:.6;cursor:wait;}
/* Let the map section use the full viewport width instead of Bootstrap's narrow .container cap */
.wrm-page .container{max-width:100% !important;width:100% !important;}
.wrm-stage-wrap{overflow:auto;background:#0a1520;padding:12px;border:1px solid rgba(0,0,0,.08);border-radius:8px;text-align:center;}
.wrm-stage{position:relative;display:inline-block;margin:0 auto;line-height:0;max-width:100%;width:-moz-max-content;width:max-content;}
.wrm-bg{display:block;width:auto;max-width:100%;height:auto;user-select:none;-webkit-user-drag:none;}
.wrm-building-layer{position:absolute;inset:0;z-index:1;pointer-events:none;}
.wrm-layer{position:absolute;inset:0;z-index:2;}
.wrm-building-marker{position:absolute;transform:translate(-50%,-50%);font-weight:800;line-height:1;white-space:nowrap;pointer-events:none;z-index:1;}
.wrm-building-marker .num{display:inline-block;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.95),0 2px 8px rgba(0,0,0,.85),0 0 18px rgba(0,0,0,.55);}
.wrm-pin{position:absolute;transform:translate(-50%,-50%);font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;z-index:2;touch-action:none;}
.wrm-pin .num{display:inline-block;padding:.15em .38em;border-radius:.38em;color:#fff;border:.115em solid rgba(255,255,255,.55);font-size:inherit;transition:box-shadow .15s,transform .15s;}
.wrm-pin:hover,.wrm-pin.active{z-index:40;}
.wrm-pin:hover .num,.wrm-pin.active .num{box-shadow:0 0 0 2px #fff,0 4px 14px rgba(0,0,0,.45);transform:scale(1.08);}
.wrm-pin.no-photo{cursor:default;pointer-events:none;z-index:1;}
.wrm-pin.no-photo .num{opacity:.28;background:#4a5568 !important;border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.55);}
.wrm-pop{position:fixed;z-index:5000;min-width:260px;max-width:380px;background:#102436;border:1px solid rgba(236,217,166,.28);border-radius:10px;padding:12px 12px 10px;color:#e7eef5;box-shadow:0 14px 40px rgba(0,0,0,.45);pointer-events:auto;}
.wrm-pop .hd{font-size:12px;color:#ecd9a6;margin-bottom:8px;line-height:1.45;}
.wrm-pop .hd strong{color:#fff;font-weight:700;}
.wrm-thumb-wrap{position:relative;border-radius:8px;background:#081521;border:1px solid rgba(255,255,255,.12);padding:8px;margin-top:4px;}
.wrm-thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.wrm-thumb-cell{text-align:center;}
.wrm-thumb-label{font-size:10px;font-weight:700;color:#90a6ba;margin-bottom:4px;}
.wrm-thumb{display:block;width:100%;height:auto;border-radius:4px;border:1px solid rgba(255,255,255,.1);cursor:pointer;}
.wrm-thumb:hover{outline:2px solid #ecd9a6;outline-offset:1px;}
.wrm-pop .note{margin-top:8px;font-size:11px;color:#90a6ba;line-height:1.4;}
.wrm-loading,.wrm-error{text-align:center;padding:40px 16px;color:#666;}
.wrm-error{color:#a23b46;}

/* Full-screen photo viewer - high specificity so site CSS cannot override */
body.wrm-lightbox-open,
html.wrm-lightbox-open{overflow:hidden !important;}
#wrmLightbox.wrm-lightbox{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100vw !important;
  height:100vh !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  z-index:2147483000 !important;
  display:none;
  box-sizing:border-box;
  background:rgba(4,10,18,.94) !important;
  cursor:pointer;
  overflow:auto;
}
#wrmLightbox.wrm-lightbox.on{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
#wrmLightbox .wrm-lightbox-close{
  position:fixed !important;
  top:14px !important;
  right:14px !important;
  z-index:2147483001 !important;
  width:44px;
  height:44px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
#wrmLightbox .wrm-lightbox-close:hover{background:rgba(255,255,255,.28);}
#wrmLightbox .wrm-lightbox-frame{
  box-sizing:border-box;
  width:calc(100vw - 24px);
  height:calc(100vh - 72px);
  margin:auto;
  display:flex !important;
  flex-direction:column;
  align-items:center !important;
  justify-content:center !important;
  cursor:default;
  pointer-events:auto;
}
#wrmLightbox .wrm-lightbox-stage{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px;
  width:100%;
  max-width:calc(100vw - 24px);
}
#wrmLightbox .wrm-lightbox-prev,
#wrmLightbox .wrm-lightbox-next{
  flex:0 0 52px;
  width:52px;
  height:52px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:36px;
  line-height:1;
  cursor:pointer;
  transition:background .15s;
}
#wrmLightbox .wrm-lightbox-prev:hover,
#wrmLightbox .wrm-lightbox-next:hover{background:rgba(255,255,255,.28);}
#wrmLightbox .wrm-lightbox-img{
  display:block !important;
  float:none !important;
  flex:0 1 auto;
  max-width:calc(100vw - 140px) !important;
  max-height:calc(100vh - 120px) !important;
  width:auto !important;
  height:auto !important;
  margin:0 auto !important;
  padding:0 !important;
  border-radius:8px;
  border:1px solid rgba(236,217,166,.35);
  box-shadow:0 22px 60px rgba(0,0,0,.55);
  background:#081521;
  object-fit:contain;
}
#wrmLightbox .wrm-lightbox-cap{
  flex:0 0 auto;
  width:100%;
  margin:12px 0 0;
  padding:0 8px;
  text-align:center !important;
  font-size:13px;
  color:#ecd9a6;
}

@media (max-width:900px){
  .wrm-page-banner{padding:14px 12px 12px;min-height:0;display:flex;flex-direction:column;align-items:center;gap:12px;}
  .wrm-banner-title{font-size:18px;pointer-events:auto;}
  .wrm-banner-left,.wrm-banner-right{position:static;transform:none;left:auto;width:100%;max-width:320px;text-align:center;}
  .wrm-banner-btn{max-width:100%;width:100%;}
}
