.photos-section { padding-top: 48px; }
.photo-intro { max-width: 760px; font-size: 18px; margin: -8px 0 28px; }
.photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.place-card { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.place-card > a { display: block; position: relative; height: 330px; overflow: hidden; }
.place-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.place-card:hover img { transform: scale(1.035); }
.place-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.92), transparent 62%); }
.place-where { position: absolute; left: 22px; right: 22px; bottom: 20px; }
.place-where small { color: var(--accent); }
.place-where h3 { font-size: 28px; margin-top: 7px; }
.place-copy { padding: 20px 22px 24px; }
.place-copy p { margin: 0; color: #ddd; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.place-copy span { display: block; color: var(--muted); font-size: 13px; margin-top: 14px; }
.place-copy > a { display: inline-block; color: var(--accent); font-weight: bold; font-size: 14px; margin-top: 17px; }
@media (max-width: 900px) { .photo-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .photo-grid { grid-template-columns: 1fr; } .place-card > a { height: 360px; } }
@media (prefers-reduced-motion: reduce) { .place-card img { transition: none; } }
