:root{
  --bg:#0b0d10;
  --card:#12161c;
  --text:#eef2f6;
  --muted:#a7b0ba;
  --accent:#4f8cff;
  --accent2:#22c55e;
  --border:rgba(255,255,255,.10);
  --shadow: 0 18px 50px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: radial-gradient(1200px 700px at 10% 0%, rgba(79,140,255,.18), transparent 60%),
              radial-gradient(900px 600px at 90% 10%, rgba(34,197,94,.12), transparent 55%),
              var(--bg);
  color:var(--text);
}
a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:22px}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border);}
.heroInner{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:center;
  padding:34px 22px;
  max-width:1100px;
  margin:0 auto;
}
.badge{
  display:inline-flex;gap:10px;align-items:center;
  padding:8px 12px;border:1px solid var(--border);
  border-radius:999px;color:var(--muted);
  background:rgba(255,255,255,.04);
}
.h1{font-size:clamp(28px,4vw,46px);line-height:1.05;margin:14px 0 10px}
.lead{color:var(--muted);font-size:1.05rem;line-height:1.6}
.heroImg{
  width:100%;
  border-radius:18px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  aspect-ratio: 16/10;
  object-fit:cover;
}
.card{
  background:rgba(18,22,28,.78);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 14px;border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  text-decoration:none;
  transition:transform .06s ease, background .2s ease;
  font-weight:600;
}
.btn:hover{background:rgba(255,255,255,.10)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:rgba(79,140,255,.18);border-color:rgba(79,140,255,.35)}
.btn.success{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.35)}
.grid{display:grid;grid-template-columns: 1fr;gap:14px;margin-top:18px;}
.sectionTitle{font-size:1.05rem;margin:0 0 8px;color:var(--text);}
.introText{color:var(--text);line-height:1.75;font-size:1.02rem;}
.gallery{display:grid;grid-template-columns: repeat(4, 1fr);gap:10px;}
.gallery img{
  width:100%;border-radius:14px;border:1px solid var(--border);
  object-fit:cover;aspect-ratio: 1/1;background:rgba(255,255,255,.03);
}
.footer{
  color:var(--muted);padding:22px;text-align:center;
  border-top:1px solid var(--border);margin-top:28px;
}
/* Map layout */
.mapWrap{height:100vh;display:grid;grid-template-columns: 1fr 420px;}
#map{height:100%;width:100%}
.panel{height:100%;border-left:1px solid var(--border);background:rgba(18,22,28,.92);overflow:auto;}
.panelInner{padding:18px}
.panelHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.panel h2{margin:0;font-size:1.25rem}
.small{color:var(--muted);font-size:.92rem}
.poiImages{display:grid;grid-template-columns: repeat(2, 1fr);gap:10px;margin-top:12px}
.poiImages img{
  width:100%;border-radius:14px;border:1px solid var(--border);
  object-fit:cover;aspect-ratio: 4/3;cursor:pointer
}
.poiBody{margin-top:12px;line-height:1.7;color:var(--text)}
.poiBody p{margin:.45rem 0}
.topBar{
  position:sticky;top:0;z-index:5;
  padding:10px 12px;border-bottom:1px solid var(--border);
  background:rgba(18,22,28,.95);
  display:flex;gap:10px;align-items:center;justify-content:space-between;
}
.topBar a{color:var(--muted);text-decoration:none;font-weight:700}
.topBar a:hover{color:var(--text)}
@media (max-width: 920px){
  .heroInner{grid-template-columns: 1fr; padding:22px}
  .gallery{grid-template-columns: repeat(2, 1fr)}
  .mapWrap{grid-template-columns: 1fr}
  .panel{
    position:fixed;left:0;right:0;bottom:0;
    height:44vh;border-left:0;border-top:1px solid var(--border);
    border-radius:18px 18px 0 0;
    box-shadow: var(--shadow);
  }
}
/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.lightbox img {
  max-width: 95%;
  max-height: 95%;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0,0,0,.6);
  animation: zoomIn .2s ease-out;
  cursor: zoom-out;
}

@keyframes zoomIn {
  from { transform: scale(.95); opacity: 0 }
  to   { transform: scale(1);   opacity: 1 }
}
