/* Fullscreen button */
.leaflet-control-fullscreen-button{background:#fff;border:2px solid #333;border-radius:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:background .2s,transform .2s}
.leaflet-control-fullscreen-button:hover{background:#eee;transform:scale(1.05)}
.leaflet-control-fullscreen-button::before{content:"";display:block;width:20px;height:20px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 4 10 4 10 10'/><polyline points='20 4 14 4 14 10'/><polyline points='4 20 10 20 10 14'/><polyline points='20 20 14 20 14 14'/></svg>") no-repeat center/contain}

/* Accessibility */
button:focus,a:focus,#floating-map-button:focus,.museum-map-modal__close:focus,.reopen-marker-btn:focus,.hotel-sticky__btn:focus,.museum-map-toggle-btn:focus,.filter-toggle-btn:focus{outline:2px solid #06c;outline-offset:2px;box-shadow:0 0 0 3px rgba(0,102,204,.3)}

/* Sticky hotel button */
.hotel-sticky{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:100000;display:flex;justify-content:center;width:100%;pointer-events:none}
.hotel-sticky__btn{background:#e63946;color:#fff;font-size:16px;font-weight:600;padding:12px 28px;border-radius:8px;box-shadow:0 4px 12px #00000040;text-decoration:none;transition:background .2s;pointer-events:auto}
.hotel-sticky__btn:hover{background:#c9182d}
.hotel-sticky.hidden{display:none}

/* Modal title */
.museum-map-modal__title {
  font-family: "Work Sans", serif;
  margin: 0 0 16px;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  color: #222;
  letter-spacing: .5px;
  line-height: 1.3;
  position: relative;
  text-shadow: 0 2px 4px rgba(0,0,0,.15);
}

/* Underline animation */
.museum-map-modal__title::after {
  content: "";
  display: block;
  width: 0;
  height: 3px;
  margin: 8px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, #06c, #00aaff);
  box-shadow: 0 0 8px rgba(0,102,204,.6);
  animation: underlineGrow 0.6s ease forwards;
}

/* Keyframes for the underline */
@keyframes underlineGrow {
  from {
    width: 0;
    opacity: 0;
  }
  to {
    width: 80px;
    opacity: 1;
  }
}
@media(max-width:767px){.museum-map-modal__title{font-size:1.3rem;margin-bottom:10px}.museum-map-modal__title::after{width:40px;height:2px}}

/* Reopen marker button */
.reopen-marker-btn{position:absolute;top:60px;right:14px;background:#06c;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:.9rem;cursor:pointer;transition:.25s;z-index:1001;box-shadow:0 4px 8px #00000040}
.reopen-marker-btn:hover{background:#004999;transform:translateY(-2px);box-shadow:0 6px 12px #0000004d}
.reopen-marker-btn.attention{animation:floatPulse 2s ease-in-out infinite}
@keyframes floatPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:767px){.reopen-marker-btn{top:70px;font-size:1rem;padding:8px 14px}}


/* Fullscreen button base */
.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon{background:#f9f9f9;border:0;border-radius:4px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #00000040;transition:background .2s,transform .15s}

/* Active press feedback */
.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon:active {transform:scale(0.95);}

/* Default expand (enter fullscreen) */
.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before{content:"";display:block;width:20px;height:20px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4,4 10,4 10,10'/><polyline points='20,4 14,4 14,10'/><polyline points='4,20 10,20 10,14'/><polyline points='20,20 14,20 14,14'/></svg>") no-repeat center/contain}

.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon:hover {background:#e6f0ff;} /* soft blue hint */

/* Shrink (exit fullscreen) */
.leaflet-fullscreen-on 
.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before {
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9,9 9,3 3,3'/><polyline points='15,9 15,3 21,3'/><polyline points='15,15 21,15 21,21'/><polyline points='9,15 3,15 3,21'/></svg>") no-repeat center/contain;
}

.leaflet-fullscreen-on 
.leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon:hover {
  background:#ffecec; /* soft red hint */
}

/* Exit fullscreen state (try all common cases) */
.leaflet-fullscreen-on .leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before,
.leaflet-fullscreen .leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before,
html.fullscreen .leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before,
body.fullscreen .leaflet-control-zoom-fullscreen.leaflet-fullscreen-icon::before {
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9,9 9,3 3,3'/><polyline points='15,9 15,3 21,3'/><polyline points='15,15 21,15 21,21'/><polyline points='9,15 3,15 3,21'/></svg>") no-repeat center/contain;
}



/* Filter box */
.leaflet-control-layers-base,.leaflet-control-layers-separator{display:none}
.leaflet-control-layers-overlays label{display:flex;align-items:center;gap:6px;padding:2px 0;cursor:pointer;transition:color .2s}
.leaflet-control-layers-overlays label:hover{color:#06c}
.leaflet-control-layers-overlays input[type="checkbox"]{accent-color:#06c;transform:scale(1.15)}
.leaflet-top.leaflet-right{top:70px!important}
@media(max-width:767px){.leaflet-top.leaflet-right{top:110px!important;right:10px!important}}
.leaflet-control-layers{max-height:300px;overflow-y:auto;background:#ffffffd1;border-radius:6px;padding:8px;font-family:"Work Sans",sans-serif;line-height:1.2;font-size:14px;margin-top:4px;transition:max-height .3s,opacity .3s,padding .3s}
.leaflet-control-layers.collapsed{max-height:0!important;opacity:0;padding:0!important;overflow:hidden;pointer-events:none}
.filter-toggle-btn{position:absolute;top:60px;right:14px;background:#06c;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:.9rem;font-family:"Work Sans",sans-serif;cursor:pointer;transition:background .2s;z-index:1001}
.filter-toggle-btn:hover{background:#004999}
@media(max-width:767px){.filter-toggle-btn { top:120px; }}

/* Modal */
.museum-map-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:99999;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s}
.museum-map-modal.show{opacity:1;pointer-events:auto}
.museum-map-modal.hiding{opacity:0;pointer-events:none}
.museum-map-modal__content{position:relative;width:90%;max-width:1400px;background:#fff;padding:1.5em 1.5em 2.5em!important;border-radius:8px;max-height:90vh;overflow:visible;box-sizing:border-box;
  background: linear-gradient(180deg, #fff, #f9f9f9);
  border-radius: 8px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.18);border: 1px solid rgba(0,0,0,0.05);
}
#museum-map-modal-container{width:100%;height:calc(700px - 16px);border-radius:6px;box-shadow: 0 8px 28px rgba(0,0,0,0.18), 0 0 12px rgba(0,102,204,0.08);
  border-radius: 10px;
  overflow: hidden;}
.museum-map-modal__close{position:absolute;top:12px;right:14px;font-size:1.5rem;font-weight:900;line-height:1;background:#fff;color:#333;border:2px solid #333;border-radius:4px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s;z-index:10}
.museum-map-modal__close:hover{background:#333;color:#fff}
.museum-map-modal__header{display:flex;justify-content:center;align-items:center;margin-bottom:12px;gap:12px;padding-right:48px;position:relative}

/* Toggle map panel */
.museum-map-toggle-container{margin:1em 0;text-align:center}
.museum-map-toggle-btn{background:#06c;color:#fff;font-size:1rem;font-weight:600;padding:10px 18px;border:none;border-radius:6px;cursor:pointer;transition:background .2s}
.museum-map-toggle-btn:hover{background:#004999}
.museum-map-toggle-panel{max-height:0;overflow:hidden;transition:max-height .5s,padding .3s}
.museum-map-toggle-panel.open{max-height:900px;padding-top:12px}

/* Floating map button */
#floating-map-button{position:fixed;right:20px;bottom:20px;z-index:100000;background:#06c;color:#fff;font-size:16px;font-weight:600;padding:12px 18px;border:none;border-radius:50px;cursor:pointer;box-shadow:0 4px 10px #0000004d;transition:background .2s,transform .2s}
#floating-map-button:hover{background:#004999;transform:scale(1)}
@media(max-width:767px){#floating-map-button{left:10px;right:10px;bottom:12px;width:auto;border-radius:8px;font-size:18px;padding:14px}}

/* Popups desktop */
.leaflet-container .leaflet-popup-close-button{display:none!important}
.leaflet-container .leaflet-popup-content-wrapper{max-width:320px!important;border-radius:8px!important;box-shadow:0 4px 14px #00000040!important;overflow:hidden!important;padding:10px 12px!important;box-sizing:border-box!important}
.leaflet-container .leaflet-popup-content{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;white-space:normal!important;word-wrap:break-word!important}
.leaflet-container .mappopup-header{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;padding-bottom:6px!important;margin-bottom:0!important;border:none!important;flex-wrap:nowrap!important;position:relative!important}
.leaflet-container .mappopup-header::after{content:""!important;position:absolute!important;left:0;right:0;bottom:0;height:1px;background:linear-gradient(to right,transparent,#00000026,transparent)}
.leaflet-container .mappopup-header h3{margin:0!important;font-size:18px!important;font-weight:600!important;flex:1!important;min-width:0!important;line-height:1.2!important;padding-top:2px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.leaflet-container .mappopup-body{font-size:14px!important;line-height:1.4!important;padding:4px 0!important}
.leaflet-container .mappopup p{font-size:14px!important;line-height:1.4!important;margin:6px 0 8px!important;color:#444!important}
.leaflet-container .mappopup img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;margin:0 0 8px!important;object-fit:cover!important;box-sizing:border-box!important}
.leaflet-container .mappopup-close{width:26px!important;height:26px!important;background:#333!important;color:#fff!important;font-size:16px!important;font-weight:900!important;border-radius:4px!important;border:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;flex-shrink:0!important;transition:background .2s!important}
.leaflet-container .mappopup-close:hover{background:#000!important}

/* Popups mobile */
@media(max-width:767px){
.museum-map-modal__content{width:100%;height:100%;padding:0;border-radius:0;max-width:none;max-height:none}
#museum-map-modal-container{height:90vh;border-radius:0}
.leaflet-container .leaflet-popup-content-wrapper{max-width:220px!important;padding:6px 8px!important;border-radius:10px!important;box-shadow:0 3px 12px #00000040!important}
.leaflet-container .leaflet-popup-tip{display:none!important}
.leaflet-container .leaflet-popup-content{font-size:13px!important;line-height:1.1!important}
.leaflet-container .leaflet-popup-content p,.leaflet-container .mappopup-body{font-size:13px!important;line-height:1.2!important;margin:0 0 6px!important}
.mappopup-header{align-items:center}
.mappopup-header h3{line-height:1.3;margin:0;display:flex;align-items:center}
}
.leaflet-container .mappopup-body{font-size:13px!important}
.leaflet-container .mappopup-close{margin-top:-2px!important}
.leaflet-container .mappopup p{font-size:13px!important;line-height:1.2!important;margin:0 0 6px!important}
.leaflet-container .hotel-button{padding:4px 8px!important;font-size:13px!important;border-radius:6px!important}
.leaflet-container .mappopup:not(.hotel-popup) img{display:none!important}
.leaflet-container .mappopup.hotel-popup{height:140px!important;overflow:hidden!important;margin-bottom:8px!important}
.leaflet-container .mappopup.hotel-popup img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}

/* Desktop only helper */
.desktop-only{display:block}
@media(max-width:767px){.desktop-only{display:none!important}}
