.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.photo-ribbon{padding:32px 0 0;overflow:hidden;background:var(--ivory)}
.photo-ribbon-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.photo-ribbon-toggle{font:600 .75rem var(--font-sans);color:var(--muted-foreground);cursor:pointer;text-decoration:underline;text-underline-offset:4px;flex-shrink:0}
.photo-ribbon-window{overflow:hidden;width:100%}
.photo-ribbon-track{display:flex;width:max-content;animation:photo-ribbon-scroll 110s linear infinite;will-change:transform}
.photo-ribbon-group{display:flex;gap:16px;padding-right:16px;flex-shrink:0}
.photo-ribbon-card{display:block;flex:0 0 300px;width:300px;height:220px;overflow:hidden;border:1px solid var(--border);border-radius:18px;padding:0;background:var(--ivory-deep);cursor:pointer}
.photo-ribbon-card img{display:block;width:100%;height:100%;object-fit:cover}
.photo-ribbon-card:focus-visible{outline:3px solid var(--sage);outline-offset:-4px}
.photo-ribbon:hover .photo-ribbon-track,.photo-ribbon:focus-within .photo-ribbon-track,.photo-ribbon.is-paused .photo-ribbon-track{animation-play-state:paused}
@keyframes photo-ribbon-scroll{to{transform:translateX(-50%)}}
@media(max-width:767px){.photo-ribbon{padding-top:24px}.photo-ribbon-card{width:240px;flex-basis:240px;height:180px}.photo-ribbon-group{gap:12px;padding-right:12px}.photo-ribbon-header .eyebrow{font-size:.6rem;letter-spacing:.12em}}
@media(max-width:767px){.photo-ribbon-window{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.photo-ribbon-window::-webkit-scrollbar{display:none}.photo-ribbon-track{animation:none;will-change:auto}.photo-ribbon-card img{user-select:none;-webkit-user-drag:none}}
@media(prefers-reduced-motion:reduce){.photo-ribbon-track{animation:none}.photo-ribbon-window{overflow-x:auto}.photo-ribbon-group[aria-hidden="true"]{display:none}}
.photo-card { min-width: 0; }
.photo-card button {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--ivory-deep);
  box-shadow: var(--shadow-soft-value);
  cursor: pointer;
}
.photo-card button:focus-visible { outline: 3px solid var(--sage); outline-offset: 4px; }
.photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.photo-card button:hover img { transform: scale(1.035); }
.gallery-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.gallery-more, .gallery-enquire {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 22px;
  border: 1px solid var(--navy);
  border-radius: 999px;
  font: 700 14px var(--font-sans);
  cursor: pointer;
  transition: background .2s, color .2s;
}
.gallery-more { color: var(--navy); background: transparent; }
.gallery-more:hover { background: var(--ivory-deep); }
.gallery-enquire { color: var(--navy-foreground); background: var(--navy); text-decoration: none; }
.gallery-enquire:hover { background: var(--sage-foreground); }
@media (max-width: 767px) { .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
@media (max-width: 479px) { .photo-grid { grid-template-columns: 1fr; } .photo-card button { aspect-ratio: 4 / 5; } }
@media (prefers-reduced-motion: reduce) { .photo-card img { transition: none; } }
