.gallery-page{--gallery-surface:#10100e;--gallery-card:#171511;--gallery-ink:#eee5d2;--gallery-muted:#b1a995;--gallery-border:#423823;background:var(--black);color:var(--ivory)}
.gallery-hero{position:relative;overflow:hidden;padding:90px 0 68px;background:linear-gradient(90deg,rgba(8,8,7,.96),rgba(8,8,7,.82) 62%,rgba(8,8,7,.68)),url("assets/wedding-couple-flowers.webp") center 43%/cover no-repeat;border-bottom:1px solid var(--gallery-border)}
.gallery-hero-inner{position:relative}
.gallery-hero .eyebrow{margin-bottom:20px}
.gallery-hero h1{max-width:780px;font-size:clamp(48px,7vw,82px);margin-bottom:19px}
.gallery-intro{max-width:570px;color:#d0c8b7;font-size:14px;line-height:1.9;margin-bottom:22px}
.gallery-home-link{display:inline-flex;align-items:center;color:var(--gold-bright);font-size:10px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #8e7543;padding-bottom:7px}
.gallery-index{padding-top:27px;padding-bottom:6px}
.gallery-index-list{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 14px;scrollbar-color:#786237 transparent;scrollbar-width:thin}
.gallery-index-link{flex:none;padding:9px 13px;border:1px solid var(--gallery-border);border-radius:999px;color:var(--gallery-muted);font-size:9px;letter-spacing:.04em;transition:color .18s,border-color .18s,background .18s}
.gallery-index-link:hover,.gallery-index-link:focus-visible{color:var(--gold-bright);border-color:var(--gold);background:var(--gallery-card);outline:none}
.gallery-collections{padding-bottom:68px}
.gallery-category{padding:42px 0 46px;border-bottom:1px solid var(--gallery-border);scroll-margin-top:96px}
.gallery-category-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:21px}
.gallery-category-heading .eyebrow{font-size:8px;margin-bottom:10px}
.gallery-category-heading h2{font-size:clamp(28px,3vw,38px);margin:0;color:var(--gallery-ink)}
.gallery-category-heading h2 em{color:var(--gold-bright)}
.gallery-category-description{max-width:490px;margin:0 0 4px;color:var(--gallery-muted);font-size:11px;line-height:1.8}
.gallery-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.gallery-photo{display:block;width:100%;min-width:0;padding:0;overflow:hidden;border:1px solid var(--gallery-border);border-radius:3px;background:var(--gallery-card);color:var(--gallery-ink);text-align:left}
button.gallery-photo{cursor:zoom-in}
.gallery-photo-image{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(140deg,#252016,#12110e 52%,#30271a)}
.gallery-photo-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.gallery-photo:hover .gallery-photo-image img,.gallery-photo:focus-visible .gallery-photo-image img{transform:scale(1.035);filter:saturate(1.04)}
.gallery-photo:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
.gallery-photo-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:10px 12px;color:var(--gallery-muted);font:12px var(--serif)}
.gallery-photo-caption span:last-child{color:var(--gold);font:10px var(--sans)}
.gallery-photo-empty{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;cursor:default}
.gallery-photo-empty .gallery-photo-image{display:grid;place-items:center;min-height:150px;aspect-ratio:4/3;background:radial-gradient(ellipse at 50% 130%,#55442355,transparent 58%),linear-gradient(145deg,#221e16,#12110e 65%,#211b11)}
.gallery-photo-empty .gallery-photo-image::before{content:"";position:absolute;width:52px;height:52px;border:1px solid #c9a95e99;border-radius:50%;box-shadow:0 0 0 7px #c9a95e12,0 0 0 14px #c9a95e0a}
.gallery-photo-empty .gallery-photo-image::after{content:"✦";position:absolute;color:#d5b96e;font:20px var(--serif)}
.gallery-photo-empty .gallery-photo-caption{line-height:1.5}
.gallery-photo-empty .gallery-photo-caption span:last-child{font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.gallery-photo-grid.is-empty-collection{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:68px 76px 54px;border:0;background:rgba(5,5,5,.97);color:#fff;overflow:hidden}
.gallery-viewer::backdrop{background:rgba(5,5,5,.97)}
.gallery-viewer[open]{display:grid;grid-template-columns:54px minmax(0,1fr) 54px;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:18px}
.viewer-figure{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;height:100%;margin:0;grid-column:2;grid-row:1}
.viewer-image{display:block;max-width:100%;max-height:calc(100vh - 140px);width:auto;height:auto;object-fit:contain}
.viewer-caption{padding-top:13px;color:#e5d7b5;font:15px var(--serif);text-align:center}
.viewer-close,.viewer-arrow{display:grid;place-items:center;width:46px;height:46px;border:1px solid #c9a95e99;border-radius:50%;background:#15130f;color:#f0d98e;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.viewer-close{position:absolute;top:20px;right:24px;font:30px/1 var(--sans)}
.viewer-arrow{font:25px/1 var(--serif)}
.viewer-close:hover,.viewer-arrow:hover,.viewer-close:focus-visible,.viewer-arrow:focus-visible{border-color:var(--gold-bright);background:#c9a95e;color:#111;outline:2px solid #e4ca84;outline-offset:3px}
.viewer-previous{grid-column:1;grid-row:1}
.viewer-next{grid-column:3;grid-row:1}
.viewer-count{grid-column:1/-1;grid-row:2;margin:0;color:#b9ad91;font-size:10px;letter-spacing:.12em}
body.theme-light.gallery-page{--gallery-surface:#f7f4ed;--gallery-card:#fffdf8;--gallery-ink:#171717;--gallery-muted:#5d5a54;--gallery-border:#d0c6b5;background:var(--black);color:var(--ivory)}
body.theme-light .gallery-hero{background:linear-gradient(90deg,rgba(255,253,248,.95),rgba(255,253,248,.82) 62%,rgba(255,253,248,.72)),url("assets/wedding-couple-flowers.webp") center 43%/cover no-repeat}
body.theme-light .gallery-hero h1,body.theme-light .gallery-category-heading h2{color:#171717}
body.theme-light .gallery-hero h1 em,body.theme-light .gallery-category-heading h2 em{color:#75530a}
body.theme-light .gallery-intro{color:#3f3d39}
body.theme-light .gallery-photo{background:#fffdf8}
body.theme-light .gallery-photo-image{background:linear-gradient(140deg,#ebe5d7,#f7f4ed 52%,#e6dcc6)}
body.theme-light .gallery-photo-empty .gallery-photo-image{background:radial-gradient(ellipse at 50% 130%,#c9a95e38,transparent 58%),linear-gradient(145deg,#e9e1d1,#fffdf8 65%,#e8dfce)}
body.theme-light .gallery-photo-empty .gallery-photo-image::before{border-color:#9b741799;box-shadow:0 0 0 7px #9b741712,0 0 0 14px #9b74170a}
body.theme-light .gallery-photo-empty .gallery-photo-image::after{color:#75530a}
body.theme-light .gallery-viewer,body.theme-light .gallery-viewer::backdrop{background:rgba(5,5,5,.97)}
body.theme-light.gallery-page .site-footer{background:#fffdf8;color:#171717;border-color:#d8d0c2}
body.theme-light.gallery-page .footer-top>p{color:#5d5a54}
body.theme-light.gallery-page .footer-up{color:#75530a}
@media(max-width:940px){.gallery-category-heading{align-items:flex-start;flex-direction:column;gap:10px}.gallery-category-description{max-width:650px}.gallery-photo-grid,.gallery-photo-grid.is-empty-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-category{padding:34px 0 37px}}
@media(max-width:640px){.gallery-hero{padding:63px 0 48px;background-position:58% center}.gallery-hero h1{font-size:clamp(43px,12vw,60px)}.gallery-intro{font-size:12px}.gallery-index{padding-top:18px}.gallery-category-heading{gap:8px}.gallery-category-heading h2{font-size:29px}.gallery-category-description{font-size:10px}.gallery-photo-grid,.gallery-photo-grid.is-empty-collection{gap:9px}.gallery-photo-caption{min-height:39px;padding:8px;font-size:10px}.gallery-photo-caption span:last-child{font-size:8px}.gallery-photo-empty .gallery-photo-image{min-height:110px}.gallery-category{padding:29px 0 32px}.gallery-collections{padding-bottom:48px}.gallery-viewer{padding:62px 12px 42px}.gallery-viewer[open]{grid-template-columns:34px minmax(0,1fr) 34px;gap:5px}.viewer-image{max-height:calc(100vh - 145px);max-height:calc(100svh - 145px)}.viewer-arrow{width:32px;height:38px;border-radius:20px;font-size:20px}.viewer-close{top:12px;right:13px;width:40px;height:40px}.viewer-caption{font-size:13px}.viewer-count{font-size:9px}}
@media(max-width:640px){body.theme-light.gallery-page .main-nav{background:#fffdf8;color:#171717;border-bottom-color:#d9d1c3}body.theme-light.gallery-page .main-nav a{border-bottom-color:#d9d1c3}body.theme-light.gallery-page .menu-toggle{color:#75530a;border-color:#9b7417}}
@media(prefers-reduced-motion:reduce){.gallery-photo-image img{transition:none}}
