.cosmos-gallery { --or:#c9a05c; --ivoire:#fbf3e7; color:var(--ivoire); background:#241711; }
.cosmos-gallery__banner { padding:56px var(--cosmos-gutter,24px) 48px; text-align:center; border-bottom:1px solid rgba(201,164,106,.2); background:radial-gradient(circle at 20% 10%,rgba(201,160,92,.13),transparent 42%),#241711; }
.cosmos-gallery h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(2.25rem,4vw,3.25rem); margin:16px 0; }
.cosmos-gallery__banner p { max-width:560px; margin:auto; font-size:17px; text-wrap:balance; color:#dfcfba; }
.cosmos-gallery__content { max-width:1240px; margin:auto; padding:40px var(--cosmos-gutter,20px) 72px; box-sizing:border-box; }
.cosmos-gallery__filters { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
.cosmos-gallery button { font:inherit; cursor:pointer; }
.cosmos-gallery__filters button,.cosmos-gallery__more { min-height:44px; border:1px solid rgba(201,164,106,.35); border-radius:999px; padding:8px 20px; color:var(--ivoire); background:transparent; }
.cosmos-gallery__filters button[aria-pressed=true] { background:var(--or); color:#17100b; }
.cosmos-gallery__status { color:#dfcfba; text-align:center; font-size:14px; }
.cosmos-gallery__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); gap:20px; list-style:none; padding:0; margin:24px 0; }
.cosmos-gallery__grid li { min-width:0; transition:opacity 200ms; }
.cosmos-gallery__grid.is-filtering li { opacity:0; }
.cosmos-gallery__tile { position:relative; display:block; aspect-ratio:1; overflow:hidden; border-radius:12px; border:1px solid rgba(201,164,106,.2); background:#33231a; }
.cosmos-gallery__tile img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 300ms; }
.cosmos-gallery__tile:hover,.cosmos-gallery__tile:focus-visible { border-color:var(--or); }
.cosmos-gallery__tile:hover img,.cosmos-gallery__tile:focus-visible img { transform:scale(1.05); }
.cosmos-gallery__overlay { position:absolute; bottom:0; left:0; right:0; padding:10px; display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--ivoire); background:#231610; opacity:0; transition:opacity 200ms; }
.cosmos-gallery__tile:hover .cosmos-gallery__overlay,.cosmos-gallery__tile:focus-visible .cosmos-gallery__overlay { opacity:1; }
.cosmos-gallery__more { display:block; margin:24px auto 0; }
.cosmos-gallery [hidden] { display:none; }
.cosmos-gallery__empty { text-align:center; }
.cosmos-gallery__contact { display:block; width:fit-content; margin:auto; color:var(--ivoire); text-decoration:underline; text-decoration-color:var(--or); text-underline-offset:6px; }
.cosmos-gallery a:focus-visible,.cosmos-gallery button:focus-visible { outline:2px solid var(--or); outline-offset:4px; }
.cosmos-gallery__dialog { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; box-sizing:border-box; border:0; padding:64px 5vw 24px; background:rgba(10,6,4,.94); color:var(--ivoire); overflow:auto; text-align:center; }
.cosmos-gallery__dialog::backdrop { background:rgba(10,6,4,.94); }
.cosmos-gallery__dialog figure { margin:0 auto 16px; }
.cosmos-gallery__large { display:block; margin:auto; max-width:90vw; width:auto; max-height:65vh; object-fit:contain; }
.cosmos-gallery__occasion { display:block; font-family:'Cormorant Garamond',serif; font-size:24px; margin-top:12px; }
.cosmos-gallery__caption { max-width:640px; margin:8px auto; font-size:16px; }
.cosmos-gallery__dialog button { position:fixed; width:44px; height:44px; border:1px solid var(--or); border-radius:50%; background:#231610; color:var(--ivoire); display:flex; align-items:center; justify-content:center; }
.cosmos-gallery__dialog button svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.5; }
.cosmos-gallery__close { right:20px; top:12px; }
.cosmos-gallery__prev { left:12px; top:45%; }
.cosmos-gallery__next { right:12px; top:45%; }
.cosmos-gallery__counter { position:fixed; left:20px; top:20px; }
.cosmos-gallery__order { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; padding:12px 24px; background:var(--or); color:#17100b; text-decoration:none; }
.cosmos-gallery-lock { overflow:hidden; }
@media(hover:none){.cosmos-gallery__overlay { opacity:1; }}
@media(max-width:639px){.cosmos-gallery__banner { padding-top:40px; padding-bottom:32px; }.cosmos-gallery__filters { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px; }.cosmos-gallery__filters button { flex-shrink:0; scroll-snap-align:start; }.cosmos-gallery__grid { gap:12px; }.cosmos-gallery__order { font-size:14px; }.cosmos-gallery__large { max-height:60vh; }}
@media(prefers-reduced-motion:reduce){.cosmos-gallery__grid li,.cosmos-gallery__tile img,.cosmos-gallery__overlay { transition:none; }.cosmos-gallery__tile:hover img,.cosmos-gallery__tile:focus-visible img { transform:none; }}
