/* Gallery page — the tile-grid photo gallery (#bsg), ported from the original inline widget styles. */
#bsg,#bsg *{box-sizing:border-box}
#bsg{--gap:12px;--w:min(1240px,calc(100vw - 48px));--cell:calc((var(--w) - 132px)/12);width:100%;padding:clamp(48px,7vw,92px) 24px clamp(64px,8vw,110px);overflow:hidden;background:linear-gradient(180deg,#fff,#f7f4ee);color:#18273b}
#bsg header{width:min(760px,100%);margin:0 auto clamp(34px,5vw,56px);text-align:center}
#bsg .eyebrow{margin:0 0 10px;color:#b4242f;font-family:inherit;font-size:clamp(12px,1.2vw,15px);font-weight:700;line-height:1.3;letter-spacing:.16em}
#bsg h1{position:relative;display:inline-block;margin:0;padding:0 0 15px;color:#153d75;font-family:inherit;font-size:clamp(38px,6vw,72px);font-weight:800;line-height:.95;letter-spacing:.075em}
#bsg h1:after{content:"";position:absolute;left:50%;bottom:0;width:76px;height:5px;transform:translateX(-50%);background:#e4b83d}
#bsg .lede{max-width:650px;margin:19px auto 0;color:#4d5b6c;font-family:inherit;font-size:clamp(16px,1.7vw,20px);font-weight:400;line-height:1.65}
#bsg .grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--cell);grid-auto-flow:dense;gap:var(--gap);width:var(--w);margin:auto}
#bsg .tile{position:relative;min-width:0;margin:0;overflow:hidden;background:#dfe4e8;border-radius:2px;box-shadow:0 12px 30px rgba(17,43,76,.13);isolation:isolate}
#bsg .land{grid-column:span 6;grid-row:span 4}
#bsg .port{grid-column:span 3;grid-row:span 4}
#bsg .square{grid-column:span 3;grid-row:span 3}
#bsg .tile img{position:absolute;inset:0;width:100%;height:100%;opacity:0;object-fit:cover;transform:scale(1);transition:opacity 1.7s ease-in-out,transform 12s ease-out;will-change:opacity,transform}
#bsg .tile img.on{opacity:1;transform:scale(1.025)}
@media(max-width:767px){#bsg{--gap:8px;--w:calc(100vw - 32px);--cell:calc((var(--w) - 40px)/6);padding-left:16px;padding-right:16px}
#bsg .grid{grid-template-columns:repeat(6,minmax(0,1fr))}
#bsg .land{grid-column:span 6;grid-row:span 4}
#bsg .port{grid-column:span 3;grid-row:span 4}
#bsg .square{grid-column:span 3;grid-row:span 3}}
@media(prefers-reduced-motion:reduce){#bsg .tile img,#bsg .tile img.on{transition:none;transform:none}}
#bsg .tile img.fit{object-fit:contain;background:transparent}
#bsg .tile.hasbg:before{content:"";position:absolute;inset:-12%;z-index:0;background:var(--bg) center/cover no-repeat;filter:blur(22px) saturate(1.05);opacity:.9}
#bsg .tile img{z-index:1}
