.gallery-intro{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;align-items:end;padding-top:65px;padding-bottom:50px}
.gallery-intro .eyebrow{color:var(--muted);margin-bottom:24px}
.gallery-intro h1{font-size:clamp(52px,5.8vw,84px);line-height:1.08}
.gallery-intro h1 em{color:#677957}
.gallery-intro-copy>p:first-child{font:25px/1.45 var(--serif);margin-bottom:16px}
.gallery-intro-copy>p:nth-child(2){font-size:14px;color:var(--muted);max-width:375px}
.gallery-collection{max-width:1600px;margin:auto;padding:0 5%}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:20px 0 25px}
.gallery-filters{display:flex;gap:8px;flex-wrap:wrap}
.gallery-filters[hidden]{display:none}
.gallery-filters button{min-height:44px;border:1px solid transparent;background:none;color:var(--ink);padding:10px 15px;font-size:11px;cursor:pointer;transition:background .2s,color .2s}
.gallery-filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.gallery-filters button:hover:not([aria-pressed="true"]){border-color:#a7b19e}
.gallery-count{font-size:10px;color:var(--muted);white-space:nowrap}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;grid-auto-flow:row}
.gallery-card{min-width:0}
.gallery-card[hidden]{display:none}
.gallery-card:first-child,.gallery-card:nth-child(7),.gallery-card:last-child{grid-column:span 2}
.gallery-photo{display:block;position:relative;height:340px;overflow:hidden;background:#dce2d6}
.gallery-card:nth-child(-n+2) .gallery-photo{height:470px}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gallery-photo:hover img{transform:scale(1.035)}
.photo-expand{position:absolute;right:16px;bottom:16px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:var(--ink);font-size:23px;box-shadow:0 2px 10px #0b302b20}
.gallery-card figcaption{display:flex;justify-content:space-between;align-items:start;gap:15px;padding-top:16px}
.gallery-card strong{display:block;font:23px/1.3 var(--serif)}
.gallery-card small{display:block;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:6px}
.photo-number{font:italic 16px var(--serif);color:var(--muted);padding-top:4px}
.gallery-grid.is-filtered .gallery-card{grid-column:auto}
.gallery-grid.is-filtered .gallery-photo{height:340px}
.gallery-note{font-size:10px;color:var(--muted);margin-top:35px}
.gallery-invitation{text-align:center;padding-block:90px}
.gallery-invitation .eyebrow{color:var(--muted);margin-bottom:22px}
.gallery-invitation h2{margin-bottom:23px}
.gallery-invitation>p:not(.eyebrow){font-size:14px;color:var(--muted)}
/* Native dialog supplies focus containment, Escape, and a top-layer backdrop. */
.gallery-lightbox{width:calc(100% - 40px);max-width:1320px;height:calc(100dvh - 40px);max-height:100%;padding:0;border:1px solid #557168;background:#113632;color:#f7f5ef;overflow:hidden;margin:auto}
.gallery-lightbox::backdrop{background:#041b1cec;backdrop-filter:blur(7px)}
.lightbox-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:20px 30px;gap:16px}
.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}
.lightbox-top .eyebrow{font-size:9px;color:var(--sand)}
.gallery-lightbox button{width:46px;height:46px;border:1px solid #8fa498;border-radius:50%;background:transparent;color:var(--paper);font-size:25px;cursor:pointer;flex-shrink:0}
.gallery-lightbox button:hover{background:var(--sand);color:var(--ink)}
.gallery-lightbox button:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
.lightbox-image-wrap{min-height:0;display:grid;place-items:center;touch-action:pan-y}
.lightbox-image{width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;-webkit-user-select:none}
.lightbox-caption h2{font-size:29px;letter-spacing:-.02em;line-height:1.2}
.lightbox-position{font-size:10px;color:#c5d0c1;margin-top:8px}
.lightbox-arrows{display:flex;gap:12px}
body.gallery-viewer-open{overflow:hidden}
@media(max-width:1000px){
 .gallery-intro{gap:6%;padding-top:45px}
 .gallery-intro h1{font-size:56px}
 .gallery-intro-copy>p:first-child{font-size:22px}
 .gallery-toolbar{align-items:flex-start;flex-direction:column;gap:12px}
 .gallery-grid{gap:26px 18px}
 .gallery-photo,.gallery-grid.is-filtered .gallery-photo{height:270px}
 .gallery-card:nth-child(-n+2) .gallery-photo{height:350px}
 .gallery-card strong{font-size:21px}
}
@media(max-width:650px){
 .gallery-intro{display:block;padding-block:40px 32px}
 .gallery-intro h1{font-size:clamp(41px,11.7vw,68px)}
 .gallery-intro .eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:22px}
 .gallery-intro-copy{margin-top:25px}
 .gallery-intro-copy>p:first-child{font-size:23px}
 .gallery-collection{padding-inline:7%}
 .gallery-toolbar{padding-top:16px}
 .gallery-filters{gap:4px}
 .gallery-filters button{font-size:11px;padding:10px 12px}
 .gallery-count{font-size:11px}
 .gallery-grid{grid-template-columns:1fr;gap:27px}
 .gallery-card:first-child,.gallery-card:nth-child(7),.gallery-card:last-child{grid-column:auto}
 .gallery-photo,.gallery-card:nth-child(-n+2) .gallery-photo,.gallery-grid.is-filtered .gallery-photo{height:auto;aspect-ratio:1.15}
 .gallery-card:nth-child(2) .gallery-photo{aspect-ratio:1}
 .gallery-card figcaption{padding-top:13px}
 .gallery-card strong{font-size:23px}
 .gallery-card small{font-size:9px}
 .gallery-note{line-height:1.7}
 .gallery-invitation{padding-block:60px}
 .gallery-invitation .eyebrow{font-size:9px;letter-spacing:1.4px}
 .gallery-invitation>p:not(.eyebrow) br{display:none}
 .gallery-lightbox{width:100%;height:100dvh;max-height:100dvh;border:0}
 .lightbox-inner{padding:16px max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));gap:15px}
 .lightbox-bottom{align-items:flex-start;gap:15px}
 .lightbox-caption h2{font-size:24px}
 .lightbox-arrows{gap:8px}
 .gallery-lightbox button{width:44px;height:44px}
}
