/* BrightPath overrides: mobile-first, seamless images, consistent spacing */
:root{
  --bp-maxw: 1100px;
  --bp-pad: 16px;
  --bp-gap: 16px;
  --bp-radius: 14px;
}

*{box-sizing:border-box}
img{max-width:100%;height:auto;display:block}

.container, .wrap, .page-wrap, .content, main{
  margin:0 auto;
  padding:var(--bp-pad);
  max-width:var(--bp-maxw);
}

/* Gallery / hero images should be seamless and cover their frames */
.hero, .banner, .gallery, .image-row, .photo-grid{
  width:100%;
}

.hero img, .banner img{
  width:100%;
  height:clamp(220px, 38vw, 520px);
  object-fit:cover;
  border-radius:var(--bp-radius);
}

/* Generic grid for any image collections */
.photo-grid, .gallery, .image-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--bp-gap);
}
@media (min-width: 640px){
  .photo-grid, .gallery, .image-row{
    grid-template-columns:repeat(3, 1fr);
  }
}
@media (min-width: 960px){
  .photo-grid, .gallery, .image-row{
    grid-template-columns:repeat(4, 1fr);
  }
}
.photo-grid img, .gallery img, .image-row img{
  width:100%;
  aspect-ratio: 4 / 3;
  object-fit:cover;
  border-radius:var(--bp-radius);
}

/* Typography cleanup for About page */
.about h1, .about h2, .about h3{
  line-height:1.15;
  margin:0 0 12px 0;
}
.about p{
  line-height:1.7;
  margin:0 0 12px 0;
}
.about .mission{
  background: #f7fbff;
  border:1px solid #e5f1ff;
  padding:18px;
  border-radius:var(--bp-radius);
}

/* Remove bullets globally from lists that are used for copy blocks */
ul.copy, .about ul, .mission ul{
  list-style:none;
  margin:0;
  padding:0;
}
ul.copy li, .about ul li, .mission ul li{
  margin:0 0 10px 0;
}

/* Buttons and links */
.button, .btn, a.button{
  display:inline-block;
  padding:10px 16px;
  border-radius:10px;
  text-decoration:none;
  border:1px solid rgba(0,0,0,0.1);
}

footer{
  margin-top:28px;
  padding:var(--bp-pad);
}