/* Shared across every page: footer, focus styles, skip link, lightbox. */

.skip-link{
  position:absolute; left:12px; top:-60px; z-index:200;
  background:#f2efea; color:#192419; font:600 14px 'Archivo',sans-serif;
  padding:10px 16px; border-radius:8px; text-decoration:none;
}
.skip-link:focus{top:12px;}

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid #c8b493; outline-offset:2px; border-radius:6px;
}

/* ---------- footer ---------- */
.sf{background:#192419; color:#c7d1c1; font-family:'Archivo',sans-serif; margin-top:0;}
.sf-inner{
  max-width:1080px; margin:0 auto; padding:48px 20px 28px;
  display:grid; gap:36px; grid-template-columns:1fr;
}
@media (min-width:760px){
  .sf-inner{grid-template-columns:1.3fr 1.4fr 0.8fr;}
}
.sf-brand img{height:52px; width:auto; display:block;}
.sf-brand p{
  font-family:'Fraunces',serif; font-style:italic; font-weight:600;
  font-size:16px; line-height:1.45; color:#f2efea; margin:14px 0 0; max-width:260px;
}
.sf h2{
  font:700 11.5px 'Archivo',sans-serif; letter-spacing:.14em; text-transform:uppercase;
  color:#c8b493; margin:0 0 14px;
}
.sf ul{list-style:none; margin:0; padding:0;}
.sf li{margin:0 0 9px;}
.sf a{color:#dfe6da; text-decoration:none; font-size:14px;}
.sf a:hover{color:#fff; text-decoration:underline; text-underline-offset:3px;}
.sf-parks ul{columns:2; column-gap:24px;}
.sf-parks li{break-inside:avoid;}
.sf-parks span{display:block; font-size:12px; color:#8f9e88;}
.sf-base{
  border-top:1px solid rgba(242,239,234,.12);
  max-width:1080px; margin:0 auto; padding:18px 20px 30px;
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between;
  font-size:12.5px; color:#8f9e88; line-height:1.55;
}
.sf-base p{margin:0; max-width:620px;}

/* ---------- lightbox ---------- */
.gallery img{cursor:zoom-in;}
.lb{
  border:0; padding:0; margin:0; width:100vw; height:100vh; max-width:none; max-height:none;
  background:rgba(12,18,12,.94); color:#f2efea;
}
.lb::backdrop{background:rgba(12,18,12,.94);}
.lb[open]{display:flex; align-items:center; justify-content:center;}
.lb img{max-width:min(92vw,1400px); max-height:82vh; object-fit:contain; border-radius:6px; display:block;}
.lb-cap{
  position:absolute; left:0; right:0; bottom:18px; text-align:center;
  font:500 13.5px 'Archivo',sans-serif; color:#d9e2d5; padding:0 70px;
}
.lb button{
  position:absolute; background:rgba(242,239,234,.12); color:#f2efea; border:0;
  width:48px; height:48px; border-radius:50%; cursor:pointer; font-size:22px; line-height:1;
  display:flex; align-items:center; justify-content:center;
}
.lb button:hover{background:rgba(242,239,234,.24);}
.lb-close{top:16px; right:16px;}
.lb-prev{left:16px; top:50%; transform:translateY(-50%);}
.lb-next{right:16px; top:50%; transform:translateY(-50%);}
@media (max-width:600px){
  .lb-prev,.lb-next{top:auto; bottom:56px; transform:none;}
}

/* ---------- branded map pin (replaces Leaflet's CDN marker image) ---------- */
.dpg-pin{background:none; border:0;}
.dpg-pin span{
  display:block; width:30px; height:30px; border-radius:50% 50% 50% 0;
  background:#a8562f; transform:rotate(-45deg); border:3px solid #f2efea;
  box-shadow:0 3px 8px rgba(0,0,0,.35);
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important; transition:none !important; animation:none !important;}
}

.visually-hidden{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* Neutralise older inline `footer{}` rules on top-level pages */
footer.sf{text-align:left; padding:0; font-size:15px; color:#c7d1c1; background:#192419;}
