/* Hero photo banners — real images on every page-hero */
.page-hero{
  position:relative !important;
  overflow:hidden !important;
  min-height:clamp(280px, 42vw, 420px) !important;
  display:flex !important;
  align-items:flex-end !important;
  background: #0c0b0a !important; /* fallback only */
  border-bottom:1px solid rgba(201,168,108,.14) !important;
  padding:0 !important;
}
.page-hero.has-photo{
  min-height:clamp(320px, 48vw, 520px) !important;
}
.page-hero-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
}
.page-hero-bg img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 30% !important;
  transform:scale(1.03) !important;
  filter:grayscale(.12) contrast(1.08) brightness(.45) !important;
}
.page-hero-shade{
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(180deg, rgba(12,11,10,.25) 0%, rgba(12,11,10,.55) 45%, rgba(12,11,10,.92) 100%),
    linear-gradient(90deg, rgba(12,11,10,.72) 0%, rgba(12,11,10,.2) 55%, rgba(12,11,10,.45) 100%) !important;
  pointer-events:none !important;
}
.page-hero-grain{
  position:absolute !important;
  inset:0 !important;
  opacity:.05 !important;
  pointer-events:none !important;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.page-hero-inner,
.page-hero > .container{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  padding-block: clamp(3.5rem, 10vw, 5.5rem) clamp(2rem, 5vw, 3rem) !important;
}
.page-hero h1{
  text-shadow: 0 4px 28px rgba(0,0,0,.55) !important;
  max-width: 18ch !important;
}
.page-hero .lead{
  text-shadow: 0 2px 16px rgba(0,0,0,.45) !important;
  max-width: 36rem !important;
}
.page-hero .breadcrumb a,
.page-hero .breadcrumb{
  color: rgba(232,213,163,.85) !important;
}

/* Full-bleed mid-page photo strip */
.photo-band{
  position:relative;
  height: clamp(160px, 28vw, 320px);
  overflow:hidden;
  margin:0;
  border-block:1px solid rgba(201,168,108,.12);
}
.photo-band img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:grayscale(.2) brightness(.55) contrast(1.05);
}
.photo-band-shade{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(12,11,10,.35), rgba(12,11,10,.75));
  pointer-events:none;
}

/* Article hero under title */
.article-hero-img,
img.banner-img{
  border:1px solid rgba(201,168,108,.18);
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}

/* Override art-direction solid charcoal on page-hero when photo present */
.page-hero.has-photo{
  background: transparent !important;
}

.mosaic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.mosaic-grid figure{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:1;border:1px solid rgba(201,168,108,.15)}
.mosaic-grid img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.9)}
