/* Shared gallery anatomy. A mosaic, connected chapters and a contact sheet. */
.bg-gallery { color:var(--bluffs-laguna); background:var(--bluffs-white); }
.bg-gallery .be-masthead { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:clamp(660px,48vw,790px); padding-block:clamp(3.5rem,5vw,5.5rem); overflow:hidden; background:var(--bluffs-laguna); color:white; }
.bg-gallery .be-masthead__image { position:absolute; inset:0; width:100%; height:100%; margin:0; z-index:-2; }
.bg-gallery .be-masthead__image picture { display:block; position:absolute; inset:0; width:100%; height:100%; }
.bg-gallery .be-masthead__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.bg-gallery .be-masthead::after { display:none; }
.bg-gallery .be-masthead::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(12,35,48,.12),rgba(12,35,48,.75)),linear-gradient(90deg,rgba(12,35,48,.45),transparent 85%); }
.bg-gallery .be-masthead__copy { position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:end; gap:clamp(2rem,5vw,6rem); }
.bg-gallery .be-masthead h1 { color:white; font:500 clamp(3.4rem,5.5vw,6.6rem)/.98 var(--font-display); letter-spacing:-.035em; margin:.8rem 0 0; }
.bg-gallery .be-masthead .bluffs-eyebrow { color:white; }
.bg-gallery .be-masthead__intro > p { font:400 clamp(1rem,1.25vw,1.35rem)/1.7 var(--font-sans); max-width:42ch; margin:0 0 1.4rem; }
.bg-gallery .be-masthead .bluffs-btn--primary { background:white; border-color:white; color:var(--bluffs-laguna); }
.bg-gallery .be-hero-explore { color:white; }
.bg-collection { padding-block:clamp(3.5rem,6vw,7rem); scroll-margin-top:110px; }
.bg-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.bg-heading h2 { font:500 clamp(2.5rem,4vw,4.5rem)/1.08 var(--font-display); margin:0; letter-spacing:-.025em; }
.bg-count { font:600 .7rem/1.6 var(--font-sans); letter-spacing:.11em; text-transform:uppercase; white-space:nowrap; margin:0 0 .35rem; }
.bg-intro { max-width:64ch; font:400 clamp(1rem,1.25vw,1.15rem)/1.8 var(--font-sans); color:var(--bluffs-driftwood-dark); margin:1.2rem 0 2rem; }
.bg-filters { display:flex; flex-wrap:wrap; gap:.65rem; padding-bottom:2.4rem; border-bottom:1px solid var(--bluffs-oyster); margin-bottom:2.4rem; }
.bg-filters[hidden],.bg-card[hidden],.bg-chapter[hidden] { display:none!important; }
.bg-filters button { font:600 .76rem/1.5 var(--font-sans); padding:.85rem 1.2rem; min-height:48px; color:var(--bluffs-laguna); border:1px solid var(--bluffs-seagrass); background:transparent; cursor:pointer; transition:color 160ms,background 160ms; }
.bg-filters button:hover { background:var(--bluffs-salt); }
.bg-filters button[aria-pressed="true"] { color:white; background:var(--bluffs-laguna); border-color:var(--bluffs-laguna); }
.bg-gallery :is(button,a):focus-visible { outline:3px solid var(--bluffs-copper); outline-offset:5px; }
.bg-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:clamp(1.25rem,2.1vw,2.5rem); }
.bg-card { margin:0; min-width:0; scroll-margin-top:120px; }
.bg-photo { display:block; position:relative; overflow:hidden; background:var(--bluffs-salt); }
.bg-photo picture { display:block; width:100%; }
.bg-photo img { display:block; width:100%; height:auto; aspect-ratio:1.23; object-fit:cover; transition:transform 300ms ease; }
.bg-photo:is(:hover,:focus-visible) img { transform:scale(1.025); }
.bg-photo__view { position:absolute; bottom:1rem; right:1rem; display:flex; align-items:center; gap:1.4rem; min-height:44px; padding:.65rem .85rem; color:white; background:rgba(16,43,58,.93); font:600 .65rem/1.5 var(--font-sans); letter-spacing:.04em; }
.bg-photo__view > span { font-size:1rem; }
.bg-card figcaption { border-bottom:1px solid var(--bluffs-oyster); padding:1.25rem 0 1.8rem; }
.bg-photo__number { display:block; color:var(--bluffs-seagrass); font:600 .6rem/1.5 var(--font-sans); letter-spacing:.12em; margin-bottom:.6rem; }
.bg-card h3 { font:500 clamp(1.8rem,2.4vw,2.6rem)/1.12 var(--font-display); letter-spacing:-.02em; margin:0 0 .65rem; }
.bg-card figcaption p { max-width:50ch; margin:0 0 .85rem; font:400 .91rem/1.75 var(--font-sans); color:var(--bluffs-driftwood-dark); }
.bg-gallery .bg-photo__related { font-size:.73rem; min-height:44px; display:inline-flex; align-items:center; }
.bg-layout--mosaic .bg-photos { grid-template-columns:repeat(12,minmax(0,1fr)); }
.bg-layout--mosaic .bg-card { grid-column:span 4; }
.bg-layout--mosaic .bg-card--wide { grid-column:span 8; }
.bg-layout--mosaic .bg-card--wide img { aspect-ratio:1.72; }
.bg-layout--mosaic .bg-card--portrait img { aspect-ratio:.83; }
.bg-layout--mosaic .bg-photos:not([data-filter="all"]) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.bg-layout--mosaic .bg-photos:not([data-filter="all"]) .bg-card { grid-column:auto; }
.bg-layout--mosaic .bg-photos:not([data-filter="all"]) img { aspect-ratio:1.23; }
.bg-layout--mosaic .bg-photos[data-visible-count="1"] { grid-template-columns:minmax(0,960px); justify-content:center; }
.bg-layout--mosaic .bg-photos[data-visible-count="1"] img { aspect-ratio:1.72; }
.bg-layout--chapters .bg-photos { display:block; }
.bg-chapter { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.7fr); gap:clamp(2rem,4vw,5rem); padding-bottom:clamp(3rem,6vw,6rem); margin-bottom:clamp(3rem,6vw,6rem); border-bottom:1px solid var(--bluffs-oyster); }
.bg-chapter:last-child { border-bottom:0; padding-bottom:0; margin-bottom:0; }
.bg-chapter__copy h2 { font:500 clamp(2.1rem,3.2vw,3.5rem)/1.12 var(--font-display); margin:0 0 1.2rem; }
.bg-chapter__copy p { max-width:30ch; font:400 1.1rem/1.8 var(--font-sans); color:var(--bluffs-driftwood-dark); }
.bg-chapter__photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; align-items:start; }
.bg-layout--chapters .bg-photo img { aspect-ratio:.9; }
.bg-layout--chapters .bg-card--portrait img { object-position:center 58%; }
.bg-gallery .be-invitation p { color:white; max-width:46ch; font:400 1.1rem/1.8 var(--font-sans); margin:0 auto 1.5rem; }
@media(min-width:1890px) { .bg-gallery .be-masthead { min-height:790px; } }
@media(max-width:1000px) {
 .bg-gallery .be-masthead__copy { grid-template-columns:1fr; gap:2rem; }
 .bg-gallery .be-masthead__intro > p { max-width:56ch; }
 .bg-layout--mosaic .bg-photos { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bg-layout--mosaic .bg-card { grid-column:auto; }
 .bg-layout--mosaic .bg-card--wide { grid-column:span 2; }
 .bg-layout--mosaic .bg-photos:not([data-filter="all"]),.bg-layout--grid .bg-photos { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bg-chapter { grid-template-columns:1fr; gap:1.5rem; }
 .bg-chapter__copy p { max-width:50ch; }
}
@media(max-width:600px) {
 .bg-gallery .be-masthead { min-height:650px; padding-block:3rem; }
 .bg-gallery .be-masthead h1 { font-size:clamp(3rem,12vw,4.4rem); }
 .bg-heading { flex-direction:column; align-items:start; gap:1rem; }
 .bg-filters { gap:.5rem; }
 .bg-filters button { padding:.7rem .85rem; font-size:.7rem; }
 .bg-layout--mosaic .bg-photos,.bg-layout--mosaic .bg-photos:not([data-filter="all"]),.bg-layout--grid .bg-photos,.bg-chapter__photos { grid-template-columns:1fr; }
 .bg-layout--mosaic .bg-card--wide { grid-column:auto; }
 .bg-layout--mosaic .bg-card--wide img { aspect-ratio:1.25; }
 .bg-layout--mosaic .bg-card--portrait img { aspect-ratio:.86; }
 .bg-card figcaption p { font-size:.95rem; }
 .bg-collection { scroll-margin-top:88px; }
}
@media(prefers-reduced-motion:reduce) { .bg-gallery * { transition:none!important; animation:none!important; }.bg-photo:is(:hover,:focus-visible) img { transform:none; } }
