.gallery-section{background:#f2ede4;color:var(--foreground)}
.gallery-section-inner{width:min(1480px,100%);margin:0 auto;padding:110px 40px}
.gallery-section-heading{display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:48px;margin-bottom:48px}
.gallery-section-heading h2{max-width:760px;margin-top:16px;font-size:clamp(3.4rem,6vw,5.6rem)}
.gallery-section-copy{max-width:470px;justify-self:end;color:var(--muted);font-size:14px;font-weight:300;line-height:1.9}
.gallery-section-actions{display:flex;justify-content:flex-end;margin-top:34px}
.gallery-grid{display:grid;gap:20px}
.gallery-grid-preview{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery-grid-full{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}
.gallery-card{display:block;width:100%;padding:0;overflow:hidden;border:1px solid rgba(159,120,65,.2);border-radius:10px;background:#fffdf9;color:var(--foreground);cursor:zoom-in;text-align:left;box-shadow:0 12px 32px rgba(50,40,29,.055);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.gallery-card:hover{transform:translateY(-4px);border-color:rgba(159,120,65,.38);box-shadow:0 20px 44px rgba(50,40,29,.1)}
.gallery-card:focus-visible,.gallery-lightbox-close:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.gallery-media{display:block;aspect-ratio:9/14;overflow:hidden;background:#e8dfd2}
.gallery-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.gallery-card:hover .gallery-media img{transform:scale(1.025)}
.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}
.gallery-caption small{color:var(--gold-dark);font-size:9px;letter-spacing:.18em}
.gallery-caption strong{font-family:Italiana,serif;font-size:24px;font-weight:400;line-height:1.1}
.gallery-grid-preview .gallery-caption{display:none}
.gallery-page-hero{padding:120px 40px 90px;background:var(--ink);color:var(--ivory)}
.gallery-page-hero-inner{width:min(1480px,100%);margin:0 auto}
.gallery-page-hero h1{max-width:900px;margin-top:18px}
.gallery-page-hero p:not(.eyebrow){max-width:580px;margin-top:24px;color:rgba(248,244,237,.7);font-size:15px;font-weight:300;line-height:1.9}
.gallery-lightbox{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:28px}
.gallery-lightbox.is-open{display:flex}
.gallery-lightbox-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(16,14,12,.9);cursor:zoom-out}
.gallery-lightbox-dialog{position:relative;z-index:1;margin:0;max-width:min(760px,90vw);max-height:92vh}
.gallery-lightbox-image{display:block;max-width:100%;max-height:84vh;border-radius:8px;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.gallery-lightbox-caption{margin-top:12px;color:var(--ivory);font-family:Italiana,serif;font-size:22px;text-align:center}
.gallery-lightbox-close{position:absolute;z-index:2;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(248,244,237,.45);border-radius:50%;background:rgba(29,27,24,.72);color:var(--ivory);cursor:pointer;font-size:30px;line-height:1}
body.modal-open{overflow:hidden}

@media (max-width:900px){
  .gallery-section-inner{padding:76px 20px}
  .gallery-section-heading{grid-template-columns:1fr;gap:22px}
  .gallery-section-copy{justify-self:start}
  .gallery-grid-preview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-page-hero{padding:90px 20px 64px}
}

@media (max-width:560px){
  .gallery-grid-preview,.gallery-grid-full{grid-template-columns:1fr}
  .gallery-grid-full{gap:24px}
  .gallery-section-heading h2{font-size:3.5rem}
  .gallery-section-actions{justify-content:flex-start}
  .gallery-lightbox{padding:14px}
  .gallery-caption strong{font-size:22px}
}

@media (prefers-reduced-motion:reduce){
  .gallery-card,.gallery-media img{transition-duration:.01ms!important}
}
