/* Handy Tradie 4 U: photo galleries + lightbox */
.photo-section{background:var(--paper);padding:56px 0 64px}
.photo-section.alt{background:var(--cream-2)}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.photo-grid[data-cols="4"]{grid-template-columns:repeat(4,1fr)}
.photo-grid[data-cols="auto"]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.photo-card{display:block;padding:0;border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream-2);cursor:zoom-in;aspect-ratio:4/5;position:relative}
.photo-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.photo-card:hover img{transform:scale(1.03)}
.photo-card:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.photo-card[hidden]{display:none}
.photo-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 24px}
.photo-filter{font:inherit;font-weight:700;font-size:14px;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--charcoal);cursor:pointer}
.photo-filter[aria-pressed="true"]{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.photo-filter .count{opacity:.65;margin-left:4px;font-weight:600}
.photo-filter:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
@media (max-width:820px){.photo-grid,.photo-grid[data-cols="4"]{grid-template-columns:repeat(2,1fr);gap:10px}}
.lb{position:fixed;inset:0;z-index:1000;background:rgba(18,16,12,.92);display:none;align-items:center;justify-content:center;padding:24px}
.lb.open{display:flex}
.lb figure{margin:0;max-width:min(92vw,900px);text-align:center}
.lb img{max-width:100%;max-height:80vh;border-radius:10px;display:block;margin:0 auto}
.lb figcaption{color:#e9e4da;font-size:14px;margin-top:12px;font-weight:500}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:44px;height:44px;border-radius:50%;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.lb .lb-close{top:18px;right:18px}.lb .lb-prev{left:18px;top:50%;margin-top:-22px}.lb .lb-next{right:18px;top:50%;margin-top:-22px}
@media (prefers-reduced-motion:reduce){.photo-card img{transition:none}}
