/* Quiet editorial groups. Photos are displayed in their full original frame. */
.gallery-hero { padding: 72px 7vw 30px; max-width: 1500px; margin: auto; }
.gallery-hero h1 { max-width: 900px; font: 400 clamp(44px, 6.2vw, 86px)/1.04 Georgia, serif; letter-spacing: -.035em; margin: 16px 0 24px; }
.gallery-hero .gallery-intro { max-width: 690px; font-size: 18px; line-height: 1.7; color: #55514a; }
.gallery-review-note { max-width: 880px; padding: 14px 18px; border: 1px solid #c6b89f; background: #efede5; color: #514739; font-size: 14px; line-height: 1.6; }
.gallery-summary { display:flex; gap:12px 26px; flex-wrap:wrap; font-size:13px; color:#62594d; margin:28px 0 12px; }
.gallery-summary strong { color:#24302d; font-weight:600; }
.gallery-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.gallery-hero .gallery-jump a { display: inline-flex; align-items: center; min-height: 44px; border: 1px solid #c9c1b3; padding: 8px 14px; text-decoration: none; font-size: 13px; }
.gallery-jump a:hover { border-color: #896b48; background: #efede5; }
.work-gallery { padding-top: 32px; padding-bottom:48px; }
.gallery-project { min-width: 0; scroll-margin-top: 120px; border-top:1px solid #cfc8bb; padding-top:28px; margin-bottom:64px; }
.gallery-project .project-copy { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.gallery-project .project-copy .eyebrow { margin: 0 0 8px; color: #6b5943; font-size: 11px; }
.gallery-project h2 { font: 400 clamp(28px, 3vw, 40px)/1.15 Georgia, serif; margin: 0; }
.gallery-project .project-description { max-width:400px; margin:0; color: #55514a; font-size: 14px; line-height: 1.65; }
.gallery-project .project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:start; }
.gallery-project .project-grid[data-photo-count="1"] { grid-template-columns:minmax(0,1fr); max-width:860px; }
.gallery-project .project-grid[data-photo-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gallery-project figure { margin:0; min-width:0; }
.gallery-project .project-media { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:#ebe8df; }
.gallery-project .project-grid[data-photo-count="1"] .project-media { aspect-ratio:auto; max-height:650px; }
.gallery-project figcaption { color:#5b554d; font-size:12px; margin-top:10px; line-height:1.6; }
.project-photo-button { display:block; width:100%; border:0; padding:0; background:transparent; cursor:zoom-in; }
.project-photo-button:focus-visible { outline:3px solid #896b48; outline-offset:4px; }
.gallery-guidance { display:grid; grid-template-columns:1fr 1fr; gap:60px; border-top:1px solid var(--line); }
.gallery-guidance h2 { max-width:500px; font:400 clamp(30px,3vw,46px)/1.15 Georgia,serif; }
.gallery-guidance p { max-width:560px; color:#55514a; }
.gallery-guidance .small-link { display:inline-flex; min-height:44px; align-items:center; }
html.gallery-photo-open { overflow:hidden; }
.project-lightbox { width:min(1200px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:20px; border:0; overflow:auto; background:#f7f5f0; color:#24302d; }
.project-lightbox::backdrop { background:#151610e8; }
.project-lightbox-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.project-lightbox h2 { font:400 25px/1.2 Georgia,serif; margin:0; }
.project-lightbox button { min-height:44px; padding:8px 16px; border:1px solid #aaa08e; color:#24302d; background:#f7f5f0; cursor:pointer; }
.project-lightbox button:hover { background:#ebe6db; }
.project-lightbox .photo-close { flex-shrink:0; border-color:#24302d; }
.project-lightbox-stage { display:grid; place-items:center; min-height:180px; background:#e8e4da; }
.project-lightbox img { display:block; width:auto; height:auto; max-width:100%; max-height:60dvh; object-fit:contain; margin:auto; }
.project-lightbox [hidden] { display:none; }
.project-lightbox p { overflow-wrap:anywhere; line-height:1.5; margin:12px 0; font-size:14px; }
.project-photo-error { padding:30px; max-width:500px; }
.project-photo-navigation { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; margin-top:16px; }
.project-photo-navigation button { width:max-content; }
.project-photo-navigation .photo-next { justify-self:end; }
.project-photo-count { font-size:13px; text-align:center; }
.project-photo-footer { display:flex; justify-content:space-between; gap:10px 24px; flex-wrap:wrap; align-items:center; margin-top:8px; font-size:12px; color:#62594d; }
.project-photo-footer a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:900px) {
  .gallery-project .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-project .project-copy { align-items:start; flex-direction:column; gap:12px; }
  .gallery-project .project-description { max-width:650px; }
}
@media(max-width:650px) {
  .gallery-hero { padding:44px 6vw 24px; }
  .gallery-hero .gallery-intro { font-size:16px; }
  .gallery-jump { gap:8px; margin-top:20px; }
  .gallery-hero .gallery-jump a { font-size:12px; padding:8px 11px; }
  .work-gallery { padding-top:18px; }
  .gallery-project { margin-bottom:44px; padding-top:24px; }
  .gallery-project .project-grid, .gallery-project .project-grid[data-photo-count="2"] { grid-template-columns:1fr; gap:24px; }
  .gallery-project .project-media { aspect-ratio:auto; max-height:560px; }
  .gallery-guidance { grid-template-columns:1fr; gap:20px; }
  .project-lightbox { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); padding:12px; }
  .project-lightbox h2 { font-size:22px; }
  .project-lightbox-header { gap:12px; margin-bottom:12px; }
  .project-lightbox button { padding:8px 12px; font-size:13px; }
  .project-lightbox img { max-height:52dvh; }
  .project-photo-navigation { gap:8px; }
  .project-photo-count { font-size:12px; }
  .project-photo-footer { gap:0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.gallery-project picture { display:block; }
.photo-treatment { font-weight:600; }
