.photo-portfolio{padding:110px 0 120px;background:#21382d;color:#f3f1e8}
.photo-portfolio .photo-intro{display:grid;grid-template-columns:22% 1fr;gap:20px 45px;margin-bottom:38px}
.photo-portfolio .section-kicker{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding-top:14px}
.photo-portfolio h2{font:400 clamp(44px,5.4vw,80px)/1.2 Prata,Georgia,serif;letter-spacing:-.055em;margin:0}
.photo-portfolio h2 em{color:#b8c7af;font-weight:400}
.photo-intro p{grid-column:2;max-width:620px;color:#c7d1c3;font-size:15px;line-height:1.8;margin:0}
.photo-filters{display:flex;flex-wrap:wrap;gap:10px;margin:38px 0 30px}
.photo-filters button{appearance:none;border:1px solid #758878;background:transparent;color:#f3f1e8;padding:13px 20px;border-radius:40px;font-size:12px;font-weight:600;line-height:1.3;font-family:inherit;cursor:pointer}
.photo-filters button[aria-pressed=true]{background:#e9e7d8;color:#20372b;border-color:#e9e7d8}
.photo-filters button:hover{border-color:#e9e7d8}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 22px}
.photo-card{min-width:0;color:inherit;text-decoration:none;display:block}
.photo-card-media{display:block;position:relative;overflow:hidden;background:#2e4738;aspect-ratio:4/5}
.photo-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.photo-card:hover img{transform:scale(1.025)}
.photo-open{position:absolute;right:14px;bottom:14px;background:#f2f0e8eb;color:#21382d;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;font-size:20px}
.photo-card-caption{display:block;padding-top:14px;font:600 18px/1.4 Arial,sans-serif;letter-spacing:.02em}
.photo-card-caption small{display:block;color:#c2cfbc;font:600 10px/1.4 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.photo-card-caption strong{font:400 clamp(20px,2vw,27px)/1.4 Prata,Georgia,serif;letter-spacing:-.035em}
.photo-pagination{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #718177;margin-top:45px;padding-top:28px}
.photo-count{font-size:12px;color:#c7d1c3}
.photo-more{background:#e9e7d8;color:#20372b;border:0;border-radius:40px;min-height:52px;padding:15px 24px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer}
.photo-portfolio [hidden]{display:none!important}
.photo-portfolio a:focus-visible,.photo-portfolio button:focus-visible{outline:2px solid #e9e7d8;outline-offset:5px}
.photo-viewer{border:0;background:transparent;padding:0;color:white;width:min(1120px,100% - 32px);max-width:none;max-height:95dvh;overflow:visible}
.photo-viewer::backdrop{background:#0b1512ed}
.viewer-frame{background:#15251e;border-radius:4px;padding:18px}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.viewer-position{font:600 18px/1.4 Arial,sans-serif;color:#f3f1e8}
.photo-viewer button{border:1px solid #829382;background:#20372b;color:white;border-radius:30px;min-height:44px;min-width:44px;cursor:pointer;padding:10px 16px;font:600 13px/1.3 Arial,sans-serif}
.photo-viewer button:focus-visible{outline:2px solid #e9e7d8;outline-offset:3px}
.viewer-image{display:block;width:100%;height:min(70dvh,780px);object-fit:contain;background:#102019}
.viewer-footer{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin-top:15px}
.viewer-caption{font:400 20px/1.4 Georgia,serif;margin:0}
.viewer-controls{display:flex;gap:10px;flex-shrink:0}
@media(max-width:1000px){.photo-portfolio .photo-intro{grid-template-columns:1fr;gap:20px}.photo-intro p{grid-column:1}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.photo-portfolio{padding:75px 0}.photo-portfolio h2{font-size:42px}.photo-filters{gap:8px}.photo-filters button{padding:12px 15px}.photo-grid{gap:28px;grid-template-columns:1fr}.photo-card-media{aspect-ratio:4/5}.photo-card-caption strong{font-size:25px}.photo-pagination{align-items:start;flex-direction:column}.photo-viewer{width:calc(100% - 16px)}.viewer-frame{padding:12px}.viewer-footer{align-items:start;flex-direction:column}.viewer-caption{font-size:18px}.viewer-image{height:65dvh}.viewer-controls{align-self:flex-end}}
@media(prefers-reduced-motion:reduce){.photo-card img{transition:none}.photo-card:hover img{transform:none}}
