*{box-sizing:border-box;margin:0;padding:0}
:root{--navy:#071a33;--gold:#c6a04d;--gold-text:#856319;--cream:#f4f0e7;--muted:#68717f}
body{font-family:"Manrope",sans-serif;color:var(--navy);background:#f8f7f4;line-height:1.6}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.gallery-header{
  min-height:92px;padding:10px 5vw;display:flex;align-items:center;gap:28px;
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(7,26,51,.08)
}
.gallery-brand img{width:230px;height:70px;object-fit:contain;object-position:left}
.back-link{margin-left:auto;font-weight:800;font-size:.9rem}
.gallery-languages{display:flex;gap:7px}
.gallery-lang{border:0;background:transparent;padding:6px;cursor:pointer;font-weight:800;color:#7c8490}
.gallery-lang.active{color:var(--navy);border-bottom:2px solid var(--gold)}
main{padding:0 7vw 80px}
.gallery-hero{padding:90px 0 65px;max-width:900px}
.gallery-kicker{letter-spacing:.2em;color:var(--gold-text);font-size:.78rem;font-weight:800}
.gallery-hero h1,.gallery-section h2{
  font-family:"Playfair Display",serif;line-height:1.08
}
.gallery-hero h1{font-size:clamp(3rem,6vw,6rem);margin:16px 0 20px}
.gallery-hero>p:last-child{color:var(--muted);max-width:680px}
.gallery-section{padding:50px 0 65px;border-top:1px solid rgba(7,26,51,.12)}
.gallery-section-head{display:flex;align-items:center;gap:18px;margin-bottom:25px}
.gallery-section-head span{color:var(--gold-text);font-weight:800;letter-spacing:.12em}
.gallery-section h2{font-size:clamp(2rem,3.5vw,3.5rem)}
.masonry{columns:3 300px;column-gap:16px}
.gallery-photo{
  display:block;width:100%;margin:0 0 16px;border:0;padding:0;background:white;
  cursor:zoom-in;break-inside:avoid;box-shadow:0 8px 24px rgba(7,26,51,.06);
  overflow:hidden
}
.gallery-photo img{width:100%;height:auto;transition:transform .35s ease}
.gallery-photo:hover img{transform:scale(1.015)}
.gallery-contact{
  margin-top:35px;padding:42px;background:var(--navy);color:white;
  display:flex;align-items:center;justify-content:space-between;gap:25px
}
.gallery-contact h2{font-family:"Playfair Display",serif;font-size:clamp(1.8rem,3vw,3rem)}
.gallery-contact a{background:var(--gold);color:var(--navy);font-weight:800;padding:14px 20px}

@media(max-width:760px){
  .gallery-header{flex-wrap:wrap;gap:10px}
  .gallery-brand img{width:185px;height:60px}
  .back-link{order:3;width:100%;margin:0;text-align:center}
  main{padding-left:20px;padding-right:20px}
  .gallery-hero{padding:65px 0 45px}
  .masonry{columns:1}
  .gallery-contact{flex-direction:column;align-items:flex-start;padding:28px}
}

.gallery-filter{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:-25px 0 45px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(7,26,51,.12);
}
.gallery-filter-button{
  border:1px solid rgba(7,26,51,.18);
  background:white;
  color:var(--navy);
  padding:11px 16px;
  font:inherit;
  font-size:.86rem;
  font-weight:800;
  cursor:pointer;
  transition:.25s;
}
.gallery-filter-button:hover,
.gallery-filter-button.active{
  background:var(--navy);
  color:white;
  border-color:var(--navy);
}
.gallery-section.is-hidden{display:none}
@media(max-width:760px){
  .gallery-filter{margin-top:-10px}
  .gallery-filter-button{flex:1 1 calc(50% - 10px)}
}

html{scroll-padding-top:calc(var(--header-height,92px) + 16px)}
body{overflow-wrap:break-word}
.gallery-header{-webkit-backdrop-filter:blur(14px)}
.gallery-lang{min-width:44px;min-height:44px}
.gallery-photo img{height:auto;aspect-ratio:auto}
.gallery-photo:focus-visible{outline:3px solid var(--gold-text);outline-offset:4px}
.gallery-lightbox{
  position:fixed;inset:0;margin:0;border:0;width:100%;height:100%;max-width:none;max-height:none;
  padding:76px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  background:rgba(2,10,20,.96);color:white;overflow:auto;overscroll-behavior:contain;
}
.gallery-lightbox:not([open]){display:none}
.gallery-lightbox[open]{display:flex;align-items:center;justify-content:center}
.gallery-lightbox::backdrop{background:rgba(2,10,20,.94)}
.gallery-lightbox img{max-width:100%;width:auto;height:auto;max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px - env(safe-area-inset-top) - env(safe-area-inset-bottom));object-fit:contain}
.gallery-lightbox-close{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));min-width:48px;min-height:48px;border:1px solid rgba(255,255,255,.6);border-radius:4px;background:#071a33;color:white;font-size:2rem;line-height:1;cursor:pointer}
.gallery-lightbox-close:focus-visible{outline:3px solid white;outline-offset:3px}
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:12px 18px;background:white;color:var(--navy);font-weight:800;transform:translateY(-200%)}
.skip-link:focus{transform:none}
:where(a,button):focus-visible{outline:3px solid var(--gold-text);outline-offset:4px}
main:focus{outline:none}
@media(max-width:760px){
  .gallery-header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .gallery-brand{flex:1;min-width:0}
  .gallery-brand img{width:100%;max-width:185px}
  .gallery-languages{gap:0}
  .gallery-lang{min-width:36px}
  .gallery-hero h1{font-size:clamp(2rem,8vw,3rem);overflow-wrap:anywhere}
  .gallery-filter-button{min-width:0;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .gallery-photo:hover img{transform:none}
}
