/* Base */
:root{
  --purple:#5a2ea6; 
  --purple-700:#4b2391; 
  --ink:#1f1f1f; 
  --muted:#6b6b6b; 
  --paper:#ffffff;
  --radius:12px;
  --shadow:0 8px 24px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  color:var(--ink); background:#faf9ff;
}
h1{font-size:2.1rem; margin:.2rem 0 1rem}
h3{margin:0 0 .4rem}

/* Utilities */
.mt-0{margin-top:0}
.sub{ color:var(--muted); margin:0 0 16px }

/* Sticky purple header (brand centered, nav right) */
.site-header{
  position:sticky; top:0; z-index:1000;
  background:var(--purple); color:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.12);
}
.topbar{
  max-width:1100px; margin:0 auto; padding:12px 16px;
  display:grid; grid-template-columns:1fr auto; align-items:center;
  position:relative;
}
.brand{
  position:absolute; left:50%; transform:translateX(-50%);
  color:#fff; text-decoration:none; font-weight:800; letter-spacing:.2px;
  white-space:nowrap;
}
.main-nav{display:flex; gap:18px; justify-self:end}
.nav-link{
  color:#e9dcff; text-decoration:none; font-weight:600;
  padding:6px 8px; border-radius:6px;
}
.nav-link:hover{color:#fff; background:rgba(255,255,255,.08)}
.nav-link.active{color:#fff; background:rgba(255,255,255,.18)}

/* Layout helpers */
.container{max-width:1100px; margin:24px auto; padding:0 16px}
footer{max-width:1100px; margin:32px auto 48px; padding:0 16px; color:var(--muted)}

/* Home cards */
.info-grid{
  display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.info-box{
  background:var(--paper); border-radius:12px; padding:16px 18px;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
}

/* --- Gallery (polished) --- */
.gallery-grid{
  display:grid; 
  gap:14px; 
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  min-height:150px;
  margin:24px 0 56px;
}
.gallery-grid figure,
.gallery-item{
  margin:0;
  position:relative;
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid #ece8ff;
  box-shadow: var(--shadow);
}
.gallery-grid img,
.gallery-item img{
  width:100%;
  height:100%;
  aspect-ratio: 4/3;
  object-fit:cover;
  display:block;
  transition:transform .25s ease;
}
.gallery-grid img:hover,
.gallery-item:hover img{
  transform:scale(1.02);
}
/* Gradient caption overlay (optional; will show if <figcaption> exists) */
.gallery-grid figcaption,
.gallery-caption{
  position:absolute; left:0; right:0; bottom:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 100%);
  color:#fff; padding:10px 12px; font-size:14px;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
/* Accessible focus ring for links wrapping images */
.gallery-grid a{ display:block; outline:none }
.gallery-grid a:focus-visible{
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--purple);
  border-radius: var(--radius);
}

/* Forms */
input,textarea{
  width:100%;max-width:520px;padding:.6rem;
  border:1px solid #d7d2e7;border-radius:8px;background:#fff
}
textarea{resize:vertical}
button.btn{
  background:var(--purple);color:#fff;border:0;padding:.65rem 1rem;
  border-radius:8px;font-weight:700;cursor:pointer
}
button.btn:hover{background:var(--purple-700)}
/* Lightbox */
.lb-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:9999}
.lb-backdrop.open{display:flex}
.lb-img{max-width:92vw;max-height:92vh;box-shadow:0 8px 40px rgba(0,0,0,.6);border-radius:12px}
.lb-close{position:fixed;top:16px;right:16px;background:#fff;border:0;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}

