.gallery-intro { padding: clamp(3rem,6vw,6rem) 0 2.5rem; display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:2rem; }
.gallery-intro h1 { font-family:var(--ff-serif); color:var(--forest); font-size:clamp(3rem,6.5vw,6rem); font-weight:400; line-height:1.06; letter-spacing:-.035em; margin-top:1rem; }
.gallery-intro h1 em { color:var(--sage); font-weight:400; }
.gallery-intro p { color:var(--moss); max-width:31rem; padding-bottom:.3rem; }
.gallery-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding:1.75rem 0; border-top:1px solid var(--hairline); }
.gallery-filters { display:flex; flex-wrap:wrap; gap:.55rem; }
.gallery-filters[hidden] { display:none; }
.gallery-filters button { border:1px solid var(--hairline); border-radius:2px; padding:.65rem 1rem; min-height:44px; color:var(--forest); font-size:.8rem; transition:background .15s,color .15s; }
.gallery-filters button:hover { background:var(--bg-deep); }
.gallery-filters button[aria-pressed="true"] { background:var(--forest); color:var(--bg); border-color:var(--forest); }
.gallery-count { font-size:.8rem; color:var(--moss); white-space:nowrap; }
.gallery-grid { padding-bottom:2rem; }
.gallery-group { margin-bottom:3.5rem; }
.gallery-group-head { margin-bottom:1.5rem; padding-top:1.5rem; border-top:1px solid var(--hairline); }
.gallery-group-head h2 { font-family:var(--ff-serif); color:var(--forest); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; line-height:1.15; margin-bottom:.65rem; }
.gallery-group-head p { max-width:46rem; color:var(--moss); font-size:.95rem; }
.gallery-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 1.5rem; }
.gallery-group[data-category="beds"] .gallery-project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gallery-card[hidden],.gallery-group[hidden] { display:none; }
.gallery-card.featured { grid-column:span 2; }
.gallery-open { display:block; }
.gallery-image { position:relative; display:block; background:var(--bg-deep); overflow:hidden; }
.gallery-image img { width:100%; height:clamp(250px,27vw,390px); object-fit:cover; transition:transform .25s ease; }
.gallery-open:hover img { transform:scale(1.025); }
.gallery-open:focus-visible { outline-offset:6px; }
.gallery-enlarge { position:absolute; bottom:.8rem; right:.8rem; padding:.4rem .65rem; color:var(--forest); background:var(--bg); font-size:.75rem; }
.gallery-card figcaption { padding-top:1rem; }
.gallery-card h3 { font-family:var(--ff-serif); color:var(--forest); font-size:1.4rem; font-weight:400; line-height:1.25; margin:.35rem 0; }
.gallery-card[data-category="beds"] .gallery-image img { height:auto; aspect-ratio:3/4; object-fit:contain; }
.gallery-card p { color:var(--moss); font-size:.875rem; line-height:1.65; }
.gallery-card .eyebrow { font-size:.7rem; }
.gallery-invite { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:3rem 0 4.5rem; border-top:1px solid var(--hairline); }
.gallery-invite h2 { font-family:var(--ff-serif); font-weight:400; color:var(--forest); font-size:clamp(2rem,4vw,3.5rem); line-height:1.15; margin-bottom:.8rem; }
.gallery-invite p { color:var(--moss); max-width:35rem; }
.gallery-dialog { width:min(1120px,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); margin:auto; border:1px solid var(--hairline); padding:1rem; background:var(--bg); color:var(--forest); overflow:auto; }
.gallery-dialog::backdrop { background:rgba(10,24,17,.88); }
.gallery-dialog-head,.gallery-dialog-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.gallery-dialog-head { padding-bottom:.75rem; }
.gallery-dialog button { min-height:44px; border:1px solid var(--hairline); padding:.5rem .9rem; font-size:.85rem; }
.gallery-dialog button:hover { background:var(--bg-deep); }
.gallery-dialog img { width:100%; height:clamp(180px,65dvh,680px); object-fit:contain; background:var(--bg-deep); }
.gallery-dialog h2 { font-family:var(--ff-serif); font-size:1.5rem; font-weight:400; margin:.8rem 0 .3rem; }
.gallery-dialog p { font-size:.875rem; color:var(--moss); }
.gallery-dialog-controls { margin-top:1rem; }
@media(max-width:760px) {
  .gallery-intro { grid-template-columns:1fr; gap:1.5rem; }
  .gallery-toolbar { align-items:flex-start; flex-direction:column; gap:.85rem; }
  .gallery-project-grid { gap:2rem 1rem; }
  .gallery-group[data-category="beds"] .gallery-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-image img { height:230px; }
  .gallery-card.featured .gallery-image img { height:300px; }
  .gallery-invite { flex-direction:column; align-items:flex-start; }
}
@media(max-width:480px) {
  .gallery-project-grid,.gallery-group[data-category="beds"] .gallery-project-grid { grid-template-columns:1fr; }
  .gallery-card.featured { grid-column:auto; }
  .gallery-image img,.gallery-card.featured .gallery-image img { height:auto; aspect-ratio:4/3; }
  .gallery-dialog { padding:.75rem; }
}
@media(prefers-reduced-motion:reduce) { .gallery-image img { transition:none; } }
