.gallery-page{background:var(--cream)}.gallery-intro{text-align:center;background:#ead8c4;padding:72px max(5vw,24px) 52px}.gallery-intro h1{letter-spacing:-.03em;max-width:820px;margin:0 auto 18px;font-size:clamp(42px,5.4vw,78px);font-weight:500;line-height:1.08}.gallery-intro h1 em{color:var(--rust)}.gallery-intro>p:not(.eyebrow){color:#644b3c;max-width:580px;margin:0 auto;font-size:15px;line-height:1.8}.gallery-body{max-width:1360px;margin:0 auto;padding:44px max(5vw,24px) 90px}.gallery-filters{justify-content:center;margin-bottom:28px}.gallery-empty{text-align:center;color:#7a6253;padding:40px 0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.gallery-grid button{cursor:zoom-in;background:#ead8c4;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.gallery-grid img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .35s;display:block}.gallery-grid button:hover img{transform:scale(1.04)}.gallery-grid button:focus-visible{outline:3px solid var(--rust);outline-offset:3px}.gallery-caption{color:#fff;text-align:left;opacity:0;background:linear-gradient(#0000,#1e0c04c7);padding:28px 14px 12px;font-size:13px;font-weight:600;line-height:1.4;transition:opacity .2s,transform .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}:is(.gallery-grid button:hover .gallery-caption,.gallery-grid button:focus-visible .gallery-caption){opacity:1;transform:none}@media (hover:none){.gallery-caption{opacity:1;transform:none}}.gallery-cta{text-align:center;background:#f1dfce;max-width:640px;margin:64px auto 0;padding:40px 28px}.gallery-cta h2{margin:0 0 10px;font-size:clamp(28px,3vw,40px);font-weight:500}.gallery-cta p{color:#70574a;margin:0 0 22px}.gallery-cta .button{margin:0 auto}.gallery-viewer{z-index:100;background:#180a04e0;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.gallery-viewer-inner{width:min(1100px,100%);max-height:100%;display:flex;position:relative}.gallery-viewer figure{background:#fffaf3;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);width:100%;max-height:calc(100vh - 48px);margin:0;display:grid}.gallery-viewer img{object-fit:contain;background:#1e0f07;width:100%;height:100%;max-height:calc(100vh - 48px);display:block}.gallery-viewer figcaption{flex-direction:column;justify-content:center;gap:12px;padding:32px 28px;display:flex}.gallery-viewer-category{letter-spacing:.18em;text-transform:uppercase;color:var(--rust);font-size:10px;font-weight:700}.gallery-viewer figcaption p{color:var(--ink);margin:0;font:500 22px/1.35 Playfair Display,Georgia,serif}.gallery-viewer-actions{flex-direction:column;align-items:flex-start;gap:14px;margin-top:8px;display:flex}.gallery-viewer-close{z-index:2;width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fffaf3;border:0;border-radius:50%;font-size:24px;line-height:1;position:absolute;top:-14px;right:-14px;box-shadow:0 4px 14px #0000004d}.gallery-viewer-step{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#fffaf3e6;border:0;border-radius:50%;font-size:28px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.gallery-viewer-step.prev{left:10px}.gallery-viewer-step.next{left:calc(68% - 54px)}.gallery-viewer-count{color:#fff;background:#180a0499;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;bottom:10px;left:12px}:is(.gallery-viewer-close:focus-visible,.gallery-viewer-step:focus-visible){outline:3px solid var(--peach);outline-offset:2px}@media (max-width:800px){.gallery-viewer{align-items:start;padding:12px;overflow-y:auto}.gallery-viewer-inner{margin-top:28px}.gallery-viewer figure{grid-template-columns:1fr;max-height:none}.gallery-viewer img{max-height:70vh}.gallery-viewer figcaption{padding:20px}.gallery-viewer-step{top:35vh}.gallery-viewer-step.next{left:auto;right:10px}.gallery-viewer-close{top:-18px;right:-4px}.gallery-viewer-count{top:10px;bottom:auto}}@media (max-width:600px){.gallery-intro{padding:48px 20px 36px}.gallery-body{padding:28px 16px 72px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-caption{display:none}}@media (prefers-reduced-motion:reduce){.gallery-grid img,.gallery-caption{transition:none}.gallery-grid button:hover img{transform:none}}
