:root{--blue:#25a3ed;--deep:#0d537c;--navy:#011c39;--cta:#2260ff;--cyan:#00b6f0;--ink:#2f373e;--muted:#68727c;--body:"Open Sans",sans-serif;--heading:"Nunito Sans",sans-serif;--radius:24px}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{overflow-x:hidden;background:#fff;color:var(--ink);font-family:var(--body);line-height:1.6}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.shell{width:min(1180px,92vw);margin:auto}.eyebrow{margin-bottom:12px;color:var(--blue);font-size:.76rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:13px 26px;border:1px solid transparent;border-radius:999px;font-weight:700;transition:transform .18s,box-shadow .18s}.button:hover,.button:focus-visible{transform:translateY(-2px);outline:none}.button--primary{background:linear-gradient(135deg,var(--cta),var(--cyan));color:#fff;box-shadow:0 12px 28px rgba(34,96,255,.3)}.button--outline{border-color:rgba(255,255,255,.46);color:#fff}
.gallery-hero{position:relative;min-height:590px;display:grid;align-items:center;overflow:hidden;background:var(--navy);color:#fff}.gallery-hero__image{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,28,57,.95) 5%,rgba(1,28,57,.72) 48%,rgba(1,28,57,.18)),url("../images/gallery-hero.png") center 56%/cover no-repeat;transform:scale(1.02)}.gallery-hero__content{position:relative;padding:170px 0 82px}.gallery-hero h1{max-width:780px;margin-bottom:20px;font:900 clamp(3.2rem,7vw,6.5rem)/.88 var(--heading);letter-spacing:-.05em}.gallery-hero__content>p:not(.eyebrow){max-width:580px;margin-bottom:28px;color:rgba(255,255,255,.8);font-size:1.08rem}
.gallery-section{padding:105px 0 120px;background:linear-gradient(#fff,#f6f9fb)}.section-heading{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:60px;margin-bottom:48px}.section-heading h2,.gallery-cta h2{font:900 clamp(2.4rem,5vw,4.1rem)/1 var(--heading);letter-spacing:-.04em}.section-heading>p{max-width:500px;padding-bottom:4px;color:var(--muted)}.gallery-grid{display:grid;grid-auto-flow:dense;grid-auto-rows:265px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-item{position:relative;overflow:hidden;border:0;border-radius:var(--radius);background:var(--navy);cursor:zoom-in}.gallery-item--wide{grid-column:span 2}.gallery-item--portrait{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .3s}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(1,18,34,.82));opacity:.82;transition:opacity .25s}.gallery-item span{position:absolute;z-index:1;right:22px;bottom:20px;left:22px;color:#fff;text-align:left;transform:translateY(4px);transition:transform .25s}.gallery-item b,.gallery-item small{display:block}.gallery-item b{font:800 1.12rem var(--heading)}.gallery-item small{color:rgba(255,255,255,.65);font-size:.78rem}.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.045);filter:saturate(1.08)}.gallery-item:hover span,.gallery-item:focus-visible span{transform:none}.gallery-item:focus-visible{outline:4px solid rgba(37,163,237,.7);outline-offset:3px}
.gallery-cta{padding:78px 0;background:linear-gradient(125deg,var(--deep),#087ab4);color:#fff}.gallery-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.gallery-cta h2{max-width:720px;margin-bottom:12px;font-size:clamp(2.2rem,4.6vw,3.7rem)}.gallery-cta__inner>div:first-child>p:last-child{color:rgba(255,255,255,.72)}.cta-actions{display:flex;flex-shrink:0;gap:12px}
footer{padding:58px 0 20px;background:#071b2f;color:rgba(255,255,255,.72)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:50px}.footer-grid img{width:220px;margin-bottom:18px}.footer-grid h3{margin-bottom:12px;color:#fff;font-family:var(--heading)}.footer-grid a{display:block;width:fit-content;margin-bottom:8px}.footer-bottom{width:min(1180px,92vw);margin:42px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;text-align:center}
.lightbox{width:min(1100px,92vw);max-width:none;max-height:90vh;margin:auto;padding:0;overflow:visible;border:0;border-radius:20px;background:#071522;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.55)}.lightbox::backdrop{background:rgba(0,13,25,.86);backdrop-filter:blur(6px)}.lightbox figure{display:grid;max-height:90vh}.lightbox img{width:100%;max-height:82vh;object-fit:contain;border-radius:20px 20px 0 0}.lightbox figcaption{padding:14px 20px;color:rgba(255,255,255,.72);font-size:.88rem}.lightbox__close{position:absolute;z-index:2;top:-16px;right:-16px;width:44px;height:44px;border:2px solid rgba(255,255,255,.45);border-radius:50%;background:#fff;color:var(--navy);font:400 2rem/1 var(--body);cursor:pointer;box-shadow:0 8px 25px rgba(0,0,0,.3)}
@media(max-width:850px){.section-heading{grid-template-columns:1fr;gap:16px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-cta__inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.gallery-hero{min-height:430px}.gallery-hero__image{background-position:59% center}.gallery-hero__content{padding:110px 0 44px}.gallery-hero h1{max-width:350px;margin-bottom:14px;font-size:clamp(2.7rem,13.5vw,3.5rem);line-height:.93}.gallery-hero__content>p:not(.eyebrow){max-width:350px;margin-bottom:20px;font-size:.9rem}.gallery-hero .button{min-height:44px;padding:10px 20px;font-size:.9rem}.gallery-section{padding:62px 0 72px}.section-heading{margin-bottom:28px}.section-heading h2{font-size:2.25rem}.section-heading>p{font-size:.9rem}.gallery-grid{grid-auto-rows:205px;gap:10px}.gallery-item{border-radius:16px}.gallery-item--wide{grid-column:span 2}.gallery-item--portrait{grid-row:span 2}.gallery-item span{right:14px;bottom:12px;left:14px}.gallery-item b{font-size:.92rem}.gallery-item small{font-size:.68rem}.gallery-cta{padding:62px 0}.gallery-cta h2{font-size:2.25rem}.cta-actions{width:100%;flex-direction:column}.cta-actions .button{width:100%}.footer-grid{grid-template-columns:1fr;gap:28px}.footer-grid>div:first-child{grid-column:auto}.lightbox__close{top:8px;right:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}

/* Minimal gallery presentation inspired by a dark photographic portfolio. */
.gallery-section{padding:225px 0 120px;background:#000;color:#fff}
.gallery-intro{max-width:1050px;margin:0 auto 78px;text-align:center}
.gallery-intro h1{margin-bottom:18px;font:900 clamp(3.6rem,7vw,6rem)/1 var(--heading);letter-spacing:-.045em;text-transform:uppercase}
.gallery-intro p{color:#bbc0c8;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.55}
.gallery-grid{grid-auto-flow:row;grid-auto-rows:420px;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.gallery-item,.gallery-item--wide,.gallery-item--portrait{grid-column:auto;grid-row:auto;border-radius:0;background:#111}
.gallery-item:after,.gallery-item span{display:none}

@media(max-width:850px){.gallery-section{padding-top:130px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:300px;gap:14px}}
@media(max-width:600px){.gallery-section{padding:105px 0 72px}.gallery-intro{margin-bottom:42px}.gallery-intro h1{margin-bottom:14px;font-size:3rem}.gallery-intro p{font-size:.9rem}.gallery-grid{grid-auto-rows:210px;gap:9px}.gallery-item{border-radius:0}}

/* White masonry layout: natural image proportions in three flowing columns. */
.gallery-section{padding:215px 0 120px;background:#fff;color:var(--ink)}
.gallery-intro{max-width:960px;margin-bottom:72px}
.gallery-intro h1{color:var(--ink)}
.gallery-intro p{color:var(--muted)}
.gallery-grid{display:block;columns:3;column-gap:24px}
.gallery-item,.gallery-item--wide,.gallery-item--portrait{display:block;width:100%;height:auto;margin:0 0 24px;break-inside:avoid;overflow:hidden;border-radius:0;background:#eef2f5}
.gallery-item img{width:100%;height:auto;object-fit:contain}

@media(max-width:850px){.gallery-section{padding-top:150px}.gallery-grid{columns:2;column-gap:16px}.gallery-item{margin-bottom:16px}}
@media(max-width:600px){.gallery-section{padding:112px 0 72px}.gallery-intro{max-width:350px;margin-bottom:40px}.gallery-grid{columns:1}.gallery-item{width:min(100%,520px);margin:0 auto 16px}}

/* Core accessibility and unenhanced navigation. */
/* Preserve aspect ratio while intrinsic dimensions reserve loading space. */
img { height: auto; }
.site-nav-fallback[hidden] { display: none !important; }
.site-nav-fallback {
  position: relative;
  z-index: 1001;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 22px;
  padding: 18px;
  background: #fff;
  color: #0d537c;
  font: 700 1rem/1.5 "Open Sans", sans-serif;
}
.site-nav-fallback a { padding: 8px; text-decoration: underline; }
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2000;
  padding: 12px 18px;
  background: #fff;
  color: #011c39;
  transform: translateY(-160%);
}
.skip-link:focus { transform: none; }
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible {
  outline: 3px solid #0d537c !important;
  outline-offset: 4px;
  box-shadow: 0 0 0 6px #fff !important;
}
#main-content { scroll-margin-top: 140px; }
@media (max-width: 720px) {
  #main-content { scroll-margin-top: 70px; }
}

.lightbox img[hidden], .lightbox__status[hidden] { display: none; }
.lightbox__status { padding: 32px 24px; }
.lightbox figure { overflow-y: auto; }
.lightbox { max-height: 90dvh; }
.lightbox figcaption { overflow-wrap: anywhere; }
