/* New photography: generous image areas and a browsable, responsive gallery. */
.photo-showcase { margin: 42px auto 54px; }
.photo-showcase .section-heading { align-items: end; gap: 20px; }
.photo-showcase .section-heading .eyebrow,
.photo-gallery .section-heading .eyebrow { display: block; margin-bottom: 10px; }
.photo-showcase .section-heading h2,
.photo-gallery .section-heading h2 { display: block; }
.photo-showcase .section-heading p:last-child,
.photo-gallery .section-heading p:last-child { margin-top: 10px; color: var(--muted); max-width: 650px; }
.photo-showcase-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; grid-template-rows: repeat(2, 220px); gap: 14px; }
.photo-feature { position: relative; overflow: hidden; min-width: 0; border: 0; border-radius: 18px; padding: 0; background: #213d31; cursor: zoom-in; text-align: left; }
.photo-feature:first-child { grid-row: span 2; }
.photo-feature img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.photo-feature::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .72)); pointer-events: none; }
.photo-feature span { position: absolute; z-index: 1; bottom: 20px; left: 20px; right: 16px; font: 600 18px/1.3 'Manrope', sans-serif; color: #fff; }
.photo-feature:first-child span { font-size: 24px; }
.photo-feature:hover img { transform: scale(1.035); }
.photo-feature:focus-visible { outline: 3px solid #c48b18; outline-offset: 4px; }
.photo-filters { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 18px; }
.photo-filters button { padding: 11px 17px; border: 1px solid #cbd5cc; border-radius: 30px; background: #fff; color: #244134; font: 600 13px/1.4 'Manrope', sans-serif; cursor: pointer; }
.photo-filters button[aria-pressed='true'] { color: #fff !important; border-color: #234c37 !important; background: #234c37 !important; text-shadow: none !important; }
.photo-filters button:focus-visible { outline: 3px solid #c48b18; outline-offset: 3px; }
.photo-count { font-size: 13px; color: var(--muted); margin: 0 0 14px; }
.photo-gallery .gallery-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: 100%; animation: none; transform: none; will-change: auto; overflow: visible; }
.photo-gallery .gallery-item { position: relative; width: auto; height: auto; margin: 0; border: 0; background: #fff; border-radius: 16px; box-shadow: 0 6px 20px rgba(15, 40, 28, .08); }
.photo-gallery .gallery-item[hidden], .photo-show-all[hidden] { display: none !important; }
.photo-gallery .gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; animation: none; }
.photo-gallery .gallery-item figcaption { padding: 13px 16px 16px; color: #234134; font-size: 13px; line-height: 1.5; }
.photo-gallery .gallery-item::after { display: none; }
.photo-show-all { display: flex; margin: 26px auto 0; }
.photo-gallery { scroll-margin-top: 110px; }
.hero-image { object-position: center; }
.package-slideshow .package-slide { object-position: center; }
@media (max-width: 900px) {
  .photo-showcase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 320px 190px 190px; }
  .photo-feature:first-child { grid-column: span 2; grid-row: auto; }
  .photo-gallery .gallery-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .photo-showcase { margin: 30px auto 36px; }
  .photo-showcase .section-heading { align-items: start; flex-direction: column; }
  .photo-showcase-grid { grid-template-rows: 250px 150px 150px; gap: 10px; }
  .photo-feature { border-radius: 13px; }
  .photo-feature span { bottom: 13px; left: 13px; right: 10px; font-size: 14px; }
  .photo-feature:first-child span { font-size: 22px; }
  .photo-filters { gap: 7px; }
  .photo-filters button { font-size: 12px; padding: 9px 12px; }
  .photo-gallery .gallery-track { gap: 10px; }
  .photo-gallery .gallery-item figcaption { padding: 9px 10px 12px; font-size: 12px; }
}
@media (max-width: 380px) {
  .photo-gallery .gallery-track { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .photo-feature img { transition: none; }
}
